0001104659-23-027452.txt : 20230301 0001104659-23-027452.hdr.sgml : 20230301 20230301172208 ACCESSION NUMBER: 0001104659-23-027452 CONFORMED SUBMISSION TYPE: 6-K PUBLIC DOCUMENT COUNT: 125 CONFORMED PERIOD OF REPORT: 20230131 FILED AS OF DATE: 20230301 DATE AS OF CHANGE: 20230301 FILER: COMPANY DATA: COMPANY CONFORMED NAME: DESCARTES SYSTEMS GROUP INC CENTRAL INDEX KEY: 0001050140 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] IRS NUMBER: 000000000 STATE OF INCORPORATION: A6 FISCAL YEAR END: 0131 FILING VALUES: FORM TYPE: 6-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-29970 FILM NUMBER: 23695078 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 6-K 1 dsgx-20230131x6k.htm FORM 6-K
2023-01-31--01-31FY0001050140false202300010501402022-02-012023-01-310001050140dsgx:NcibMember2022-06-070001050140us-gaap:CommonStockMember2022-02-012023-01-310001050140us-gaap:CommonStockMember2021-02-012022-01-310001050140us-gaap:CommonStockMember2020-02-012021-01-310001050140dsgx:The2020BaseShelfProspectusMember2020-07-162020-07-160001050140us-gaap:RetainedEarningsMember2023-01-310001050140us-gaap:CommonStockMember2023-01-310001050140us-gaap:AdditionalPaidInCapitalMember2023-01-310001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-310001050140us-gaap:RetainedEarningsMember2022-01-310001050140us-gaap:CommonStockMember2022-01-310001050140us-gaap:AdditionalPaidInCapitalMember2022-01-310001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-01-310001050140us-gaap:RetainedEarningsMember2021-01-310001050140us-gaap:CommonStockMember2021-01-310001050140us-gaap:AdditionalPaidInCapitalMember2021-01-310001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-01-310001050140us-gaap:RetainedEarningsMember2020-01-310001050140us-gaap:CommonStockMember2020-01-310001050140us-gaap:AdditionalPaidInCapitalMember2020-01-310001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-01-310001050140dsgx:Range4Member2022-02-012023-01-310001050140dsgx:Range3Member2022-02-012023-01-310001050140dsgx:Range2Member2022-02-012023-01-310001050140dsgx:Range1Member2022-02-012023-01-310001050140dsgx:Range4Member2023-01-310001050140dsgx:Range3Member2023-01-310001050140dsgx:Range2Member2023-01-310001050140dsgx:Range1Member2023-01-310001050140dsgx:ShareholderApprovedStockOptionsPlanMember2022-01-310001050140dsgx:ShareholderApprovedStockOptionsPlanMember2021-01-310001050140dsgx:ShareholderApprovedStockOptionsPlanMember2022-02-012023-01-310001050140dsgx:ShareholderApprovedStockOptionsPlanMember2021-02-012022-01-310001050140us-gaap:PerformanceSharesMember2020-02-012021-01-310001050140us-gaap:RestrictedStockUnitsRSUMember2022-01-310001050140us-gaap:PerformanceSharesMember2022-01-310001050140us-gaap:RestrictedStockUnitsRSUMember2021-01-310001050140us-gaap:PerformanceSharesMember2021-01-310001050140srt:MinimumMemberdsgx:DirectorsAndOfficersMember2022-02-012023-01-310001050140srt:MaximumMemberdsgx:DirectorsAndOfficersMember2022-02-012023-01-3100010501402025-01-312023-01-310001050140us-gaap:ServiceMember2022-02-012023-01-310001050140us-gaap:LicenseMember2022-02-012023-01-310001050140us-gaap:EMEAMember2022-02-012023-01-310001050140srt:AsiaPacificMember2022-02-012023-01-310001050140dsgx:ProfessionalServicesAndOtherMember2022-02-012023-01-310001050140country:US2022-02-012023-01-310001050140country:CA2022-02-012023-01-310001050140us-gaap:ServiceMember2021-02-012022-01-310001050140us-gaap:LicenseMember2021-02-012022-01-310001050140us-gaap:EMEAMember2021-02-012022-01-310001050140srt:AsiaPacificMember2021-02-012022-01-310001050140dsgx:ProfessionalServicesAndOtherMember2021-02-012022-01-310001050140country:US2021-02-012022-01-310001050140country:CA2021-02-012022-01-310001050140us-gaap:ServiceMember2020-02-012021-01-310001050140us-gaap:LicenseMember2020-02-012021-01-310001050140us-gaap:EMEAMember2020-02-012021-01-310001050140srt:AsiaPacificMember2020-02-012021-01-310001050140dsgx:ProfessionalServicesAndOtherMember2020-02-012021-01-310001050140country:US2020-02-012021-01-310001050140country:CA2020-02-012021-01-310001050140srt:MinimumMemberus-gaap:FurnitureAndFixturesMember2022-02-012023-01-310001050140srt:MinimumMemberus-gaap:ComputerEquipmentMember2022-02-012023-01-310001050140srt:MaximumMemberus-gaap:FurnitureAndFixturesMember2022-02-012023-01-310001050140srt:MaximumMemberus-gaap:ComputerEquipmentMember2022-02-012023-01-310001050140us-gaap:EquipmentMember2022-02-012023-01-310001050140us-gaap:AssetUnderConstructionMember2023-01-310001050140us-gaap:AssetUnderConstructionMember2022-01-310001050140dsgx:WindigoLogisticsMemberus-gaap:SubsequentEventMember2023-02-142023-02-140001050140dsgx:FoxtrotMember2022-04-212022-04-210001050140dsgx:PortrixMember2021-05-072021-05-070001050140dsgx:QuestawebMember2021-02-262021-02-260001050140dsgx:PeoplevoxMember2020-02-212020-02-210001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-02-012023-01-310001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-02-012022-01-310001050140us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-02-012021-01-310001050140us-gaap:ForeignCountryMemberus-gaap:CanadaRevenueAgencyMemberdsgx:AfterTaxYear2026Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:EmeaIncomeTaxAuthorityMemberdsgx:TaxYear2027Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:EmeaIncomeTaxAuthorityMemberdsgx:AfterTaxYear2026Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:AsiaPacificIncomeTaxAuthorityMemberdsgx:TaxYear2028Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:AsiaPacificIncomeTaxAuthorityMemberdsgx:TaxYear2027Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:AsiaPacificIncomeTaxAuthorityMemberdsgx:TaxYear2025Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:AsiaPacificIncomeTaxAuthorityMemberdsgx:TaxYear2024Member2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:AsiaPacificIncomeTaxAuthorityMemberdsgx:AfterTaxYear2026Member2023-01-310001050140us-gaap:DomesticCountryMemberus-gaap:InternalRevenueServiceIRSMemberdsgx:TaxYear2028Member2023-01-310001050140us-gaap:DomesticCountryMemberus-gaap:InternalRevenueServiceIRSMemberdsgx:TaxYear2027Member2023-01-310001050140us-gaap:DomesticCountryMemberus-gaap:InternalRevenueServiceIRSMemberdsgx:AfterTaxYear2026Member2023-01-310001050140us-gaap:ForeignCountryMemberus-gaap:CanadaRevenueAgencyMember2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:EmeaIncomeTaxAuthorityMember2023-01-310001050140us-gaap:ForeignCountryMemberdsgx:AsiaPacificIncomeTaxAuthorityMember2023-01-310001050140us-gaap:DomesticCountryMemberus-gaap:InternalRevenueServiceIRSMember2023-01-310001050140dsgx:TaxYear2028Member2023-01-310001050140dsgx:TaxYear2027Member2023-01-310001050140dsgx:TaxYear2025Member2023-01-310001050140dsgx:TaxYear2024Member2023-01-310001050140dsgx:AfterTaxYear2026Member2023-01-310001050140us-gaap:EMEAMember2023-01-310001050140srt:AsiaPacificMember2023-01-310001050140country:US2023-01-310001050140country:CA2023-01-310001050140us-gaap:EMEAMember2022-01-310001050140srt:AsiaPacificMember2022-01-310001050140country:US2022-01-310001050140country:CA2022-01-310001050140us-gaap:RetainedEarningsMember2022-02-012023-01-310001050140us-gaap:RetainedEarningsMember2021-02-012022-01-310001050140us-gaap:RetainedEarningsMember2020-02-012021-01-310001050140srt:MinimumMemberdsgx:SeniorSecuredCreditFacilityMember2022-02-012023-01-310001050140srt:MaximumMemberdsgx:SeniorSecuredCreditFacilityMember2022-02-012023-01-310001050140srt:MinimumMemberdsgx:RevolvingOperatingCreditFacilityMemberdsgx:SeniorSecuredCreditFacilityMember2023-01-310001050140srt:MaximumMemberdsgx:RevolvingOperatingCreditFacilityMemberdsgx:SeniorSecuredCreditFacilityMember2022-01-310001050140dsgx:RevolvingOperatingCreditFacilityMemberdsgx:SeniorSecuredCreditFacilityMember2023-01-310001050140us-gaap:RestrictedStockUnitsRSUMember2021-02-012022-01-310001050140us-gaap:EmployeeStockOptionMember2021-02-012022-01-310001050140us-gaap:RestrictedStockUnitsRSUMember2020-02-012021-01-310001050140us-gaap:EmployeeStockOptionMember2020-02-012021-01-310001050140srt:MinimumMemberus-gaap:TradeNamesMember2022-02-012023-01-310001050140srt:MinimumMemberus-gaap:NoncompeteAgreementsMember2022-02-012023-01-310001050140srt:MinimumMemberus-gaap:CustomerRelationshipsMember2022-02-012023-01-310001050140srt:MinimumMemberdsgx:ExistingTechnologyMember2022-02-012023-01-310001050140srt:MaximumMemberus-gaap:TradeNamesMember2022-02-012023-01-310001050140srt:MaximumMemberus-gaap:NoncompeteAgreementsMember2022-02-012023-01-310001050140srt:MaximumMemberus-gaap:CustomerRelationshipsMember2022-02-012023-01-310001050140srt:MaximumMemberdsgx:ExistingTechnologyMember2022-02-012023-01-310001050140dsgx:XpsMemberus-gaap:TradeNamesMember2022-02-012023-01-310001050140dsgx:XpsMemberus-gaap:NoncompeteAgreementsMember2022-02-012023-01-310001050140dsgx:XpsMemberus-gaap:CustomerRelationshipsMember2022-02-012023-01-310001050140dsgx:XpsMemberdsgx:ExistingTechnologyMember2022-02-012023-01-310001050140dsgx:SupplyVisionMemberus-gaap:TradeNamesMember2022-02-012023-01-310001050140dsgx:SupplyVisionMemberus-gaap:NoncompeteAgreementsMember2022-02-012023-01-310001050140dsgx:SupplyVisionMemberus-gaap:CustomerRelationshipsMember2022-02-012023-01-310001050140dsgx:SupplyVisionMemberdsgx:ExistingTechnologyMember2022-02-012023-01-310001050140dsgx:NetChbLlcMemberus-gaap:TradeNamesMember2022-02-012023-01-310001050140dsgx:NetChbLlcMemberus-gaap:NoncompeteAgreementsMember2022-02-012023-01-310001050140dsgx:NetChbLlcMemberus-gaap:CustomerRelationshipsMember2022-02-012023-01-310001050140dsgx:NetChbLlcMemberdsgx:ExistingTechnologyMember2022-02-012023-01-310001050140dsgx:FoxtrotMemberus-gaap:CustomerRelationshipsMember2022-02-012023-01-310001050140dsgx:FoxtrotMemberdsgx:ExistingTechnologyMember2022-02-012023-01-310001050140dsgx:QuestawebMemberus-gaap:TradeNamesMember2021-02-012022-01-310001050140dsgx:QuestawebMemberus-gaap:NoncompeteAgreementsMember2021-02-012022-01-310001050140dsgx:QuestawebMemberus-gaap:CustomerRelationshipsMember2021-02-012022-01-310001050140dsgx:QuestawebMemberdsgx:ExistingTechnologyMember2021-02-012022-01-310001050140dsgx:PortrixMemberus-gaap:TradeNamesMember2021-02-012022-01-310001050140dsgx:PortrixMemberus-gaap:NoncompeteAgreementsMember2021-02-012022-01-310001050140dsgx:PortrixMemberus-gaap:CustomerRelationshipsMember2021-02-012022-01-310001050140dsgx:PortrixMemberdsgx:ExistingTechnologyMember2021-02-012022-01-310001050140dsgx:GreenmileMemberus-gaap:TradeNamesMember2021-02-012022-01-310001050140dsgx:GreenmileMemberus-gaap:NoncompeteAgreementsMember2021-02-012022-01-310001050140dsgx:GreenmileMemberus-gaap:CustomerRelationshipsMember2021-02-012022-01-310001050140dsgx:GreenmileMemberdsgx:ExistingTechnologyMember2021-02-012022-01-310001050140dsgx:ShiptrackMemberus-gaap:TradeNamesMember2020-02-012021-01-310001050140dsgx:ShiptrackMemberus-gaap:NoncompeteAgreementsMember2020-02-012021-01-310001050140dsgx:ShiptrackMemberus-gaap:CustomerRelationshipsMember2020-02-012021-01-310001050140dsgx:ShiptrackMemberdsgx:ExistingTechnologyMember2020-02-012021-01-310001050140dsgx:PeoplevoxMemberus-gaap:NoncompeteAgreementsMember2020-02-012021-01-310001050140dsgx:PeoplevoxMemberus-gaap:CustomerRelationshipsMember2020-02-012021-01-310001050140dsgx:PeoplevoxMemberdsgx:ExistingTechnologyMember2020-02-012021-01-310001050140dsgx:KontainersMemberus-gaap:TradeNamesMember2020-02-012021-01-310001050140dsgx:KontainersMemberus-gaap:NoncompeteAgreementsMember2020-02-012021-01-310001050140dsgx:KontainersMemberus-gaap:CustomerRelationshipsMember2020-02-012021-01-310001050140dsgx:KontainersMemberdsgx:ExistingTechnologyMember2020-02-012021-01-310001050140us-gaap:DevelopedTechnologyRightsMember2023-01-310001050140us-gaap:DevelopedTechnologyRightsMember2022-01-310001050140us-gaap:FairValueInputsLevel3Member2021-01-310001050140us-gaap:EmployeeStockOptionMember2022-02-012023-01-310001050140us-gaap:EmployeeStockOptionMember2023-01-310001050140dsgx:ShareholderApprovedStockOptionsPlanMember2023-01-310001050140us-gaap:FairValueInputsLevel2Member2023-01-310001050140us-gaap:FairValueInputsLevel2Member2022-01-310001050140dsgx:CashSettledRestrictedShareUnitMember2023-01-310001050140dsgx:CashSettledRestrictedShareUnitMember2022-01-310001050140dsgx:RevolvingOperatingCreditFacilityMemberdsgx:SeniorSecuredCreditFacilityMember2022-02-012023-01-310001050140srt:MinimumMemberdsgx:SeniorSecuredCreditFacilityMemberdsgx:CanadaOrUsPrimeRateBaOrLiborMember2022-02-012023-01-310001050140srt:MaximumMemberdsgx:SeniorSecuredCreditFacilityMemberdsgx:CanadaOrUsPrimeRateBaOrLiborMember2022-02-012023-01-310001050140dsgx:OtherCountriesMember2022-02-012023-01-310001050140country:US2022-02-012023-01-310001050140country:CA2022-02-012023-01-310001050140dsgx:OtherCountriesMember2021-02-012022-01-310001050140country:US2021-02-012022-01-310001050140country:CA2021-02-012022-01-310001050140dsgx:OtherCountriesMember2020-02-012021-01-310001050140country:US2020-02-012021-01-310001050140country:CA2020-02-012021-01-3100010501402020-01-310001050140dsgx:XpsMemberus-gaap:TradeNamesMember2023-01-310001050140dsgx:XpsMemberus-gaap:NoncompeteAgreementsMember2023-01-310001050140dsgx:XpsMemberus-gaap:CustomerRelationshipsMember2023-01-310001050140dsgx:XpsMemberdsgx:ExistingTechnologyMember2023-01-310001050140dsgx:SupplyVisionMemberus-gaap:TradeNamesMember2023-01-310001050140dsgx:SupplyVisionMemberus-gaap:NoncompeteAgreementsMember2023-01-310001050140dsgx:SupplyVisionMemberus-gaap:CustomerRelationshipsMember2023-01-310001050140dsgx:SupplyVisionMemberdsgx:ExistingTechnologyMember2023-01-310001050140dsgx:NetChbLlcMemberus-gaap:TradeNamesMember2023-01-310001050140dsgx:NetChbLlcMemberus-gaap:NoncompeteAgreementsMember2023-01-310001050140dsgx:NetChbLlcMemberus-gaap:CustomerRelationshipsMember2023-01-310001050140dsgx:NetChbLlcMemberdsgx:ExistingTechnologyMember2023-01-310001050140dsgx:FoxtrotMemberus-gaap:CustomerRelationshipsMember2023-01-310001050140dsgx:FoxtrotMemberdsgx:ExistingTechnologyMember2023-01-310001050140us-gaap:TradeNamesMember2023-01-310001050140us-gaap:NoncompeteAgreementsMember2023-01-310001050140us-gaap:CustomerRelationshipsMember2023-01-310001050140dsgx:ExistingTechnologyMember2023-01-310001050140dsgx:QuestawebMemberus-gaap:TradeNamesMember2022-01-310001050140dsgx:QuestawebMemberus-gaap:NoncompeteAgreementsMember2022-01-310001050140dsgx:QuestawebMemberus-gaap:CustomerRelationshipsMember2022-01-310001050140dsgx:QuestawebMemberdsgx:ExistingTechnologyMember2022-01-310001050140dsgx:PortrixMemberus-gaap:TradeNamesMember2022-01-310001050140dsgx:PortrixMemberus-gaap:NoncompeteAgreementsMember2022-01-310001050140dsgx:PortrixMemberus-gaap:CustomerRelationshipsMember2022-01-310001050140dsgx:PortrixMemberdsgx:ExistingTechnologyMember2022-01-310001050140dsgx:GreenmileMemberus-gaap:TradeNamesMember2022-01-310001050140dsgx:GreenmileMemberus-gaap:NoncompeteAgreementsMember2022-01-310001050140dsgx:GreenmileMemberus-gaap:CustomerRelationshipsMember2022-01-310001050140dsgx:GreenmileMemberdsgx:ExistingTechnologyMember2022-01-310001050140us-gaap:TradeNamesMember2022-01-310001050140us-gaap:NoncompeteAgreementsMember2022-01-310001050140us-gaap:CustomerRelationshipsMember2022-01-310001050140dsgx:ExistingTechnologyMember2022-01-310001050140dsgx:ShiptrackMemberus-gaap:TradeNamesMember2021-01-310001050140dsgx:ShiptrackMemberus-gaap:NoncompeteAgreementsMember2021-01-310001050140dsgx:ShiptrackMemberus-gaap:CustomerRelationshipsMember2021-01-310001050140dsgx:ShiptrackMemberdsgx:ExistingTechnologyMember2021-01-310001050140dsgx:PeoplevoxMemberus-gaap:NoncompeteAgreementsMember2021-01-310001050140dsgx:PeoplevoxMemberus-gaap:CustomerRelationshipsMember2021-01-310001050140dsgx:PeoplevoxMemberdsgx:ExistingTechnologyMember2021-01-310001050140dsgx:KontainersMemberus-gaap:TradeNamesMember2021-01-310001050140dsgx:KontainersMemberus-gaap:NoncompeteAgreementsMember2021-01-310001050140dsgx:KontainersMemberus-gaap:CustomerRelationshipsMember2021-01-310001050140dsgx:KontainersMemberdsgx:ExistingTechnologyMember2021-01-310001050140us-gaap:TradeNamesMember2021-01-310001050140us-gaap:NoncompeteAgreementsMember2021-01-310001050140us-gaap:CustomerRelationshipsMember2021-01-310001050140dsgx:ExistingTechnologyMember2021-01-310001050140srt:MinimumMemberus-gaap:MeasurementInputLongTermRevenueGrowthRateMember2023-01-310001050140srt:MinimumMemberus-gaap:MeasurementInputDiscountRateMember2023-01-310001050140srt:MaximumMemberus-gaap:MeasurementInputLongTermRevenueGrowthRateMember2023-01-310001050140srt:MaximumMemberus-gaap:MeasurementInputDiscountRateMember2023-01-310001050140us-gaap:FairValueInputsLevel3Member2023-01-310001050140us-gaap:FairValueInputsLevel3Member2022-01-310001050140dsgx:WindigoLogisticsMemberus-gaap:SubsequentEventMember2023-02-140001050140dsgx:GreenmileNetchbXpsAndSupplyVisionMember2023-01-310001050140dsgx:Fiscal2023AcquisitionsMember2022-02-012023-01-310001050140dsgx:SupplyVisionMember2023-01-050001050140dsgx:XpsTechnologyLlcMember2022-06-030001050140dsgx:FoxtrotMember2022-04-210001050140dsgx:NetChbLlcMember2022-02-090001050140dsgx:PortrixMember2021-05-070001050140dsgx:ShiptrackMember2020-11-060001050140dsgx:KontainersMember2020-06-100001050140dsgx:PeoplevoxMember2020-02-210001050140dsgx:GreenmileMember2021-07-080001050140dsgx:QuestawebMember2021-02-260001050140us-gaap:EmployeeStockOptionMember2022-02-012023-01-310001050140dsgx:StockOptionsTreasuryStockMethodMember2022-02-012023-01-310001050140dsgx:PSUsAndRSUsMember2022-02-012023-01-310001050140us-gaap:EmployeeStockOptionMember2021-02-012022-01-310001050140dsgx:StockOptionsTreasuryStockMethodMember2021-02-012022-01-310001050140dsgx:PSUsAndRSUsMember2021-02-012022-01-310001050140us-gaap:EmployeeStockOptionMember2020-02-012021-01-310001050140dsgx:StockOptionsTreasuryStockMethodMember2020-02-012021-01-310001050140dsgx:PSUsAndRSUsMember2020-02-012021-01-310001050140us-gaap:SellingAndMarketingExpenseMember2022-02-012023-01-310001050140us-gaap:ResearchAndDevelopmentExpenseMember2022-02-012023-01-310001050140us-gaap:CostOfSalesMember2022-02-012023-01-310001050140us-gaap:SellingAndMarketingExpenseMember2021-02-012022-01-310001050140us-gaap:ResearchAndDevelopmentExpenseMember2021-02-012022-01-310001050140us-gaap:CostOfSalesMember2021-02-012022-01-310001050140us-gaap:SellingAndMarketingExpenseMember2020-02-012021-01-310001050140us-gaap:ResearchAndDevelopmentExpenseMember2020-02-012021-01-310001050140us-gaap:CostOfSalesMember2020-02-012021-01-310001050140us-gaap:AdditionalPaidInCapitalMember2022-02-012023-01-310001050140us-gaap:AdditionalPaidInCapitalMember2021-02-012022-01-310001050140us-gaap:AdditionalPaidInCapitalMember2020-02-012021-01-310001050140us-gaap:LeaseholdImprovementsMember2023-01-310001050140us-gaap:FurnitureAndFixturesMember2023-01-310001050140us-gaap:ComputerEquipmentMember2023-01-310001050140dsgx:EquipmentInstalledWithCustomersMember2023-01-310001050140us-gaap:LeaseholdImprovementsMember2022-01-310001050140us-gaap:FurnitureAndFixturesMember2022-01-310001050140us-gaap:ComputerEquipmentMember2022-01-310001050140dsgx:EquipmentInstalledWithCustomersMember2022-01-310001050140dsgx:ShelfProspectusMember2022-07-152022-07-150001050140us-gaap:PerformanceSharesMember2021-02-012022-01-310001050140us-gaap:RestrictedStockUnitsRSUMember2022-02-012023-01-310001050140us-gaap:PerformanceSharesMember2022-02-012023-01-310001050140us-gaap:RestrictedStockUnitsRSUMember2023-01-310001050140us-gaap:PerformanceSharesMember2023-01-310001050140dsgx:NcibMember2022-06-072022-06-070001050140us-gaap:FairValueInputsLevel3Member2022-02-012023-01-310001050140us-gaap:FairValueInputsLevel3Member2021-02-012022-01-310001050140us-gaap:GeneralAndAdministrativeExpenseMember2022-02-012023-01-310001050140us-gaap:GeneralAndAdministrativeExpenseMember2021-02-012022-01-310001050140us-gaap:GeneralAndAdministrativeExpenseMember2020-02-012021-01-310001050140dsgx:DeferredShareUnitPlanMember2023-01-310001050140dsgx:DeferredShareUnitPlanMember2022-01-310001050140dsgx:DeferredShareUnitPlanMember2022-02-012023-01-310001050140dsgx:DeferredShareUnitPlanMember2021-02-012022-01-310001050140dsgx:DeferredShareUnitPlanMember2020-02-012021-01-310001050140srt:MinimumMember2022-02-012023-01-310001050140srt:MaximumMember2022-02-012023-01-310001050140srt:MinimumMemberdsgx:CashsettledRestrictedSharePlanMember2022-02-012023-01-310001050140srt:MaximumMemberdsgx:CashsettledRestrictedSharePlanMember2022-02-012023-01-310001050140dsgx:CashSettledRestrictedShareUnitMember2022-02-012023-01-310001050140dsgx:CashSettledRestrictedShareUnitMember2021-02-012022-01-310001050140dsgx:CashSettledRestrictedShareUnitMember2020-02-012021-01-310001050140dsgx:XpsMember2023-01-310001050140dsgx:SupplyVisionMember2023-01-310001050140dsgx:NetChbLlcMember2023-01-310001050140dsgx:FoxtrotMember2023-01-310001050140dsgx:PeoplevoxMember2021-01-310001050140dsgx:KontainersMember2021-01-310001050140dsgx:QuestawebMember2022-01-310001050140dsgx:PortrixMember2022-01-310001050140dsgx:ShiptrackMember2021-01-3100010501402021-01-310001050140dsgx:GreenmileMember2022-01-310001050140dsgx:SupplyVisionMember2023-01-052023-01-050001050140dsgx:XpsTechnologyLlcMember2022-06-032022-06-030001050140dsgx:NetChbLlcMember2022-02-092022-02-090001050140dsgx:GreenmileNetchbXpsAndSupplyVisionMember2022-02-012023-01-310001050140dsgx:GreenmileMember2021-07-082021-07-080001050140dsgx:ShiptrackMember2020-11-062020-11-060001050140dsgx:KontainersMember2020-06-102020-06-100001050140dsgx:XpsMember2022-02-012023-01-310001050140dsgx:SupplyVisionMember2022-02-012023-01-310001050140dsgx:NetChbLlcMember2022-02-012023-01-310001050140dsgx:FoxtrotMember2022-02-012023-01-310001050140dsgx:QuestawebMember2021-02-012022-01-310001050140dsgx:PortrixMember2021-02-012022-01-310001050140dsgx:GreenmileMember2021-02-012022-01-310001050140dsgx:ShiptrackMember2020-02-012021-01-310001050140dsgx:PeoplevoxMember2020-02-012021-01-310001050140dsgx:KontainersMember2020-02-012021-01-3100010501402020-02-012021-01-310001050140dsgx:DeferredShareUnitPlanMember2022-02-012023-01-3100010501402023-01-3100010501402022-01-3100010501402021-02-012022-01-31iso4217:USDxbrli:purexbrli:sharesiso4217:USDxbrli:sharesiso4217:CADdsgx:segmentiso4217:EUR

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

 

FORM 6-K

 

REPORT OF FOREIGN PRIVATE ISSUER

PURSUANT TO RULE 13a-16 OR 15d-16 UNDER

THE SECURITIES EXCHANGE ACT OF 1934

 

 

For the month of March 2023

 

Commission File Number:  000-29970

 

 

THE DESCARTES SYSTEMS GROUP INC.

(Translation of registrant’s name into English)

 

120 Randall Drive

Waterloo, Ontario

Canada N2V 1C6

(Address of principal executive office)

Indicate by check mark whether the registrant files or will file annual reports under cover of Form 20-F or Form 40-F.

Form 20-F [ ] Form 40-F [x]

The attached Annual Report to Shareholders for the year ended January 31, 2023 is furnished herewith as Exhibit 99.1.

The attached Press Release Issued March 1, 2023 is furnished herewith as Exhibit 99.2.

SIGNATURES

Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.

THE DESCARTES SYSTEMS GROUP INC.

(Registrant)

By:

/s/ Peter V. Nguyen                    

Name:

Peter V. Nguyen

Title:

General Counsel

Date: March 1, 2023

EXHIBITS

Exhibit No.

    

Description

99.1

Annual Report to Shareholders for the year ended January 31, 2023

99.2

Press Release Issued March 1, 2023

Ex. 101

Interactive Data File (formatted in Inline XBRL)

EX-99.1 2 dsgx-20230131xex99d1.htm EXHIBIT-99.1
UnlimitedUnlimitedP2YP4YP3YP2YP1YP4YP3YP3Y1013

Exhibit 99.1

Graphic

Graphic

The Descartes Systems Group Inc.

Annual Repo

US GAAP Financial Results for the 2023 Fiscal Year

TABLE OF CONTENTS

MANAGEMENT’S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS

3

OVERVIEW

5

CONSOLIDATED OPERATIONS

10

QUARTERLY OPERATING RESULTS

17

LIQUIDITY AND CAPITAL RESOURCES

18

COMMITMENTS, CONTINGENCIES AND GUARANTEES

21

OUTSTANDING SHARE DATA

22

APPLICATION OF CRITICAL ACCOUNTING POLICIES AND ESTIMATES

23

CHANGE IN / INITIAL ADOPTION OF ACCOUNTING POLICIES

26

CONTROLS AND PROCEDURES

26

TRENDS / BUSINESS OUTLOOK

26

CERTAIN FACTORS THAT MAY AFFECT FUTURE RESULTS

30

MANAGEMENT’S REPORT ON FINANCIAL STATEMENTS AND INTERNAL CONTROL OVER FINANCIAL REPORTING

44

CONSOLIDATED BALANCE SHEETS

49

CONSOLIDATED STATEMENTS OF OPERATIONS

50

CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME

51

CONSOLIDATED STATEMENTS OF SHAREHOLDERS’ EQUITY

52

CONSOLIDATED STATEMENTS OF CASH FLOWS

53

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

54

CORPORATE INFORMATION

89

MANAGEMENT’S DISCUSSION AND ANALYSIS OF
FINANCIAL CONDITION AND RESULTS OF
OPERATIONS

Our Management’s Discussion and Analysis of Financial Condition and Results of Operations (“MD&A”) contains references to Descartes using the words “we,” “us,” “our” and similar words and the reader is referred to using the words “you,” “your” and similar words.

This MD&A also refers to our fiscal years. Our fiscal year commences on February 1st of each year and ends on January 31st of the following year. Our fiscal year that we are reporting on in this MD&A, which ended on January 31, 2023, is referred to as the “current fiscal year,” “fiscal 2023,” “2023” or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the “previous fiscal year,” “fiscal 2022,” “2022” or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, 2024 refers to the annual period ending January 31, 2024 and the “fourth quarter of 2024” refers to the quarter ending January 31, 2024.

This MD&A, which is prepared as of March 1, 2023, covers our year ended January 31, 2023, as compared to years ended January 31, 2022 and 2021. You should read the MD&A in conjunction with our audited consolidated financial statements for 2023 that appear elsewhere in this Annual Report to Shareholders.

We prepare and file our consolidated financial statements and MD&A in United States (“US”) dollars and in accordance with US generally accepted accounting principles (“GAAP”). All dollar amounts we use in the MD&A are in US currency, unless we indicate otherwise.

We have prepared the MD&A with reference to the Form 51-102F1 MD&A disclosure requirements established under National Instrument 51-102 “Continuous Disclosure Obligations” (“NI 51-102”) of the Canadian Securities Administrators.

Additional information about us, including copies of our continuous disclosure materials such as our annual information form, is available on our website at http://www.descartes.com, through the EDGAR website at http://www.sec.gov or through the SEDAR website at http://www.sedar.com.

As of the date of this MD&A, the conflict between Russia and the Ukraine (the “Ukraine Conflict”) is contributing to significant uncertainty within the global economy. Although we have very limited customer and other direct business dealings within either of Russia or the Ukraine, continued conflict between the countries could impact economic and trade activity across Europe and perhaps worldwide as trade lanes and supply chains are impacted. Russia is a major supplier of oil and gas to numerous countries and a disruption in that supply could impact economic activity and transportation costs and general transportation availability on a global basis. In addition, the global impact of the extensive trade sanctions and financial controls related to Russia, Belarus or other countries are difficult to assess at the current time.

As of the date of this MD&A, the world also continues to experience a global pandemic related to the spread of the COVID-19 virus (the “Pandemic”). Earlier in the Pandemic, we had observed some reduced shipment volumes across various modes of transportation, particularly in air cargo, and were aware of some customers who reduced or temporarily suspended operations during the Pandemic or otherwise experienced financial hardship as a result of the Pandemic. Although we have come to understand that the impact of the Pandemic will be felt in waves at various times, at the time of this MD&A, we have observed that shipment volumes and general economic activity in our industry have largely returned to what we would consider “pre-Pandemic” levels. 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. We have been able to transition our workforce such that the majority of our workforce can work remotely and continue

3

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.

Certain statements made in this Annual Report to Shareholders, constitute forward-looking information for the purposes of applicable securities laws (“forward-looking statements”), including, but not limited to: statements in the “Trends / Business Outlook” section and statements regarding our expectations concerning future revenues and earnings, including potential variances from period to period; our assessment of the current and future potential impact of both the Ukraine Conflict and the Pandemic and related public health protection measures on our business; results of operations and financial condition; our expectations regarding the cyclical nature of our business; mix of revenues and potential variances from period to period; our plans to focus on generating services revenues yet to continue to allow customers to elect to license technology in lieu of subscribing to services; our expectations on losses of revenues and customers; our baseline calibration; our ability to keep our operating expenses at a level below our baseline revenues; our future business plans and business planning process; allocation of purchase price for completed acquisitions; our expectations regarding future restructuring charges and cost-reduction activities; expenses, including amortization of intangible assets and stock-based compensation; goodwill impairment tests and the possibility of future impairment adjustments; capital expenditures; acquisition-related costs, including the potential for further performance-based contingent consideration; our liability with respect to various claims and suits arising in the ordinary course; any commitments referred to in the “Commitments, Contingencies and Guarantees” section of this MD&A; our intention to actively explore future business combinations and other strategic transactions; our liability under indemnification obligations; our reinvestment of earnings of subsidiaries back into such subsidiaries; our dividend policy; expected purchases under our NCIB (as defined herein); the sufficiency of capital to meet working capital, capital expenditure, debt repayment requirements and our anticipated growth strategy; our ability to raise capital; our adoption of certain accounting standards; and other matters related to the foregoing. When used in this document, the words “believe,” “plan,” “expect,” “anticipate,” “intend,” “continue,” “may,” “will,” “should” or the negative of such terms and similar expressions are intended to identify forward-looking statements. These forward-looking statements are subject to risks and uncertainties and are based on assumptions that may cause future results to differ materially from those expected. The material assumptions made in making these forward-looking statements include the following: Descartes’ ability to successfully identify and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; the impact of network failures, information security breaches or other cyber-security threats; disruptions in the movement of freight and a decline in shipment volumes including as a result of the Ukraine Conflict or the Pandemic or other contagious illness outbreaks, a deterioration of general economic conditions or instability in the financial markets accompanied by a decrease in spending by our customers; global shipment volumes continuing to increase at levels consistent with the average growth rates of the global economy; countries continuing to implement and enforce existing and additional customs and security regulations relating to the provision of electronic information for imports and exports; countries continuing to implement and enforce existing and additional trade restrictions and sanctioned party lists with respect to doing business with certain countries, organizations, entities and individuals; our continued operation of a secure and reliable business network; the continued availability of the data and content that is utilized in the delivery of services made available over our network; relative stability of currency exchange rates and interest rates; equity and debt markets continuing to provide us with access to capital; the availability and suitability of using cash to fund share buybacks under our NCIB; our ability to develop solutions that keep pace with the continuing changes in technology, and our continued compliance with third party intellectual property rights. While management believes these assumptions to be reasonable under the circumstances, they may prove to be inaccurate. Such forward-looking statements also involve known and unknown risks, uncertainties and other factors that may cause our actual results, performance or achievements of, or developments in our business or industry, to differ materially from the anticipated results, performance or achievements or developments expressed or implied by such forward-looking statements. Such factors include, but are not limited to, the factors discussed under the heading “Certain Factors That May Affect Future Results” in this MD&A and in other documents filed with the Securities and Exchange Commission, the Ontario Securities Commission and other securities commissions across Canada from time to time. If

4

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’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.

OVERVIEW

We use technology and networks to simplify complex business processes. We are primarily focused on logistics and supply chain management business processes. Our solutions are predominantly cloud-based and are focused on improving the productivity, performance and security of logistics-intensive businesses. Customers use our modular, software-as-a-service (“SaaS”) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.

Logistics is the management of the flow of resources between a point of origin and a point of destination – processes that move items (such as goods, people, information) from point A to point B. Supply chain management is broader than logistics and includes the sourcing, procurement,

conversion and storage of resources for consumption by an enterprise. Logistics and supply chain management have been evolving over the past several years as companies are increasingly seeking automation and real-time control of their supply chain activities. We believe companies are looking for integrated solutions for managing inventory in transit, conveyance units, people, data and business documents.

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’ global supply chains and a lack of standardized business processes.

Additionally, global sourcing, logistics outsourcing, imposition of additional customs and regulatory requirements and the increased rate of change in day-to-day business requirements are adding to the overall complexities that companies face in planning and executing in their supply chains. Whether a shipment is delayed at the border, a customer changes an order or a breakdown occurs on the road, there are increasingly more issues that can significantly impact the execution of fulfillment schedules and associated costs.

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.

5

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.

As the market continues to change, we have been evolving to meet our customers’ 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 (“GLN”) 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 – 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.

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.

Increasingly, data and content have become central to supply chain planning and execution. Complex international supply chains are affected by logistics service provider performance, capacity, and productivity, as well as regulatory frameworks such as free trade agreements. We believe our Global Trade Data, Trade Regulations, Free-Trade-Agreement, and duty rate and calculation solutions help give our customers the intelligence they need to improve their sourcing, landed cost, and transportation lane and provider selection processes.

Solutions

Descartes’ 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.

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’s multimodal logistics community to enable companies to quickly and cost-effectively connect and collaborate.

Descartes’ 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.

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

6

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 “low tech” partners to act and respond with “high tech” 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.

Descartes’ Logistics Application Suite offers a wide array of modular, cloud-based, interoperable web and wireless logistics management applications. These solutions embody Descartes’ deep domain expertise, not merely “check box” 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’ comprehensive suite of solutions includes:

Routing, Mobile and Telematics;
Transportation Management;
Ecommerce, Shipping & Fulfillment;
Customs & Regulatory Compliance;
Global Trade Intelligence;
B2B Messaging & Connectivity; and
Broker & Forwarder Enterprise Systems.

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’ solutions are designed to deliver functionality that can enhance a logistics operation’s performance and productivity both within the organization and across a complex network of partners.

Descartes’ 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 global trade intelligence solutions can help customers: research and analyze global trade movements, regulations and trends; reduce the risk of

transacting with denied parties; increase trade compliance rates; optimize sourcing, procurement, and business development strategies; and minimize duty spend.

Descartes’ 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’ 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.

Sales and Distribution

Our sales efforts are primarily directed towards two specific customer markets: (a) transportation companies and logistics service providers; and (b) manufacturers, retailers, distributors and mobile business service providers. Our sales staff is regionally based and trained to sell across our solutions to specific customer markets. In North America and Europe, we promote our products primarily through direct sales efforts aimed at existing and potential users of our products. In the Asia Pacific, Indian subcontinent, South America and African regions, we focus on making our channel partners successful. Channel partners for our other international operations include distributors, alliance partners and value-added resellers. During the ongoing period of the Pandemic we have been encouraged by the success of our sales organization to date in being able to continue to execute on sales efforts and prospecting through the use of online communication platforms and virtual meetings in place of face-to-face meetings and in person trade show events.

7

United by Design

Descartes’ ‘United By Design’ strategic alliance program is intended to ensure complementary hardware, software and network offerings are interoperable with Descartes’ solutions and work together seamlessly to solve multi-party business problems.

‘United By Design’ is intended to create a global ecosystem of logistics-intensive organizations working together to standardize and automate business processes and manage resources in motion. The program centers on Descartes’ Open Standard Collaborative Interfaces, which provide a wide variety of connectivity mechanisms to integrate a broad spectrum of applications and services.

Descartes has partnering relationships with multiple parties across the following three categories:

Technology Partners – Complementary hardware, software, network, and embedded technology providers that extend the functional breadth of Descartes’ solution capabilities;
Consulting Partners - Large system integrators and enterprise resource planning system vendors through to vertically specialized or niche consulting organizations that provide domain expertise and/or implementation services for Descartes’ solutions; and
Channel Partners (Value-Added Resellers) – Organizations that market, sell, implement and support Descartes’ solutions to extend access and expand market share into territories and markets where Descartes might not have a focused direct sales presence.

Marketing

Our marketing efforts are focused on growing demand for our solutions and establishing Descartes as a thought leader and innovator across the markets we serve. Marketing programs are delivered through integrated initiatives designed to reach our target customer and prospect groups. These programs include digital and online marketing, partner-focused campaigns, proactive media relations, and direct corporate marketing efforts.

Fiscal 2023 and 2024 Highlights

On February 9, 2022, Descartes acquired all of the shares of NetCHB, LLC (“NetCHB”), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately $38.7 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two years post-acquisition.

On April 21, 2022, Descartes acquired substantially all of the assets of Foxtrot, Inc. (“Foxtrot”), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately $4.2 million, net of cash acquired, which was funded from cash on hand.

On June 3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (“XPS”), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately $61.1 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $75.0 million based on XPS achieving revenue-based targets over the first two years post-acquisition.

On June 7, 2022, Descartes announced a normal course issuer bid (“NCIB”), commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes is permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the “public float” (calculated in accordance with the rules of the TSX) of Descartes’ issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.

On July 15, 2022, we filed a final short-form base shelf prospectus (the “2022 Base Shelf Prospectus”), allowing us to offer and issue an unlimited quantity of the following securities

8

during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.

On December 7, 2022, we amended our senior secured revolving credit facility to extend the maturity date from January 2024 to December 2027. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the term. The total available amount under the facility of $350.0 million remains unchanged and with the approval of the lenders, the credit facility can be expanded to a total of $500.0 million. Borrowings under the credit facility are secured by a first 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, Canadian Dollar Offered Rate (CDOR) or the Secured Overnight

Financing Rate (SOFR) plus an additional 0 to 250 basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. There were no other significant changes to the terms of the credit facility.

On January 5, 2023, Descartes acquired all of the shares of Trans-Soft, LLC, doing business as Supply Vision (“Supply Vision”), a provider of shipment management solutions for North American logistics services providers. The purchase price for the acquisition was approximately $12.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $3.0 million based on Supply Vision achieving revenue-based targets over the first two years post-acquisition.

On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (“GroundCloud”), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately $138.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $80.0 million based on GroundCloud achieving revenue-based targets over the first two years post-acquisition.

9

CONSOLIDATED OPERATIONS

The following table shows, for the periods indicated, our results of operations in millions of dollars (except per share and weighted average share amounts):

    

January 31,

    

January 31,

    

January 31,

Year ended

2023

2022

2021

Total revenues

 

486.0

 

424.7

 

348.7

Cost of revenues

 

113.3

 

101.8

 

89.9

Gross margin

 

372.7

 

322.9

 

258.8

Operating expenses

 

176.7

 

154.0

 

129.2

Other charges

 

5.4

 

6.4

 

2.3

Amortization of intangible assets

 

60.2

 

59.1

 

55.9

Income from operations

 

130.4

 

103.4

 

71.4

Investment and other income

 

4.5

 

0.3

 

0.2

Interest expense

 

(1.2)

 

(1.1)

 

(1.2)

Income before income taxes

 

133.7

 

102.6

 

70.4

Income tax expense

 

 

 

Current

 

28.3

 

14.8

 

3.8

Deferred

 

3.2

 

1.5

 

14.5

Net income

 

102.2

 

86.3

 

52.1

EARNINGS PER SHARE

 

 

  

 

BASIC

 

1.21

 

1.02

 

0.62

DILUTED

 

1.18

 

1.00

 

0.61

WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)

 

 

  

 

BASIC

 

84,791

 

84,591

 

84,360

DILUTED

86,451

 

86,200

 

85,756

OTHER PERTINENT INFORMATION

Total assets

1,316.0

1,185.4

1,063.3

Non-current financial liabilities

3.9

7.4

8.9

Total revenues consist of license revenues, services revenues and professional services and other revenues. 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.

Our total revenues were $486.0 million, $424.7 million, and $348.7 million in 2023, 2022 and 2021, respectively. The increase in revenues in 2023 compared to 2022 was primarily due to growth in services revenues from new and existing customers, which contributed an incremental $30.4 million in revenue in 2023. While we saw growth across many lines of our business, services revenue growth in 2023 was driven by sales of our global trade intelligence solutions partially offset by the negative impact from foreign exchange rates as a result of the weakening of British pound sterling, euro and Canadian dollar compared to the US dollar. The principal contributors to the balance of the increase in revenues in 2023 compared to 2022 was a partial period of contribution from the acquisitions completed in 2023 (NetCHB, Foxtrot, XPS and Supply Vision, collectively, the “2023 Acquisitions”) as well as a full period of contribution from the acquisitions completed in 2022 (VitaDex Solutions, LLC, doing business as QuestaWeb (“QuestaWeb”),

10

Portrix Logistic Software GmbH (“Portrix”), and GreenMile, LLC (“GreenMile”), collectively, the “2022 Acquisitions”).

The increase in revenues in 2022 compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $48.3 million in revenue in 2022. While we saw growth across many lines of our business, services revenue growth in 2022 was driven by sales of our solutions that address the regulatory requirements for the United Kingdom’s (“UK’s”) withdrawal from the European Union (“Brexit”). The principal contributor to the balance of the increase in revenues in 2022 compared to the same period of 2021 was a full period of contribution from the acquisitions completed in 2021 (Peoplevox Limited “Peoplevox”, Cracking Logistics Limited “Kontainers”, and ShipTrack Inc. “ShipTrack”, collectively, the “2021 Acquisitions”).

The following table provides additional analysis of our revenues by type (in millions of dollars and as a percentage of total revenues) generated over each of the periods indicated:

    

January 31,

    

January 31,

    

January 31,

Year ended

    

2023

    

2022

    

2021

 

License revenues

 

8.4

 

5.1

 

5.1

Percentage of total revenues

 

2

%  

1

%  

1

%

Services revenues

 

435.7

 

378.5

 

309.7

Percentage of total revenues

 

90

%  

89

%  

89

%

Professional services and other

 

41.9

 

41.1

 

33.9

Percentage of total revenues

 

8

%  

10

%  

10

%

Total revenues

 

486.0

 

424.7

 

348.7

Our license revenues were $8.4 million, $5.1 million and $5.1 million in 2023, 2022 and 2021, respectively, representing 2%, 1% and 1% of total revenues in 2023, 2022 and 2021, respectively. While our sales focus has been on generating services revenues in our SaaS business model, we continue to see a market for licensing the products in our omni-channel retailing and home delivery logistics solutions. The amount of license revenues in a period is dependent on our customers’ preference to license our solutions instead of purchasing our solutions as a service and we anticipate variances from period to period.

Our services revenues were $435.7 million, $378.5 million and $309.7 million in 2023, 2022 and 2021, respectively, representing 90%, 89% and 89% of total revenues in 2023, 2022 and 2021, respectively. The increase in services revenues in 2023 compared to 2022 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $30.4 million in revenue in 2023. The growth in service revenues in 2023 was driven by sales of our global trade intelligence solutions partially offset by the negative impact from foreign exchange rates as a result of the weakening of British pound sterling, euro and Canadian dollar compared to the US dollar. The principal contributors to the balance of the increase in services revenues in 2023 compared to 2022 was a partial period of contribution from the 2023 Acquisitions as well as a full period of contribution from the 2022 Acquisitions.

The increase in services revenues in 2022 compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $48.3 million in revenue in 2022. The growth in services revenues in 2022 was driven by sales of our solutions that address the regulatory requirements from Brexit. The principal contributor to the balance of the increase in services revenues in 2022 compared to 2021 was a full period of contribution from the 2021 Acquisitions.

11

Our professional services and other revenues were $41.9 million, $41.1 million and $33.9 million in 2023, 2022 and 2021, respectively, representing 8%, 10% and 10% of total revenues in 2023, 2022, and 2021, respectively. The increase in professional services and other revenues in 2023 compared to the same period of 2022 was primarily due the inclusion of a full period of revenues from the 2022 Acquisitions, which contributed an incremental $1.0 million in revenues.

The increase in professional services and other revenues in 2022 compared to 2021 was primarily due to growth in revenue from new and existing customers which contributed an incremental $3.4 million in revenues. The principal contributor to the balance of the increase in professional services and other revenues in 2022 compared to 2021 was a partial period of contribution from the 2022 Acquisitions.

We operate in one business segment providing logistics technology solutions. The following table provides additional analysis of our revenues by geographic location of customer (in millions of dollars and as a percentage of total revenues):

    

January 31,

    

January 31,

    

January 31,

Year Ended

    

2023

    

2022

    

2021

 

United States

 

307.1

 

242.1

 

211.2

Percentage of total revenues

 

63

%  

57

%  

61

%

Europe, Middle-East and Africa (“EMEA”)

 

126.9

 

129.0

 

94.2

Percentage of total revenues

 

26

%  

30

%  

27

%

Canada

 

34.6

 

36.1

 

29.4

Percentage of total revenues

 

7

%  

9

%  

8

%

Asia Pacific

 

17.4

 

17.5

 

13.9

Percentage of total revenues

 

4

%  

4

%  

4

%

Total revenues

 

486.0

 

424.7

 

348.7

Revenues from the United States were $307.1 million, $242.1 million and $211.2 million in 2023, 2022 and 2021, respectively. The increase in 2023 as compared to 2022 was primarily a result of growth in services revenues from new and existing customers, which contributed an incremental $30.2 million and in revenue. The growth in 2023 was driven by growth in sales to new and existing customers of our global trade intelligence solutions. The principal contributor to the balance of the increase in revenues in 2023 as compared to 2022 was the inclusion of a partial period of revenues from the 2023 Acquisitions.

The increase in 2022 as compared to 2021 was primarily a result of growth in services revenues from new and existing customers which contributed an incremental $15.4 million in revenue. The growth in 2022 was primarily driven by sales of our global trade intelligence solutions. The principal contributor to the balance of the increase in 2022 as compared to 2021 was the inclusion of a partial period of revenues from the 2022 Acquisitions.

Revenues from the EMEA region were $126.9 million, $129.0 million and $94.2 million in 2023, 2022, and 2021, respectively. The decrease in 2023 compared to 2022 was primarily a result of the weakening of the British pound sterling and euro compared to the US dollar partially offset by growth in services revenues from new and existing customers.

The increase in 2022 compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $28.4 million in revenue, respectively. The growth in 2022 was primarily driven by sales of our solutions that address the regulatory requirements from Brexit. The principal contributor to the balance of the increase in revenues in 2022 as compared to 2021 was the inclusion of a full period of revenues from the 2021 Acquisitions.

12

Revenues from Canada were $34.6 million, $36.1 million and $29.4 million in 2023, 2022 and 2021, respectively. The decrease 2023 compared to 2022 was primarily a result of the weakening of the Canadian dollar compared to the US dollar partially offset by growth in services revenues from new and existing customers.

The increase in 2022 as compared to 2021 was primarily due to growth in services revenues from new and existing customers which contributed an incremental $3.4 million in revenue. The principal contributor to the balance of the increase in revenues in 2022 as compared to 2021 was primarily a result of the inclusion of a full period of revenues from the 2021 Acquisitions.

Revenues from the Asia Pacific region were $17.4 million, $17.5 million and $13.9 million in 2023, 2022 and 2021, respectively. Revenues in 2023 were consistent with 2022 as services revenue growth was offset by a negative impact from foreign exchange rates.

The increase in 2022 compared to 2021 was primarily a result of the inclusion of a full period of revenues from the 2021 Acquisitions, which contributed an incremental $1.5 million. The principal contributor to the balance of the increase in revenues in 2022 as compared to 2021 was primarily due to growth in services revenues from new and existing customers.

The following table provides analysis of cost of revenues (in millions of dollars) and the related gross margins for the periods indicated:

    

January 31,

    

January 31,

    

January 31,

Year ended

    

2023

    

2022

    

2021

 

License

 

  

 

  

 

  

License revenues

 

8.4

 

5.1

 

5.1

Cost of license revenues

 

1.1

 

1.1

 

0.7

Gross margin

 

7.3

 

4.0

 

4.4

Gross margin percentage

 

87

%  

78

%  

86

%

Services

 

  

 

  

 

  

Services revenues

 

435.7

 

378.5

 

309.7

Cost of services revenues

 

88.3

 

78.0

 

69.3

Gross margin

 

347.4

 

300.5

 

240.4

Gross margin percentage

 

80

%  

79

%  

78

%

Professional services and other

 

  

 

  

 

  

Professional services and other revenues

 

41.9

 

41.1

 

33.9

Cost of professional services and other revenues

 

23.9

 

22.7

 

19.9

Gross margin

 

18.0

 

18.4

 

14.0

Gross margin percentage

 

43

%  

45

%  

41

%

Total

 

  

 

  

 

  

Revenues

 

486.0

 

424.7

 

348.7

Cost of revenues

 

113.3

 

101.8

 

89.9

Gross margin

 

372.7

 

322.9

 

258.8

Gross margin percentage

 

77

%  

76

%  

74

%

13

Cost of license revenues consists of costs related to our sale of third-party technology, such as third-party map license fees and royalties.

Gross margin percentage for license revenues was 87%, 78% and 86% in 2023, 2022 and 2021, respectively. Our gross margin on license revenues is dependent on the proportion of our license revenues that involve third-party technology. Consequently, our gross margin percentage for license revenues is higher when a lower proportion of our license revenues attracts third-party technology costs, and vice versa.

Cost of services revenues consists of internal costs of running our systems and applications and other personnel-related expenses incurred in providing maintenance, including customer support.

Gross margin percentage for services revenues was 80%, 79% and 78% in 2023, 2022 and 2021, respectively. Overall, the margin in 2023 was positively impacted by the growth in higher margin service revenue products such as our global trade intelligence solutions.

Cost of professional services and other revenues consists of personnel-related expenses incurred in providing professional services, hardware installation as well as hardware costs.

Gross margin percentage for professional services and other revenues was 43%, 45% and 41% for 2023, 2022 and 2021, respectively. Hardware and other revenues typically have lower margins than our professional services revenues and as such variances in gross margin can occur from period to period as a result of the sales mix.

Operating expenses, consisting of sales and marketing, research and development and general and administrative expenses, were $176.7 million, $154.0 million and $129.2 million for 2023, 2022 and 2021, respectively. Operating expenses were higher in 2023 compared to 2022 primarily due to increased headcount-related costs, excluding costs from the 2022 and 2023 Acquisitions, which added approximately $6.1 million. Operating expenses were also higher in 2023 compared to the same period of 2022 due to a partial period of costs from the 2023 Acquisitions and a full period of costs from the 2022 Acquisitions, which added approximately $4.7 million and $2.2 million, respectively.

Operating expenses were higher in 2022 compared to 2021 primarily due to increased headcount-related costs, excluding costs from the 2021 and 2022 Acquisitions, which added approximately $14.3 million. The principal contributor to the balance of the increase in operating expenses in 2022 compared to 2021 was a partial period of costs from the 2022 Acquisitions.

14

The following table provides analysis of operating expenses (in millions of dollars and as a percentage of total revenues) for the periods indicated:

    

January 31,

    

January 31,

    

January 31,

Year ended

    

2023

    

2022

    

2021

 

Total revenues

 

486.0

 

424.7

 

348.7

Sales and marketing expenses

 

56.6

 

46.9

 

38.8

Percentage of total revenues

 

12

%  

11

%  

11

%

Research and development expenses

 

70.4

 

62.6

 

54.1

Percentage of total revenues

 

14

%  

15

%  

16

%

General and administrative expenses

 

49.7

 

44.5

 

36.3

Percentage of total revenues

 

10

%  

10

%  

10

%

Total operating expenses

176.7

154.0

129.2

Percentage of total revenues

 

36

%  

36

%  

37

%

Sales and marketing expenses include salaries, commissions, stock-based compensation and other personnel-related costs, bad debt expenses, travel expenses, advertising programs and services, and other promotional activities associated with selling and marketing our services and products. Sales and marketing expenses were $56.6 million, $46.9 million and $38.8 million in 2023, 2022 and 2021, respectively. Sales and marketing expenses as a percentage of total revenues were 12% in 2023, 11% in 2022 and 11% in 2021, respectively. The increase in sales and marketing expenses in 2023 compared to 2022 was primarily due to increased headcount-related costs.

The increase in sales and marketing expenses in 2022 compared to 2021 was also primarily due to increased headcount-related costs.

Research and development expenses consist primarily of salaries, stock-based compensation and other personnel-related costs of technical and engineering personnel associated with our research and product development activities, as well as costs for third-party outsourced development providers. We expensed all costs related to research and development in 2023, 2022 and 2021. Research and development expenses were $70.4 million, $62.6 million and $54.1 million in 2023, 2022 and 2021, respectively. Research and development expenses as a percentage of total revenues were 14% in 2023, 15% in 2022 and 16% in 2021, respectively. The increase in research and development expenses in 2023 compared to 2022 was primarily due to headcount-related costs.

The increase in research and development expenses in 2022 compared to 2021 was primarily due to headcount-related costs from the 2021 Acquisitions and 2022 Acquisitions.

General and administrative expenses consist primarily of salaries, stock-based compensation and other personnel-related costs of administrative personnel, as well as professional fees, insurance and other administrative expenses. General and administrative costs were $49.7 million, $44.5 million, and $36.3 million in 2023, 2022 and 2021, respectively. General and administrative expenses as a percentage of total revenues were 10% in each of 2023, 2022 and 2021. The increase in general and administrative expenses in 2023 compared to 2022 was primarily due to increased computer software costs as well as increased stock-based compensation from fiscal 2022 and fiscal 2023 grants.

The increase in general and administrative expenses in 2022 compared to 2021 was primarily due to costs from the 2021 Acquisitions, increased headcount-related costs as well as increased stock-based compensation from fiscal 2021 and fiscal 2022 grants.

15

Other charges consist primarily of acquisition-related costs with respect to completed and prospective acquisitions, contingent consideration adjustments and restructuring charges. Acquisition-related costs primarily include advisory services, brokerage services, administrative costs and retention bonuses, and relate to completed and prospective acquisitions. Contingent consideration adjustments relate to changes in the fair value estimate of contingent consideration. Restructuring costs relate to the integration of previously-completed acquisitions and other cost-reduction activities. Other charges were $5.4 million, $6.4 million and $2.3 million in 2023, 2022 and 2021, respectively. The decrease in other charges in 2023 compared to 2022 and the increase in other charges in 2022 compared to 2021 was primarily a result of an increase in contingent consideration adjustments in 2022.

Amortization of intangible assets is amortization of the value attributable to intangible assets, including customer agreements and relationships, non-compete covenants, existing technologies and trade names, in each case associated with acquisitions completed by us as of the end of each reporting period. Intangible assets with a finite life are amortized to income over their useful life. The amount of amortization expense in a fiscal period is dependent on our acquisition activities. Amortization of intangible assets was $60.2 million, $59.1 million and $55.9 million in 2023, 2022 and 2021, respectively. Amortization expense increased in 2023 compared to 2022 primarily due to the 2023 Acquisitions, which resulted in an incremental $6.5 million of amortization expense. Amortization expense increased in 2022 compared to 2021 primarily due the 2022 Acquisitions, which resulted in an incremental $5.4 million of amortization expense.

We test the carrying value of our finite life intangible assets for recoverability when events or changes in circumstances indicate that there may be evidence of impairment. We write down intangible assets or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible assets or asset groups is determined by discounting the expected related cash flows. No finite life intangible asset or asset group impairment has been identified or recorded for any of the fiscal periods reported.

Investment and other income was $4.5 million, $0.3 million and $0.2 million in 2023, 2022 and 2021, respectively. Investment and other income is generally earned on cash balances. In 2023 the increase in investment and other income was primarily due to an increase in both cash balances and interest rates.

Interest expense was $1.2 million, $1.1 million and $1.2 million in 2023, 2022 and 2021, respectively. Interest expense is primarily comprised of interest expense on the amount borrowed and outstanding on our revolving debt facility, debt standby charges as well as the amortization of deferred financing charges.

Income tax expense is comprised of current and deferred income tax expense. Income tax expense for 2023, 2022 and 2021 was 24%, 16% and 26% of income before income taxes, respectively, or $31.5 million, $16.3 million and $18.3 million, respectively. The income tax rate as a percentage of income before income taxes (the “effective tax rate”) increased in 2023 compared to 2022 primarily as a result of changes in tax rates and a release in valuation allowances on tax losses carried forward in 2022.

The income tax rate as a percentage of income before income taxes decreased in 2022 compared to 2021 primarily as a result of a 2022 release in valuation allowances on tax losses in EMEA carried forward from previous periods. In addition, the benefit of differences between the Canadian and foreign tax rates and the effect of tax rate changes in foreign jurisdictions contributed to the decrease in income tax expense in 2022.

Income tax expense – current was $28.3 million, $14.8 million and $3.8 million in 2023, 2022 and 2021, respectively. Current income tax expense increased in 2023 compared to 2022 due to the impact of the loss restriction rules in the UK and lower tax attributes available in Canada and US to deduct against income in 2023.

Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.

16

Income tax expense – deferred was $3.2 million, $1.5 million and $14.5 million in 2023, 2022 and 2021, respectively. Deferred income tax expense increased in 2023 compared to 2022 primarily due to a release in valuation allowances on tax losses carried forward in the comparative period, partially offset against a recovery of certain deferred tax attributes in the US recorded in 2023, as well as normal course changes in timing differences in Canada.

Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.

Net income was $102.2 million, $86.3 million and $52.1 million in 2023, 2022 and 2021 respectively. Net income in 2023 compared to 2022 was positively impacted by the growth in services revenues from new and existing customers as well the 2023 Acquisitions.

Net income in 2022 compared to 2021 was positively impacted by the growth in services revenues.

QUARTERLY OPERATING RESULTS

The following table provides an analysis of our unaudited operating results (in thousands of dollars, except per share and weighted average number of share amounts) for each of the quarters indicated:

Fiscal

Fiscal

2022

2023

First

Second

Third

Fourth

First

Second

 

Third

Fourth

    

Quarter

    

Quarter

    

Quarter

    

Quarter

    

Quarter

    

Quarter

    

Quarter

    

Quarter

Revenues

98,838

104,570

108,911

112,371

116,395

123,011

 

121,467

125,141

Gross margin

 

74,989

 

79,100

 

83,304

 

85,487

 

88,572

 

94,092

93,937

96,087

Operating expenses

 

37,236

 

37,656

 

39,374

 

39,653

 

41,447

 

45,170

44,330

45,689

Net income

 

18,421

 

23,176

 

25,491

 

19,194

 

23,115

 

22,902

26,469

29,750

Basic earnings per share

 

0.22

 

0.27

 

0.30

 

0.23

 

0.27

 

0.27

0.31

0.35

Diluted earnings per share

 

0.21

 

0.27

 

0.30

 

0.22

 

0.27

 

0.27

0.31

0.34

Weighted average shares outstanding (thousands):

 

  

 

  

 

  

 

  

 

  

 

  

Basic

 

84,501

 

84,566

 

84,636

 

84,659

 

84,765

 

84,783

84,797

84,819

Diluted

 

86,045

 

86,128

 

86,328

 

86,341

 

86,348

 

86,338

86,483

86,561

Revenues over the comparative periods have been positively impacted by an increase in transactions processed over our GLN business document exchange, including the filing of regulatory documents resulting from Brexit, as well as an increase in subscriptions for our software solutions and global trade intelligence. In addition, we have seen increased revenues as a result of the ten acquisitions that we have completed since the beginning of fiscal 2021 through the end of the fourth quarter of fiscal 2023.

Our services revenues continue to have minor seasonal trends. In the first fiscal quarter of each year, we historically have seen slightly lower shipment volumes by air and truck which impact the aggregate number of transactions flowing through our GLN business document exchange. In the second fiscal quarter of each year, we historically have seen a slight increase in ocean services revenues as ocean carriers are in the midst of their customer contract negotiation period. In the third fiscal quarter of each year, we have

17

historically seen shipment and transactional volumes at their highest. In the fourth fiscal quarter of each year, the various international holidays impact the aggregate number of shipping days in the quarter, and historically we have seen this adversely impact the number of transactions our network processes and, consequently, the amount of services revenues we receive during that period. In the second and fourth fiscal quarters of each year, we historically have seen a slight decrease in professional services revenues due to various international holidays and vacation seasons. Overall, the impact of seasonal trends has a relatively minor impact on our revenues quarter to quarter.

In the fourth quarter of 2023, revenues and gross margin increased compared to the third quarter of 2023 primarily due to growth in transaction and subscription revenues with new and existing customers which contributed an incremental $2.8 million in revenues. Operating expenses increased in the fourth quarter of 2023 compared to the third quarter of 2023 primarily due to increased headcount-related costs. Net income was also positively impacted in the fourth quarter of 2023 compared to the third quarter of 2023 by an increase in investment and other income and a decrease in income tax expense.

LIQUIDITY AND CAPITAL RESOURCES

Cash. We had $276.4 million and $213.4 million in cash as at January 31, 2023 and January 31, 2022, respectively. All cash was held in interest-bearing bank accounts, primarily with major Canadian, US and European banks. The cash balance increased from January 31, 2022 to January 31, 2023 by $63.0 million primarily due to cash generated from operations partially offset by cash used for acquisitions.

Credit facility. The facility is a $350.0 million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. On December 7, 2022, we amended our credit facility to extend the maturity date from January 2024 to December 2027. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the term. The total available amount under the facility of $350.0 million remains unchanged and with the approval of the lenders, the credit facility can be expanded to a total of $500.0 million. Borrowings under the credit facility are secured by a first 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, Canadian Dollar Offered Rate (CDOR) or the Secured Overnight Financing Rate (SOFR) plus an additional 0 to 250 basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. There were no other significant changes to the terms of the credit facility. A standby fee of between 20 to 40 basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.

No amounts were drawn on the credit facility as of January 31, 2023 and the balance of $350.0 million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2023 and remain in compliance as of the date of this MD&A.

Short-form base shelf prospectus. On July 16, 2020, we filed a final short-form base shelf prospectus (the “2020 Base Shelf Prospectus”), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. No securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July 2022.

On July 15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v)

18

warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.

Normal course issuer bid. On June 7, 2022, Descartes announced a NCIB, commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the “public float” (calculated in accordance with the rules of the TSX) of Descartes’ issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.

Working capital. As at January 31, 2023, our working capital surplus (current assets less current liabilities) was $189.1 million. Current assets primarily include $276.4 million of cash, $45.2 million of current trade receivables and $24.7 million of prepaid assets. Current liabilities primarily include $67.8 million of deferred revenue, $80.3 million of accrued liabilities and $10.6 million of accounts payable. Our working capital has increased from January 31, 2022 to January 31, 2023 by $30.4 million, primarily due to cash generated from operations partially offset by cash used for acquisitions.

Historically, we’ve financed our operations and met our capital expenditure requirements primarily through cash flows provided from operations, issuances of common shares and proceeds from debt. We anticipate that, considering the above, we have sufficient liquidity to fund our current cash requirements for working capital, contractual commitments, capital expenditures and other operating needs. We also believe that we have the ability to generate sufficient amounts of cash in the long term to meet planned growth targets and to fund strategic transactions. Should additional future financing be undertaken, the proceeds from any such transaction could be utilized to fund strategic transactions or for general corporate purposes, including the repayment of outstanding debt. We expect, from time to time, to continue to consider select strategic transactions to create value and improve performance, which may include acquisitions, dispositions, restructurings, joint ventures and partnerships, and we may undertake further financing transactions, including draws on our credit facility, other debt instruments or equity offerings, in connection with any such potential strategic transaction.

With respect to earnings of our non-Canadian subsidiaries, our intention is that these earnings will be reinvested in each subsidiary indefinitely. Of the $276.4 million of cash as at January 31, 2023, $96.8 million was held by our foreign subsidiaries, most significantly in the United States with lesser amounts held in other countries in the EMEA and Asia Pacific regions. To date, we have not encountered significant legal or practical restrictions on the abilities of our subsidiaries to repatriate money to Canada, even if such restrictions may exist in respect of certain foreign jurisdictions where we have subsidiaries. In the future, if we elect to repatriate the unremitted earnings of our foreign subsidiaries in the form of dividends, or if the shares of the foreign subsidiaries are sold or transferred, then we could be subject to additional Canadian or foreign income taxes, net of the impact of any available foreign tax credits, which would result in a higher effective tax rate. We have not provided for foreign withholding taxes or deferred income tax liabilities related to unremitted earnings of our non-Canadian subsidiaries, since such earnings are considered permanently invested in those subsidiaries or are not subject to withholding taxes.

19

The table set forth below provides a summary of cash flows for the periods indicated in millions of dollars:

January 31,

January 31,

January 31,

Year ended

    

2023

    

2022

    

2021

Cash provided by operating activities

 

192.4

 

176.1

 

131.2

Additions to property and equipment

 

(6.1)

 

(4.8)

 

(3.8)

Acquisition of subsidiaries, net of cash acquired

 

(115.6)

 

(90.3)

 

(48.4)

Proceeds from borrowings on credit facility

10.2

Credit facility and other debt repayments

 

 

(1.1)

 

(10.8)

Payment of debt issuance costs

 

(1.1)

 

(0.1)

 

Issuance of common shares, net of issuance costs

 

1.7

 

2.7

 

6.2

Payment of contingent consideration

 

(5.2)

 

 

Effect of foreign exchange rate on cash held

 

(3.1)

 

(2.8)

 

4.7

Net change in cash

 

63.0

 

79.7

 

89.3

Cash, beginning of period

 

213.4

 

133.7

 

44.4

Cash, end of period

 

276.4

 

213.4

 

133.7

Cash provided by operating activities was $192.4 million, $176.1 million and $131.2 million for 2023, 2022 and 2021, respectively. For 2023, the $192.4 million of cash provided by operating activities resulted from $102.2 million of net income, plus adjustments for $82.4 million of non-cash items included in net income and plus $7.8 million of cash generated from changes in our operating assets and liabilities. Cash provided by operating activities increased in 2023 compared to 2022 primarily due to the increase in net income adjusted for non-cash items as well as strong cash collections from customers.  

For 2022, the $176.1 million of cash provided by operating activities resulted from $86.3 million of net income, plus adjustments for $77.0 million of non-cash items included in net income and plus $12.8 million of cash generated from changes in our operating assets and liabilities. Cash provided by operating activities increased in 2022 compared to 2021 primarily due to the increase in net income adjusted for non-cash items as well as strong cash collections from customers.

Additions to property and equipment were $6.1 million, $4.8 million and $3.8 million in 2023, 2022 and 2021, respectively. Additions to property and equipment increased in 2023 compared to 2022 due to the timing of investments in computing equipment and software to support our network and continue to enhance our security infrastructure. Additions to property and equipment increased in 2022 compared to 2021 primarily due to the timing of investments in computing equipment and software to support our network and continue to enhance our security infrastructure.

Acquisition of subsidiaries, net of cash acquired were $115.6 million, $90.3 million and $48.4 million in 2023, 2022 and 2021, respectively. Acquisitions in 2023 related to NetCHB, Foxtrot, XPS and Supply Vision. Acquisitions in 2022 are related to QuestaWeb, Portrix and GreenMile.

Proceeds from borrowings on credit facility were nil, nil and $10.2 million in 2023, 2022 and 2021, respectively. In 2021 the borrowings on our credit facility partially financed the acquisition of Peoplevox.

Credit facility and other debt repayments were nil, $1.1 million and $10.8 million in 2023, 2022 and 2021, respectively.

Payment of debt issuance costs were $1.1 million, $0.1 million and nil in 2023, 2022 and 2021, respectively, and relate to costs paid in amending the terms of our credit facility agreement.

Issuance of common shares, net of issuance costs were $1.7 million, $2.7 million and $6.2 million in 2023, 2022 and 2021, respectively, and were primarily a result of the exercise of employee stock options.

20

Payment of contingent consideration recorded in financing activities was $5.2 million, nil and nil in 2023, 2022 and 2021, respectively. Total contingent consideration paid in 2023 was $10.8 million of which $5.2 million related to the portion of the earn-out arrangements accrued for at the time of acquisition and recorded in financing activities with the remaining $5.6 million paid and recorded in cash from operating activities. In 2023, the contingent consideration paid related to the acquisitions of Kontainers and ShipTrack.

COMMITMENTS, CONTINGENCIES AND GUARANTEES

Commitments

To facilitate a better understanding of our commitments, the following information is provided (in millions of dollars) in respect of our operating obligations as of January 31, 2023:

    

Less than 1 year

    

1-3 years

    

4-5 years

    

More than 5 years

    

Total

Operating lease obligations

 

3.6

 

3.5

 

0.4

 

0.1

 

7.6

Lease Obligations

We are committed under non-cancelable operating leases for buildings, vehicles and computer equipment with terms expiring at various dates through 2029. The undiscounted future minimum amounts payable under these lease agreements are presented in the table above.

Other Obligations

Deferred Share Unit (“DSU”) and Cash-settled Restricted Share Unit (“CRSU”) Plans

As discussed in Note 2 to the audited consolidated financial statements for 2023 included in this Annual Report, we maintain DSU and CRSU plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate amount for the unvested DSUs and CRSUs of nil and $0.7 million, respectively, at January 31, 2023. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2023, we had equity derivatives for 281,768 Descartes common shares and a DSU liability for 283,338 Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.

Contingencies

We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate liability is not currently expected to have a material effect on our results of operations or financial position.

Product Warranties

In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.

Business combination agreements

In respect of our acquisitions of GreenMile, NetCHB, XPS and Supply Vision, up to $148.0 million in cash may become payable if certain revenue performance targets are met in the two years following the

21

acquisition. A balance of $30.9 million is accrued related to the fair value of this contingent consideration as at January 31, 2023.

Guarantees

In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, “Guarantees”. The following lists our significant guarantees:

Intellectual property indemnification obligations

We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.

Other indemnification agreements

In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.

In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.

OUTSTANDING SHARE DATA

We have an unlimited number of common shares authorized for issuance. As of March 1, 2023, we had 84,822,774 common shares issued and outstanding.

As of March 1, 2023, there were 1,590,759 options issued and outstanding, and 2,703,675 options remaining available for grant under all stock option plans.

As of March 1, 2023, there were 915,233 performance share units (“PSUs”) and 474,631 restricted share units (“RSUs”) issued and outstanding, with a potential of up to a further 260,766 PSUs being earned if a maximum 2.0 performance factor is achieved in respect of the outstanding PSU awards. Also, as of March 1, 2023, there were 616,128 units remaining available for grant under all performance and restricted share unit plans.

22

Our board of directors has adopted a shareholder rights plan (the “Rights Plan”) to ensure the fair treatment of shareholders in connection with any take-over offer, and to provide our board of directors and shareholders with additional time to fully consider any unsolicited take-over bid. We did not adopt the Rights Plan in response to any specific proposal to acquire control of the Company. The Rights Plan was approved by the TSX and was originally approved by our shareholders on May 18, 2005 and took effect as of November 29, 2004. An amended and restated Rights Plan was ratified by shareholders at our annual shareholders’ meeting held on May 28, 2020. The Rights Plan requires re-approval by the shareholders every three years. We understand that the Rights Plan is similar to plans adopted by other Canadian companies and approved by their shareholders.

APPLICATION OF CRITICAL ACCOUNTING POLICIES AND ESTIMATES

Our consolidated financial statements and accompanying notes are prepared in accordance with GAAP. Preparing financial statements requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenues and expenses. These estimates and assumptions are affected by management’s application of accounting policies. Estimates are deemed critical when a different estimate could have reasonably been used or where changes in the estimates are reasonably likely to occur from period to period and would materially impact our financial condition or results of operations. Our accounting policies are discussed in Note 2 to the audited consolidated financial statements for 2023 included in this Annual Report.

Our management has discussed the development, selection and application of our critical accounting policies with the audit committee of the board of directors.

The following discusses the critical accounting estimates and assumptions that management has made under these policies and how they affect the amounts reported in the fiscal 2023 consolidated financial statements:

Revenue recognition

Revenue is recognized upon transfer of control of promised goods or services to customers in an amount that reflects the consideration we expect to receive in exchange for those goods or services. We enter into contracts that can include the delivery of various combinations of goods and/or services, which are generally capable of being distinct within the context of the contract and accounted for as separate performance obligations. A product or service is distinct if the customer can benefit from it on its own or together with other readily available resources and the promise to transfer the good or service is separately identifiable from other promises in the contractual arrangement with the customer. Non-distinct goods and services are combined with other goods or services until they are distinct as a bundle and therefore form a single performance obligation. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the standalone selling price (“SSP). SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract. Revenue is recognized net of any taxes collected from customers, which are subsequently remitted to governmental authorities.

Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.

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

23

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 not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.

Impairment of long-lived assets

We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset groups is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. Our impairment analysis contains estimates due to the inherent uncertainty relating to forecasting long-term estimated cash flows and determining the ultimate useful lives of asset or asset groups. Actual results will differ, which could materially impact our impairment assessment.

Goodwill

We test for impairment of goodwill at least annually on October 31st of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our carrying amount. Our operations are analyzed by management and our chief operating decision maker as being part of a single industry segment providing logistics technology solutions. Accordingly, our goodwill impairment assessment is based on the allocation of goodwill to a single reporting unit.

Application of the goodwill impairment test requires judgment, including the identification of reporting units, assigning assets and liabilities to reporting units, assigning goodwill to reporting units, assessing qualitative factors and determining the fair value of each reporting unit. Judgments are required to estimate the fair value of reporting units and include estimating future cash flows, determining appropriate discount rates and other assumptions. Changes in these estimates and assumptions could materially affect the determination of fair value and/or goodwill impairment for each reporting unit.

Stock-based compensation plans

Stock Options

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.  

Employee stock options generally vest over a five-year period starting from the grant date and expire seven years from the grant date. Non-employee directors’ and officers’ stock options generally have quarterly vesting over a three to five-year period.

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.

24

Performance & Restricted Share Units

PSUs are measured at fair value estimated using a Monte Carlo Simulation approach and will be expensed to stock-based compensation expense over the vesting period. The ultimate number of PSUs that vest is based on the total shareholder return (“TSR”) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. Expected volatility is based on historical volatility of our common stock and other factors. The risk-free interest rates are based on the Government of Canada average bond yields for a period consistent with the expected life of the PSUs at the time of the grant.

RSUs vest annually over a three-year period starting from the grant date and expire ten years from the grant date. We issue new shares from treasury upon the redemption of an RSU. RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.

Income Taxes

We have provided for income taxes based on information that is currently available to us. Tax filings are subject to audits, which could materially change the amount of deferred income tax assets and liabilities. We record deferred tax assets on our consolidated balance sheet for tax benefits that we currently expect to realize in future periods. Over recent years, we have determined that there was sufficient positive evidence such that it was more likely than not that we would utilize all or a portion of deferred tax assets in certain jurisdictions, to offset taxable income in future periods. This positive evidence included that we have earned cumulative income, after permanent differences, in each of these jurisdictions in at least the current and two preceding tax years. As such, over recent years, we have reduced our valuation allowances by amounts which represent the amount of tax loss carry forwards that we project will be used to offset taxable income in these jurisdictions over the foreseeable future. Any further change to increase or decrease the valuation allowance for the deferred tax assets would result in an income tax expense or income tax recovery, respectively, on the consolidated statements of operations.

Business Combinations

In connection with business acquisitions that we have completed, we identify and estimate the fair value of net assets acquired, including certain identifiable intangible assets (other than goodwill) and liabilities assumed in the acquisitions. Any excess of the purchase price over the estimated fair value of the net assets acquired is assigned to goodwill. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Our initial allocation of purchase price is generally preliminary in nature and may not be final for up to one year from the date of acquisition. The determination of the acquisition date fair value of the intangible assets acquired required us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates. Changes to these estimates and assumptions may result in material differences depending on the size of the acquisition completed.

Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.

25

CHANGE IN / INITIAL ADOPTION OF ACCOUNTING POLICIES

Recently issued accounting pronouncements

In October 2021, the FASB issued Accounting Standards Update 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers” (“ASU 2021-08”). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.

CONTROLS AND PROCEDURES

Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management evaluated our disclosure controls and procedures (as defined in National Instrument 52-109 Certification of Disclosure in Issuers’ Annual and Interim Filings) as of January 31, 2023. Based upon that evaluation, our Chief Executive Officer and Chief Financial Officer concluded that our disclosure controls and procedures were effective.

Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management assessed the effectiveness of our internal control over financial reporting (as defined in National Instrument 52-109 Certification of Disclosure in Issuers’ Annual and Interim Filings) as of January 31, 2023, based on criteria established in “Internal Control – Integrated Framework” (2013), issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on the assessment, our Chief Executive Officer and Chief Financial Officer concluded that, as of January 31, 2023, our internal control over financial reporting was effective.

During the period beginning on November 1, 2022 and ended on January 31, 2023, no changes were made to the Company’s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Company’s internal control over financial reporting.

TRENDS / BUSINESS OUTLOOK

This section discusses our outlook for fiscal 2024 and in general as of the date of this MD&A and contains forward-looking statements.

The impact of the Ukraine Conflict on our customers and suppliers, on the global economy in general and on our business specifically is uncertain at this time. While we have limited direct business dealings in either Russia or Ukraine, it’s probable that the Ukraine Conflict, the political and economic measures taken by other countries in response to the Ukraine Conflict and the potential retaliatory actions that Russia or other countries might take in response to these political and economic measures could have a material impact on the global economy, global trade, global fuel prices and/or the individual economies of countries that may be dependent on Russia for oil and gas supplies and in which we may have significant business dealings. Each of these consequences could impact the level of usage and/or demand for our products and services and our resulting revenues. In addition, it has been speculated that retaliatory actions by Russia or other

26

countries to economic sanctions could include widespread cyber-attacks. Any such attacks, if successful, could adversely impact our business or the businesses of our customers and suppliers.

On January 1, 2021, the UK left the European Union and agreed to terms on a trade agreement that set out the tariffs and guidelines on imports and exports between the two regions. Despite the trade agreement, both parties agreed that import and export filings would now need to be made on shipments between the UK and the European Union with special trading rules for shipments to and from Northern Ireland. In addition, the UK implemented a system for electronic filings on imports and exports. As a result, we have been actively engaging with customers and service providers with solutions that assist them with these electronic filing requirements and as a result have seen a positive impact to our revenues starting in fiscal 2022. In May 2022, following political elections in Northern Ireland, some uncertainty was introduced as to whether changes will be introduced to the existing filing regime. On February 27, 2023, the Windsor Framework was announced which, if ratified by the UK Parliament, will replace the Northern Ireland Protocol as the constitutional framework governing the movement of goods to and from Northern Ireland. Should changes be made to regulations relating to the movement of goods between the UK and the European Union, or the special trading rules for shipments to and from Northern Ireland, such that the filing requirements related to imports and exports are reduced, this could have an impact on the revenues we have been generating in this area of our business.

More generally, our business may be impacted from time to time by the cyclical and seasonal nature of particular modes of transportation and the freight market, as well as the cyclical and seasonal nature of the industries that such markets serve. Factors which may create cyclical fluctuations in such modes of transportation or the freight market in general include legal and regulatory requirements (for example Brexit), timing of contract renewals between our customers and their own customers, seasonal-based tariffs, vacation periods applicable to particular shipping or receiving nations, weather-related or global health events that impact shipping in particular geographies and amendments to international trade agreements. In particular, the uncertainties arising from the Pandemic and steps taken by governments, businesses, other organizations and private citizens to respond to the Pandemic could continue to adversely impact global shipment volumes in all modes of transportation in fiscal 2024. Since some of our revenues from particular products and services are tied to the volume of shipments being processed, adverse fluctuations in the volume of global shipments, or shipments in any particular mode of transportation, may adversely affect our revenues. Significant declines in shipment volumes could likely have a material adverse effect on our business.

Industry consolidation, rapid technological change, growth of ecommerce and frequent new product introductions and enhancements continue to characterize the software and services industries – particularly for logistics management technology companies. Organizations are increasingly requiring greater levels of functionality and more sophisticated product offerings from their software and services providers.

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 towards electronic processes powered by the exchange of electronic information between logistics and supply chain participants.

Accordingly, we expect that our future success will be dependent upon our ability to enhance current products or develop and introduce new products offering enhanced performance and new functionality at competitive prices. In particular, we believe customers are looking for end-to-end solutions that combine a multi-modal, multi-process network with business document exchange and wireless mobile resource management applications with end-to-end global trade compliance, trade content and collaborative supply chain execution applications. These applications include freight bookings, contract and rate management,

27

classification of goods for tariff and duty purposes, sanctioned party screening, customs filings and electronic shipment manifest processes, transportation management, routing and scheduling, purchase order to dock door processes, and inventory visibility.

We believe there is a continued acceptance of subscription pricing and SaaS business models in the markets we serve that provide lower up-front cost and easier-to-maintain alternatives than may be available through traditional perpetual license pricing models. In 2023, our services revenues comprised 90% of our total revenues, with the balance being license, professional services and other revenues. We expect that our focus in fiscal 2024 will remain on generating services revenues, primarily by promoting the use of our GLN (including customs compliance services) and the migration of customers using our legacy license-based products to our services-based architecture. We anticipate maintaining the flexibility to license our products to those customers who prefer to buy the products in that fashion and the composition of our revenues in any one quarter will be impacted by the buying preferences of our customers.

We have significant contracts with our license customers for ongoing support and maintenance, as well as significant service contracts which provide us with recurring services revenues. After their initial term, our service contracts are generally renewable at a customer’s option, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services. In a typical year, based on our historic experience, we anticipate that over a one-year period we may lose approximately 4% to 6% of our aggregate annualized recurring revenues from the previous year in the ordinary course, excluding consideration of new customers.

We internally measure and manage our “baseline calibration”, which we define as the difference between our “baseline revenues” and “baseline operating expenses”. Each of these measures constitutes a “supplementary financial measure” under Canadian Securities Administrators’ National Instrument 52-112 and does not have a directly comparable financial measure disclosed in our financial statements. We define our “baseline revenues” as our visible, recurring and contracted revenues. Baseline revenues are not a projection of anticipated total revenues for a period as they exclude any anticipated or expected new sales for a period beyond the date that the baseline revenues are measured. We define our “baseline operating expenses” as our total expenses less interest, investment and other income, taxes, depreciation and amortization, stock-based compensation (for which we include related costs and taxes), acquisition-related costs and restructuring charges. Baseline operating expenses are not a projection of anticipated total expenses for a period as they exclude any expenses associated with anticipated or expected new sales for a period beyond the date that the baseline expenses are measured. Our baseline calibration is not a projection of net income for a period or adjusted earnings before interest, taxes, depreciation and amortization for a period as it excludes anticipated or expected new sales for a period beyond the date that the baseline calibration is measured, excludes any costs of goods sold or other expenses associated with such new sales, and excludes the expenses identified as excluded in the definition of “baseline operating expenses,” above. We calculate and disclose “baseline revenues,” “baseline operating expenses” and “baseline calibration” because management uses these metrics in determining its planned levels of expenditures for a period and we believe this information is useful to our investors. These metrics are estimated operating metrics and not projections, nor actual financial results, and are not indicative of current or future performance. As noted above, these metrics do not have any directly comparable financial measures disclosed in our financial statements. At February 14, 2023, using foreign exchange rates of $0.75 to CAD $1.00, $1.07 to EUR 1.00 and $1.21 to £1.00, we estimated that our baseline revenues for the first quarter of 2024 are approximately $117.0 million and our baseline operating expenses are approximately $74.0 million. We consider this to be our baseline calibration of approximately $43.0 million for the first quarter of 2024, or approximately 37% of our baseline revenues as at February 14, 2023.

We estimate that aggregate amortization expense for existing intangible assets will be $49.4 million for 2024, $46.5 million for 2025, $42.3 million for 2026, $27.7 million for 2027, $20.6 million for 2028 and $43.3 million thereafter. Expected future amortization expense is based on the level of existing intangible assets at January 31, 2023, is subject to fluctuations in foreign exchange rates and assumes no future adjustments or impairment of existing intangible assets.

28

We anticipate that stock-based compensation expense for fiscal 2024 for grants outstanding as at January 31, 2023 will be approximately $10.4 million, subject to any necessary adjustments resulting from actual stock-based compensation forfeitures and fluctuations in foreign exchange rates.

We performed our annual goodwill impairment tests in accordance with ASC Topic 350, “Intangibles – Goodwill and Other” (“ASC Topic 350”) as at October 31, 2022 and determined that there was no evidence of impairment. We are currently scheduled to perform our next annual impairment test during the third quarter of fiscal 2024. We will continue to perform quarterly analyses of whether any event has occurred that would more likely than not reduce our enterprise value below our carrying amounts and, if so, we will perform a goodwill impairment test between the annual dates. The likelihood of any future impairment increases if our public market capitalization is adversely impacted by global economic, capital market or other conditions for a sustained period of time. Any future impairment adjustment will be recognized as an expense in the period that such adjustment is identified.

In fiscal 2023, capital expenditures were $6.1 million or 1% of revenues, as we continue to invest in computer equipment and software to support our network and build out our infrastructure. We anticipate that we will incur approximately $5.0 to $7.0 million in capital expenditures in fiscal 2024 primarily related to investments in our network and security infrastructure.

We conduct business in a variety of foreign currencies and, as a result, our foreign operations are subject to foreign exchange fluctuations. Our businesses operate in their local currency environment and use their local currency as their functional currency. Assets, including cash, and liabilities of foreign operations are translated into US dollars at the exchange rate in effect at the balance sheet date. Revenues and expenses of foreign operations are translated using daily exchange rates. Translation adjustments resulting from this process are accumulated in other comprehensive income (loss) as a separate component of shareholders’ equity.

Transactions incurred in currencies other than the functional currency are converted to the functional currency at the transaction date. All foreign currency transaction gains and losses are included in net income. We currently have no specific hedging program in place to address fluctuations in international currency exchange rates. In addition, we can make no accurate prediction of what will happen with international currency exchange rates going forward.

There can be varied impacts on our results of operations as a consequence of movements in international currency exchange rates. In the fourth quarter of fiscal 2023, approximately 69% of our revenues were in US dollars, 11% in euro, 7% in Canadian dollars, 7% in British pound sterling, and the balance in mixed currencies. For that same period, approximately 46% of our operating expenses were in US dollars, 15% in euro, 25% in Canadian dollars, 4% in British pound sterling, and the balance in mixed currencies. With this distribution, we generally expect that our revenues will be negatively impacted when the US dollar strengthens compared to these foreign currencies.

However, the impact from movements in foreign exchange rates on our other aspects of our results of operations are more varied. Generally, if the US dollar strengthens against the Canadian dollar, the decrease in our expenses will be greater than the decrease in our revenue, resulting in an improvement in our results of operations. However, if the US dollar were to strengthen against the British pound or euro, the decrease in expenses would not be as large as the decrease in revenue, resulting in a weakening of our results of operations. We will continue to monitor the impact of foreign exchange on our operating results as changes in foreign exchange rates may have a significant negative impact on our revenue and results of operations.

Our tax expense for a period is difficult to predict as it depends on many factors, including the actual jurisdictions in which income is earned, the tax rates in those jurisdictions, the amount of deferred tax assets relating to the jurisdictions and the valuation allowances relating to those tax assets. We can provide no assurance as to the timing or amounts of any income tax expense or recovery, nor can we provide any assurance that our current valuation allowance for deferred tax assets will not need to be adjusted further.

29

We experienced an effective tax rate of approximately 24% in fiscal 2023, which is slightly lower than our expected range of 25% to 30%. For fiscal 2024, we believe that the tax rate may also be lower than our typical range if additional uncertain tax positions are released during this fiscal year. We currently anticipate an effective tax rate of between 22% to 27% for fiscal 2024, before returning to our typical range in subsequent periods.

We intend to continue to actively explore business combinations to add complementary services, products and customers to our existing businesses. We also intend to continue to focus our acquisition activities on companies that are targeting the same customers as us and processing similar data and, to that end, we listen to our customers’ suggestions as they relate to acquisition opportunities. Depending on the size and scope of any business combination, or series of business combinations, we may choose or need to use our existing credit facility or need to raise additional debt or equity capital. However, there can be no assurance that we will be able to undertake such a financing transaction. If we use debt in connection with acquisition activity, we will incur additional interest expense from the date of the draw under such facility. Considering the balance of the credit facility as at January 31, 2023, and subject to any further draws or repayments on the credit facility, we anticipate that interest expense will be approximately $1.1 million in fiscal 2024, which includes debt standby charges as well as the amortization of deferred financing charges.

Certain future commitments are set out above in the section of this MD&A called “Commitments, Contingencies and Guarantees”. We believe that we have sufficient liquidity to fund our current operating and working capital requirements, including the payment of these commitments.

CERTAIN FACTORS THAT MAY AFFECT FUTURE RESULTS

Any investment in us will be subject to risks inherent to our business. Before making an investment decision, you should carefully consider the risks described below together with all other information included in this report. The risks and uncertainties described below are not the only ones facing us. Additional risks and uncertainties that we are not aware of or have not focused on, or that we currently deem immaterial, may also impair our business operations. This report is qualified in its entirety by these risk factors.

If any of the risks actually occur, they could materially adversely affect our business, financial condition, liquidity or results of operations. In that case, the trading price of our securities could decline and you may lose all or part of your investment.

System or network failures, information security breaches or other cyber-security threats in connection with our services and products could reduce our sales, impair our reputation, increase costs or result in liability claims, and seriously harm our business.

We rely on information technology networks and systems to process, transmit and store electronic information. Any disruption to our services and products, our own information systems or communications networks or those of third-party providers on which we rely as part of our own product offerings could result in the inability of our customers to receive our products for an indeterminate period of time. Our ability to deliver our products and services depends on the development and maintenance of internet infrastructure by third parties. This includes maintenance of reliable networks with the necessary security, speed, data capacity and bandwidth. While our services are designed to operate without interruption, we have experienced, and may in the future experience, interruptions and delays in services and availability from time to time. In the event of a catastrophic event with respect to one or more of our systems, we may experience an extended period of system unavailability, which could negatively impact our relationship with customers. Our services and products may not function properly for reasons which may include, but are not limited to, the following:

System or network failure;

30

Software errors, failures and crashes;
Interruption in the supply of power;
Virus proliferation or malware;
Communications failures;
Information or infrastructure security breaches;
Insufficient investment in infrastructure;
Earthquakes, fires, floods, natural disasters, or other force majeure events outside our control; and
Acts of war, sabotage, cyber-attacks, denial-of-service attacks and/or terrorism.

In addition, any disruption to the availability of customer information, or any compromise to the integrity or confidentiality of customer information in our systems or networks, or the systems or networks of third parties on which we rely, could result in our customers being unable to effectively use our products or services or being forced to take mitigating actions to protect their information. Back-up and redundant systems may be insufficient or may fail and result in a disruption of availability of our products or services to our customers or the integrity or availability of our customers’ information.

Some jurisdictions have enacted laws requiring companies to notify individuals of data security breaches involving certain types of personal data and in some cases our agreements with certain customers require us to notify them in the event of a security incident. Such mandatory disclosures could lead to negative publicity and may cause our current and prospective customers to lose confidence in the effectiveness of our data security measures. Moreover, if a high-profile security breach occurs with respect to another SaaS provider, customers may lose trust in the security of the SaaS business model generally, which could adversely impact our ability to retain existing customers or attract new ones.

Any actual or perceived threat of disruption to our services or any compromise of customer information could impair our reputation and cause us to lose customers or revenue, or face litigation, necessitate customer service or repair work that would involve substantial costs and distract management from operating our business. Despite the implementation of advanced threat protection, information and network security measures and disaster recovery plans, our systems and those of third parties on which we rely may be vulnerable. If we are unable (or are perceived as being unable) to prevent, or promptly identify and remedy, such outages and breaches, our operations may be disrupted, our business reputation could be adversely affected, and there could be a negative impact on our financial condition and results of operations.

General economic conditions may affect our results of operations and financial condition.

Demand for our products depends in large part upon the level of capital and operating expenditures by many of our customers. Decreased capital and operational spending could have a material adverse effect on the demand for our products and our business, results of operations, cash flow and overall financial condition. Decreased spending from customers could be caused by pessimism relating to particular economic indicators, such as increases in inflation and interest rates. Decreased spending could also be caused by the impact of geopolitical events, such as the Ukraine Conflict, or catastrophic events, such as the Pandemic. These types of economic indicators and events may also cause disruptions in the financial markets. Disruptions in the financial markets may adversely impact the availability of credit already arranged and the availability and cost of credit in the future, which could result in the delay or cancellation of projects or capital programs on which our business depends. In addition, disruptions in the financial markets may also have an adverse impact on regional economies or the world economy, which could negatively impact the capital and operating expenditures of our customers. Decreased capital and operational spending or disruptions in the financial markets could be caused by inflationary pressures, acts of war, or the outbreak of a contagious illness, such as the Pandemic (and any intensification thereof). Any of these conditions may reduce the willingness or ability of our customers and prospective customers to commit funds to purchase our products and services, or their ability to pay for our products and services after purchase.

31

Catastrophic events, armed conflict, wars, natural disasters, severe weather and disease and similar events could disrupt the demand of our customers for our products and services and our ability to operate our business.

Our business may be negatively impacted to varying degrees by a number of events which are beyond our control, including acts of war, armed conflicts, energy blackouts, pandemics (or other public health crises), terrorist attacks, earthquakes, hurricanes, tornados, fires, floods, ice storms or other natural or manmade catastrophes. We cannot be sure that our emergency preparedness or the preparedness of our customers, including business continuity planning, to mitigate risks will be effective since such events can evolve very rapidly, and their impacts can be difficult to predict. As such, there can be no assurance that in the event of such a catastrophe that the operations and ability to carry on business of us or our customers will not be disrupted. The occurrence of such events may not release us from performing our obligations to third parties. A catastrophic event, including an outbreak of infectious disease, a pandemic or a similar health threat, such as the Pandemic, or fear of any of the foregoing, could adversely impact us, our customers and our investments. In addition, liquidity and volatility, credit availability and market and financial conditions, generally could change at any time as a result of any of these events. Any of these events in isolation or in combination, could have a material negative impact on our performance, financial condition, results of operations and cash flows.

The Pandemic has had a significant impact on the global economy and could adversely affect our business, results of operations and financial condition.

The Pandemic and the efforts to respond to it have negatively impacted the global economy. The Pandemic has, at times, disrupted some manufacturing operations, global supply chains and created significant volatility and disruption of financial markets. These disruptions may continue in the future resulting in reduced commercial and consumer confidence and spending, increased unemployment, closure or restricted operating conditions for businesses, volatility in the global economy, instability in the credit and financial markets, labor shortages, and disruption in supply chains. In addition, potential price inflation caused by an excess of liquidity in countries where we conduct business may continue to increase the costs we incur to provide our solutions and may reduce profit margins.

We expect the significance of the Pandemic, including the extent of its effect on our financial condition and results of operations, to depend on, among other things, its duration, the success of efforts to contain it, its impact on the global economy and on our customers, and the impact of ongoing actions and future actions taken by government authorities and by us in response. While we are not able at this time to estimate the impact of the Pandemic, an extended period of global supply chain and economic disruption could materially and adversely affect our business, results of operations, access to sources of liquidity and financial condition. In addition, an extended global recession caused by the Pandemic could have a further adverse impact on our financial condition and operations.

We may have difficulties identifying, successfully integrating or maintaining or growing our acquired businesses.

Businesses that we acquire may sell products or services that we have limited experience operating or managing. We may experience unanticipated challenges or difficulties identifying suitable acquisition candidates, integrating their businesses into our company, maintaining these businesses at their current levels or growing these businesses. Factors that may impair our ability to identify, successfully integrate, maintain or grow acquired businesses may include, but are not limited to:

Challenges identifying suitable businesses to buy and negotiating the acquisition of those businesses on acceptable terms;
Challenges completing the acquisitions within our expected time frames and budgets;
Challenges in integrating acquired businesses with our business;
Loss of customers of the acquired business;
Loss of key personnel from the acquired business, such as former executive officers or key technical personnel;
Non-compatible business cultures;

32

For regulatory compliance businesses, changes in government regulations impacting electronic regulatory filings or import/export compliance, including changes in which government agencies are responsible for gathering import and export information;
Difficulties in gaining necessary approvals in international markets to expand acquired businesses as contemplated;
Our inability to obtain or maintain necessary security clearances to provide international shipment management services;
Our failure to make appropriate capital investments in infrastructure to facilitate growth; and
Other risk factors identified in this report.

We may fail to properly respond to any of these risks, which may have a material adverse effect on our business results.

Investments in acquisitions and other business initiatives involve a number of risks that could harm our business.

We have in the past acquired, and in the future, expect to seek to acquire, additional products, services, customers, technologies and businesses that we believe are complementary to ours. We are unable to predict whether or when we will be able to identify any appropriate products, technologies or businesses for acquisition, or the likelihood that any potential acquisition will be available on terms acceptable to us or will be completed. We also, from time to time, take on investments in other business initiatives, such as the implementation of new systems.

Acquisitions and other business initiatives involve a number of risks, including: substantial investment of funds, diversion of management’s attention from current operations; additional demands on resources, systems, procedures and controls; and disruption of our ongoing business. Acquisitions specifically involve risks, including: difficulties in integrating and retaining all or part of the acquired business, its customers and its personnel; assumption of disclosed and undisclosed liabilities; dealing with unfamiliar laws, customs and practices in foreign jurisdictions; and the effectiveness of the acquired company’s internal controls and procedures. In addition, we may not identify all risks or fully assess risks identified in connection with an investment. As well, by investing in such initiatives, we may deplete our cash resources or dilute our shareholder base by issuing additional shares. Furthermore, for acquisitions, there is a risk that our valuation assumptions, customer retention expectations and our models for an acquired product or business may be erroneous or inappropriate due to foreseen or unforeseen circumstances and thereby cause us to overvalue an acquisition target. There is also a risk that the contemplated benefits of an acquisition or other investment may not materialize as planned or may not materialize within the time period or to the extent anticipated. The individual or combined effect of these risks could have a material adverse effect on our business.

If we fail to attract and retain key personnel, it would adversely affect our ability to develop and effectively manage our business and inflationary pressures in compensation could impact the cost structure of our business.

Our performance is substantially dependent on the performance of our highly qualified management, technical expertise, and sales and marketing personnel, which we regard as key individuals to our business. Significant competition exists for management and skilled personnel and as a result of that competition we are seeing wage and labor cost escalation in various areas and levels within our workforce. Our success is highly dependent on our ability to identify, hire, train, motivate, promote, and retain key individuals. In responding to inflationary wage pressure to retain or attract key individuals, we could see increases in our operating costs that outpace our ability to grow revenues. If we fail to cross train key employees, particularly those with specialized knowledge it could impair our ability to provide consistent and uninterrupted service to our customers. If we are not able to attract, retain or establish an effective succession planning program for key individuals it could have a material adverse effect on our business, results of operations, financial condition and the price of our common shares.

We have in the past, and may in the future, make changes to our executive management team or board of directors. There can be no assurance that any such changes and the resulting transition will not have a

33

material adverse effect on our business, results of operations, financial condition and the price of our common shares.

Changes in government filing or screening requirements for global trade may adversely impact our business.

Our regulatory compliance services help our customers comply with government filing and screening requirements relating to global trade. The services that we offer may be impacted, from time to time, by changes in these requirements, including potential future changes as a consequence of Brexit, the United States-Mexico-Canada Agreement or similar cross-border trade agreements. Beginning in our fiscal 2021 year, we saw increased customs filing transactions and resulting revenues from our customs filing solutions in the UK as a result of Brexit and the changes in way goods moved between the EU and the UK (including goods moving to and from Northern Ireland) following Brexit. If the regulations relating to these requirements were to change, it could adversely impact that area of our business. In addition, and more generally, changes in requirements that impact electronic regulatory filings or import/export compliance, including changes adding or reducing filing requirements, changes in enforcement practices or changes in the government agency responsible for such requirements could adversely impact our business, results of operations and financial condition.

Disruptions in the movement of freight could negatively affect our revenues.

Our business is highly dependent on the movement of freight from one point to another since we generate transaction revenues as freight is moved by, to or from our customers. If there are disruptions in the movement of freight, proper reporting or the overall volume of international shipments, whether as a result of labor disputes, weather or natural disasters, acts of war, terrorist events, political instability, changes in cross border trade agreements, contagious illness outbreaks (such as the Pandemic), or otherwise, then the traffic volume on our Global Logistics Network will be impacted and our revenues will be adversely affected. As these types of freight disruptions are generally unpredictable, there can be no assurance that our business, results of operations and financial condition will not be adversely affected by such events.

Our existing customers might cancel contracts with us, fail to renew contracts on their renewal dates, and/or fail to purchase additional services and products, and we may be unable to attract new customers.

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’s option and/or subject to cancellation rights, and there are generally no mandatory payment obligations or obligations to license additional software or subscribe for additional services.

If our customers fail to renew their service contracts, fail to purchase additional services or products, or we are unable to attract new customers, then our revenues could decrease and our operating results could be adversely affected. Factors influencing such contract terminations could include changes in the financial circumstances of our customers, dissatisfaction with our products or services, our retirement or lack of support for our legacy products and services, our customers selecting or building alternate technologies to replace us, the cost of our products and services as compared to the cost of products and services offered by our competitors, acceptance of future price increases, our ability to attract, hire and maintain qualified personnel to meet customer needs, consolidating activities in the market, and changes in our customers’ business or in regulation impacting our customers’ business that may no longer necessitate the use of our products or services, general economic or market conditions, or other reasons. Further, our customers could delay or terminate implementations or use of our services and products or be reluctant to migrate to new products. Such customers will not generate the revenues we may have anticipated within the timelines anticipated, if at all, and may be less likely to invest in additional services or products from us in the future. We may not be able to adjust our expense levels quickly enough to account for any such revenue losses. In addition, loss of one or more of our key customers could adversely impact our competitive position in the marketplace and hurt our credibility and ability to attract new customers.

34

Our success depends on our ability to continue to innovate and to create new solutions and enhancements to our existing products

We may not be able to develop and introduce new solutions and enhancements to our existing products that respond to new technologies or shipment regulations on a timely basis. If we are unable to develop and sell new products and new features for our existing products that keep pace with rapid technological and regulatory change as well as developments in the transportation logistics industry, our business, results of operations and financial condition could be adversely affected. We intend to continue to invest significant resources in research and development to enhance our existing products and services and introduce new high-quality products that customers will want. If we are unable to predict or quickly react to user preferences or changes in the transportation logistics industry, or its regulatory requirements, or if we are unable to modify our products and services on a timely basis or to effectively bring new products to market, our sales may suffer.

In addition, we may experience difficulties with software or hardware development, design, integration with third-party software or hardware, or marketing that could delay or prevent our introduction, deployment or implementation of new solutions and enhancements. The introduction of new solutions by competitors, the emergence of new industry standards or the development of entirely new technologies to replace existing offerings could render our existing or future solutions obsolete.

We may not have sufficient resources to make the necessary investments in software development and our technical infrastructure, and we may experience difficulties that could delay or prevent the successful development, introduction or marketing of new products or enhancements. In addition, our products or enhancements may not meet increasingly complex customer requirements or achieve market acceptance at the rate we expect, or at all. Any failure by us to anticipate or respond adequately to technological advancements, customer requirements and changing industry standards, or any significant delays in the development, introduction or availability of new products or enhancements, could undermine our current market position and negatively impact our business, results of operations or financial condition.

We may not remain competitive. Increased competition could seriously harm our business.

The market for supply chain technology is highly competitive and subject to rapid technological change. We expect that competition will increase in the future. To maintain and improve our competitive position, we must continue to develop and introduce in a timely and cost-effective manner new products, product features and services to keep pace with our competitors. We currently face competition from a large number of specific market entrants, some of which are focused on specific industries, geographic regions or other components of markets we operate in.

Current and potential competitors include supply chain application software vendors, customers that undertake internal software development efforts, value-added networks and business document exchanges, enterprise resource planning software vendors, regulatory filing companies, trade data vendors and general business application software vendors. Many of our current and potential competitors may have one or more of the following relative advantages:

Established relationships with existing customers or prospects that we are targeting;
Superior product functionality and industry-specific expertise;
Broader range of products to offer and better product life cycle management;
Larger installed base of customers;
Greater financial, technical, marketing, sales, distribution and other resources;
Better performance;
Lower cost structure and more profitable operations;
Greater investment in infrastructure;
Greater worldwide presence;
Early adoption of, or adaptation to changes in, technology; or
Longer operating history; and/or greater name recognition.

35

Further, current and potential competitors have established, or may establish, cooperative relationships and business combinations among themselves or with third parties to enhance their products, which may result in increased competition. In addition, we expect to experience increasing price competition and competition surrounding other commercial terms as we compete for market share. In particular, larger competitors or competitors with a broader range of services and products may bundle their products, rendering our products more expensive and/or less functional. As a result of these and other factors, we may be unable to compete successfully with our existing or new competitors.

Emergence or increased adoption of alternative sources for trade data may adversely impact our business.

With recent acquisitions in the area of supplying trade data and content, an increasing portion of our business relates to the supply of trade data and content that is often used by our customers in other systems, such as enterprise resource planning systems. Emergence or increased adoption of alternative sources of this data and content could have an adverse impact on our customers’ needs to obtain this data and content from us and/or the need for certain of the third-party system vendors in this field to refer customers to us for this data and content, each of which could adversely impact upon the revenues and income we generate from these areas of our business.

If we need additional capital in the future and are unable to obtain it or can only obtain it on unfavorable terms, our operations may be adversely affected, and the market price for our securities could decline.

Historically, we have financed our operations primarily through cash flows from our operations, the sale of our equity securities and borrowings under our credit facility. In addition to our current cash and available debt facilities, we may need to raise additional debt or equity capital to repay existing debt, fund expansion of our operations, to enhance our services and products, or to acquire or invest in complementary products, services, businesses or technologies. However, there can be no assurance that we will be able to undertake incremental financing transactions. If we raise additional funds through further issuances of convertible debt or equity securities, our existing shareholders could suffer significant dilution and any new equity securities we issue could have rights, preferences and privileges superior to those attaching to our common shares. Our current credit facility contains, and any debt financing secured by us in the future could contain restrictive covenants relating to our capital-raising activities and other financial and operational matters, which may make it more difficult for us to obtain additional capital and to pursue business opportunities, including potential acquisitions. In addition, we may not be able to obtain additional financing on terms favorable to us, if at all. If adequate funds are not available on terms favorable or at all, our operations and growth strategy may be adversely affected and the market price for our common shares could decline.

Changes in the value of the U.S. dollar, as compared to the currencies of other countries where we transact business, could harm our operating results and financial condition.

Historically, the largest percentage of our revenues has been denominated in U.S. dollars. However, the majority of our international expenses, including the wages of our non-U.S. employees and certain key supply agreements, have been denominated in Canadian dollars, British pounds, euros and other foreign currencies. Therefore, changes in the value of the U.S. dollar as compared to the Canadian dollar, the British pound, the euro and other foreign currencies may materially affect our operating results. We generally have not implemented hedging programs to mitigate our exposure to currency fluctuations affecting international accounts receivable, cash balances and inter-company accounts. We also have not hedged our exposure to currency fluctuations affecting future international revenues and expenses and other commitments. Accordingly, currency exchange rate fluctuations have caused, and may continue to cause, variability in our foreign currency denominated revenue streams, expenses, and our cost to settle foreign currency denominated liabilities.

We may have exposure to greater than anticipated tax liabilities or expenses.

We are subject to income and non-income taxes in various jurisdictions, our tax structure is subject to review by both domestic and foreign taxation authorities and we currently have tax audits open in a number of jurisdictions in which we operate. On a quarterly basis, we assess the status of these audits and the

36

potential for adverse outcomes to determine whether a provision for income and other taxes is appropriate. The timing of the resolution of income tax audits is highly uncertain, and the amounts ultimately paid, if any, upon resolution of the issues raised by the taxing authorities may differ from any amounts that we accrue from time to time. The actual amount of any change could vary significantly depending on the ultimate timing and nature of any settlements. We cannot currently provide an estimate of the range of possible outcomes.

The determination of our worldwide provision for income taxes and other tax liabilities requires judgment. In the ordinary course of a global business, there are many transactions and calculations where the ultimate tax outcome is uncertain. Any audit of our tax filings could materially change the amount of current and deferred income tax assets and liabilities. We have recorded a valuation allowance against a portion of our net deferred tax assets. If we achieve a consistent level of profitability, the likelihood of further reducing our deferred tax valuation allowance for some portion of the losses incurred in prior periods in one of our jurisdictions will increase. We calculate our current and deferred tax provision based on estimates and assumptions that could differ from the actual results reflected in income tax returns filed during subsequent years. Adjustments based on filed returns are generally recorded in the period when the tax returns are filed and the global tax implications are known. Our estimate of the potential outcome for any uncertain tax issue is based on a number of assumptions. Any further changes to the valuation allowance for our deferred tax assets would also result in an income tax recovery or income tax expense, as applicable, on the consolidated statements of operations in the period in which the valuation allowance is changed.

Changes to earnings resulting from past acquisitions may adversely affect our operating results.

Under ASC Topic 805, “Business Combinations”, we allocate the total purchase price to an acquired company’s net tangible assets, intangible assets and in-process research and development based on their values as of the date of the acquisition (including certain assets and liabilities that are recorded at fair value) and record the excess of the purchase price over those values as goodwill. Management’s estimates of fair value are based upon assumptions believed to be reasonable but which are inherently uncertain. After we complete an acquisition, the following factors, among others, could result in material charges that would adversely affect our operating results and may adversely affect our cash flows:

Impairment of goodwill or intangible assets;
A reduction in the useful lives of intangible assets acquired;
Identification of assumed contingent liabilities after we finalize the purchase price allocation period;
Charges to our operating results to eliminate certain pre-merger activities that duplicate those of the acquired company or to reduce our cost structure; and
Charges to our operating results resulting from revised estimates to restructure an acquired company’s operations after we finalize the purchase price allocation period.

Routine charges to our operating results associated with acquisitions include amortization of intangible assets, acquisition-related costs and restructuring charges. Acquisition-related costs primarily include retention bonuses, advisory services, brokerage services and administrative costs with respect to completed and prospective acquisitions.

We expect to continue to incur additional costs associated with combining the operations of our acquired companies, which may be substantial. Additional costs may include costs of employee redeployment, relocation and retention, including salary increases or bonuses, accelerated stock-based compensation expenses and severance payments, reorganization or closure of facilities, taxes, and termination of contracts that provide redundant or conflicting services. These costs would be accounted for as expenses and would decrease our net income and earnings per share for the periods in which those adjustments are made.

As we continue to increase our international operations we increase our exposure to international business risks that could cause our operating results to suffer.

While our headquarters are in Canada, we currently have direct operations in the U.S., EMEA, Asia Pacific and South American regions. We anticipate that these international operations will continue to require

37

significant management attention and financial resources to localize our services and products for delivery in these markets, to develop compliance expertise relating to international regulatory agencies, and to develop direct and indirect sales and support channels in those markets. We face a number of risks associated with conducting our business internationally that could negatively impact our operating results. These risks include, but are not limited to:

The risk of continued or increased limitations of travel advisories or travel restrictions related to the outbreak of contagious illnesses, such as the Pandemic, could impact our ability to operate in certain markets and/or manage our operations in those markets;
Longer collection time from foreign clients, particularly in the EMEA region and the Asia Pacific region;
Difficulty in repatriating cash from certain foreign jurisdictions;
Language barriers, conflicting international business practices, and other difficulties related to the management and administration of a global business;
Increased management, travel, infrastructure and legal compliance costs associated with having international operations;
Difficulties and costs of staffing and managing geographically disparate direct and indirect operations;
Volatility or fluctuations in foreign currency and tariff rates;
Multiple, and possibly overlapping, tax structures;
Complying with complicated and widely differing global laws and regulations in areas such as employment, tax, privacy and data protection;
Trade restrictions;
Enhanced security procedures and requirements relating to certain jurisdictions;
The need to consider characteristics unique to technology systems used internationally;
Economic or political instability in some markets; and
Other risk factors set out herein.

From time to time, we may be subject to litigation or dispute resolution that could result in significant costs to us and damage to our reputation.

From time to time, we may be subject to litigation or dispute resolution relating to any number or type of claims, including claims for damages related to undetected errors or malfunctions of our services and products or their deployment, claims related to previously-completed acquisition transactions or claims relating to applicable securities laws. Litigation may seriously harm our business because of the costs of defending the lawsuit, diversion of employees’ time and attention and potential damage to our reputation.

Further, our services and products are complex and often implemented by our customers to interact with third-party technology or networks. Claims may be made against us for damages properly attributable to those third-party technologies or networks, regardless of our lack of responsibility for any failure resulting in a loss, even if our services and products perform in accordance with their functional specifications. We may also have disputes with key suppliers for damages incurred which, depending on resolution of the disputes, could impact the ongoing quality, price or availability of the services or products we procure from the supplier. Limitation of liability provisions in certain third-party contracts may not be enforceable under the laws of some jurisdictions. As a result, we could be required to pay substantial amounts of damages in settlement or upon the determination of any of these types of claims and incur damage to our reputation and products. The likelihood of such claims and the amount of damages we may be required to pay may increase as our customers increasingly use our services and products for critical business functions, or rely on our services and products as the systems of record to store data for use by other customer applications. Our insurance may not cover potential claims or may not be adequate to cover all costs incurred in defense of potential claims or to indemnify us for all liability that may be imposed. A claim brought against us that is uninsured or underinsured could result in unanticipated costs, thereby harming our operating results and leading analysts or potential investors to lower their expectations of our performance, which could reduce the trading price of our common shares.

38

Increases in fuel prices, driver shortages and other increased transportation costs may have an adverse effect on the businesses of our customers resulting in them spending less money with us.

Our customers are all involved, directly or indirectly, in the delivery of goods from one point to another, particularly transportation providers and freight forwarders. As the costs of these deliveries become more expensive, whether as a result of increases in fuel costs or otherwise, our customers may have fewer funds available to spend on our products and services. There can be no assurance that these companies will be able to allocate sufficient funds to use our products and services. In addition, rising fuel costs or driver shortages may cause global or geographic-specific reductions in the number of shipments being made, thereby impacting the number of transactions being processed by our Global Logistics Network and our corresponding network revenues.

We may not be able to compensate for downward pricing pressure on certain products and services by increased volumes of transactions or increased prices elsewhere in our business, ultimately resulting in lower revenues.

Some of our products and services are sold to industries where there is downward pricing pressure on the particular product or service due to competition, general industry conditions or other causes. If we cannot offset any such downward pricing pressure, then the particular customer may generate less revenue for our business or we may have less aggregate revenue. This could have an adverse impact on our operating results.

Our success and ability to compete depend upon our ability to secure and protect patents, trademarks and other proprietary rights.

We consider certain aspects of our internal operations, products, services and related documentation to be proprietary, and we primarily rely on a combination of patent, copyright, trademark and trade secret laws and other measures to protect our proprietary rights. Patent applications or issued patents, as well as trademark, copyright, and trade secret rights may not provide adequate protection or competitive advantage and may require significant resources to obtain and defend. We will also not be able to protect our intellectual property if we are unable to enforce our rights or if we do not detect unauthorized use of our intellectual property. Despite our precautions, it may be possible for unauthorized third parties to copy our products and use information that we regard as proprietary to create products and services that compete with ours. We also rely on contractual restrictions in our agreements with customers, employees, outsourced developers and others to protect our intellectual property rights. There can be no assurance that these agreements will not be breached, that we will have adequate remedies for any breach, or that our patents, copyrights, trademarks or trade secrets will not otherwise become known. Through an escrow arrangement, we have granted some of our customers a contingent future right to use our source code for software products solely for their internal maintenance services. If our source code is accessed through an escrow, the likelihood of misappropriation or other misuse of our intellectual property may increase.

Moreover, the laws of some countries do not protect proprietary intellectual property rights as effectively as do the laws of the U.S. and Canada. Protecting and defending our intellectual property rights could be costly regardless of venue. In order to protect our intellectual property rights, we may be required to spend significant resources to monitor and protect these rights. The Company is currently involved in, and expects to remain involved in, certain litigation to protect its intellectual property from infringement by third parties. In addition, further litigation may be necessary in the future to enforce our intellectual property rights, to protect our trade secrets, to determine the validity and scope of the intellectual property rights of others or to defend against claims of infringement or invalidity. Litigation brought to protect and enforce our intellectual property rights could be costly, time consuming and distracting to management and could result in the impairment or loss of portions of our intellectual property. Furthermore, our efforts to enforce our intellectual property rights may be met with defenses, counterclaims and countersuits attacking the validity and enforceability of our intellectual property rights and/or exposing us to claims for damages in any related counterclaims or countersuits. Our inability to protect our proprietary technology against unauthorized copying or use, as well as any costly litigation or diversion of our management’s attention and resources, could delay further sales or the implementation of our solutions, impair the functionality of our solutions,

39

delay introductions of new solutions, result in our substituting inferior or more costly technologies into our solutions, or injure our reputation.

We are dependent on certain key vendors for the availability of hardware devices, which could impede our development and expansion.

We currently have relationships with a small number of hardware device vendors over which we have no operational or financial control and no influence in how these vendors conduct their businesses. Suppliers of hardware devices could among other things, extend delivery times, raise prices and limit supply due to their own shortages and business requirements. Interruption in the supply of equipment from these vendors could delay our ability to maintain, grow and expand our telematics solutions business and those areas of our business that interact with telematics units. If our relationships with any of these unit vendors were to terminate, there is no guarantee that our remaining unit vendors would be able to handle the increased equipment supply required to maintain and grow our expansive networks at our desired rates. There is also no guarantee that business relationships with other key unit vendors could be entered into on terms desirable or favorable to us, if at all. Fewer key vendors might mean that existing or potential customers are unable to meaningfully communicate using our Global Logistics Network, which may cause existing and potential customers to move to competitors’ products. Such equipment supply issues could adversely affect our business, results of operations and financial condition.

Concerns about the environmental impacts of greenhouse gas emissions and global climate change may result in environmental taxes, charges, regulatory schemes, assessments or penalties, which could restrict or negatively impact our operations or reduce our profitability.

The impacts of human activity on global climate change have attracted considerable public and scientific attention, as well as the attention of the U.S. and other governments. Efforts are being made to reduce greenhouse gas emissions and energy consumption, including those from automobiles and other modes of transportation. The added cost of any environmental regulation, taxes, charges, assessments or penalties levied or imposed on our customers in light of these efforts could result in additional costs for our customers, which could lead them to reduce use of our services. There are also a number of legislative and environmental regulatory initiatives internationally that could restrict or negatively impact our operations or increase our costs. Additionally, environmental regulation, taxes, charges, assessments or penalties could be levied or imposed directly on us. Any enactment of laws or passage of regulations regarding greenhouse gas emissions by Canada, the U.S., or any other jurisdiction we conduct our business in, could adversely affect our operations and financial results.

The general cyclical and seasonal nature of the freight market may have a material adverse effect on our business, results of operations and financial condition.

Our business may be impacted from time to time by the general cyclical and seasonal nature of particular modes of transportation and the freight market in general, as well as the cyclical and seasonal nature of the industries that such markets serve. Factors which may create cyclical fluctuations in such modes of transportation or the freight market in general include legal and regulatory requirements, timing of contract renewals between our customers and their own customers, seasonal-based tariffs, vacation periods applicable to particular shipping or receiving nations, weather-related events that impact shipping in particular geographies and amendments to international trade agreements. Since some of our revenues from particular products and services are tied to the volume of shipments being processed, adverse fluctuations in the volume of global shipments or shipments in any particular mode of transportation may adversely affect our revenues. Declines in shipment volumes would likely have a material adverse effect on our business.

If we are unable to generate broad market acceptance of our services, products and pricing, serious harm could result to our business.

We currently derive substantially all of our revenues from our federated network and global logistics technology solutions and expect to do so in the future. Broad market acceptance of these types of services and products, and their related pricing, is therefore critical to our future success. The demand for, and market acceptance of, our services and products is subject to a high level of uncertainty. Some of our

40

services and products are often considered complex and may involve a new approach to the conduct of business by our customers. The market for our services and products may weaken, competitors may develop superior services and products that perform logistics services on a global scale or within a particular geographic region, or we may fail to develop or maintain acceptable services and products to address new market conditions, governmental regulations or technological changes. Any one of these events could have a material adverse effect on our business, results of operations and financial condition.

Claims that we infringe third-party proprietary rights could trigger indemnification obligations and result in significant expenses or restrictions on our ability to provide our products or services.

Competitors and other third parties have claimed, and in the future, may claim, that our current or future services or products infringe their proprietary rights or assert other claims against us. Many of our competitors have obtained patents covering products and services generally related to our products and services, and they may assert these patents against us. Such claims, whether with or without merit, could be time consuming and expensive to litigate or settle and could divert management attention from focusing on our core business.

As a result of such a dispute, we may have to pay damages, incur substantial legal fees, suspend the sale or deployment of our services and products, develop costly non-infringing technology, if possible, or enter into license agreements, which may not be available on terms acceptable to us, if at all. Any of these results would increase our expenses and could decrease the functionality of our services and products, which would make our services and products less attractive to our current and/or potential customers. We have agreed in some of our agreements, and may agree in the future, to indemnify other parties for any expenses or liabilities resulting from claimed infringements of the proprietary rights of third parties. If we are required to make payments pursuant to these indemnification agreements, such payments could have a material adverse effect on our business, results of operations and financial condition.

Our results of operations may vary significantly from quarter to quarter and therefore may be difficult to predict or may fail to meet investment community expectations.

Our results of operations may vary from quarter to quarter in the future due to a variety of factors, many of which are outside of our control. Such factors include, but are not limited to:

Volatility or fluctuations in foreign currency exchange rates;
Volatility or fluctuations in interest rates;
Timing of acquisitions and related costs;
Timing of restructuring activities;
The introduction of enhanced products and services from competitors;
Our ability to introduce new products and updates to our existing products on a timely basis;
The termination of any key customer contracts, whether by the customer or by us;
Recognition and expensing of deferred tax assets;
Legal costs incurred in bringing or defending any litigation with customers or third-party providers, and any corresponding judgments or awards;
Legal and compliance costs incurred to comply with regulatory requirements;
Fluctuations in the demand for our services and products;
The impact of stock-based compensation expense;
Price and functionality competition in our industry;
Changes in legislation and accounting standards;
Our ability to satisfy contractual obligations in customer contracts and deliver services and products to the satisfaction of our customers; and
Other risk factors discussed in this report.

Although our revenues may fluctuate from quarter to quarter, significant portions of our expenses are not variable in the short term, and we may not be able to reduce them quickly to respond to decreases in

41

revenues. If revenues are below expectations, this shortfall is likely to adversely and/or disproportionately affect our operating results. If this occurs, the trading price of our common shares may fall substantially.

We may not be able to prevent or detect all errors or fraud.

Due to the inherent limitations of internal control systems, misstatements due to error or fraud may occur and may not be detected in a timely manner or at all. Accordingly, we cannot provide absolute assurance that all control issues, errors or instances of fraud, if any, impacting us have been or will be prevented or detected. In addition, over time, certain aspects of a control system may become inadequate because of changes in conditions, or the degree of compliance with the policies or procedures may deteriorate, which we may not be able to address quickly enough to prevent all instances of error or fraud. In connection with our on-going assessment of the effectiveness of our internal control over financial reporting, we may discover “material weaknesses” in our internal controls. A material weakness is a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of the company’s annual or interim financial statements will not be prevented or detected on a timely basis. The existence of any material weakness may require management to devote significant time and incur significant expense to remediate any such material weaknesses. The existence of any material weakness in our internal control over financial reporting may result in errors in our financial statements that could require us to make corrective adjustments, restate our financial statements, cause us to fail to meet our reporting obligations, and cause shareholders to lose confidence in our reported financial information, all of which could materially and adversely affect the market price of our securities. If we are unable to successfully identify and remediate any material weaknesses that may arise in a timely manner, the accuracy and timing of our financial reporting may be adversely affected, and we may be unable to maintain compliance with securities law requirements regarding timely filing of periodic reports and applicable stock exchange listing requirements.

Privacy laws and regulations are extensive, open to various interpretations, complex to implement and may reduce demand for our products, and failure to comply may impose significant liabilities.

Our customers can use our products to collect, use, process and store information regarding their transactions with their customers. Federal, state and foreign government bodies and agencies have been increasingly adopting new laws and regulations regarding the collection, use, processing, storage and disclosure of such information obtained from consumers and individuals. In addition to government regulatory activity, privacy advocacy groups and the technology industry and other industries may consider various new, additional or different self-regulatory standards that may place additional burdens directly on our customers and target customers, and indirectly on us. Our products are expected to be capable of use by our customers in compliance with such laws and regulations. The functional and operational requirements and costs of compliance with such laws and regulations may adversely impact our business, and failure to enable our products to comply with such laws and regulations could lead to significant fines and penalties imposed by regulators, as well as claims by our customers or third parties. Additionally, all of these domestic and international legislative and regulatory initiatives could adversely affect our customers’ ability or desire to collect, use, process and store shipment logistics information, which could reduce demand for our products.

The price of our common shares has in the past, including recently, been volatile and may also be volatile in the future.

The trading price of our common shares may be subject to fluctuation in the future. This may make it more difficult for you to resell your common shares when you want at prices that you find attractive or make it more difficult for us to raise capital through the issuance of commons shares. Increases in our common share price may also increase our compensation expense pursuant to our existing director, officer and employee compensation arrangements. We enter into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain share-based compensation expenses. Fluctuations in our common share price may be caused by events unrelated to our operating performance and beyond our control. Factors that may contribute to fluctuations include, but are not limited to:

42

Revenue or results of operations in any quarter failing to meet the expectations, published or otherwise, of the investment community;
Changes in recommendations or financial estimates by industry or investment analysts;
Changes in management or the composition of our board of directors;
Outcomes of litigation or arbitration proceedings;
Announcements of technological innovations or acquisitions by us or by our competitors;
Introduction of new products or significant customer wins or losses by us or by our competitors;
Developments with respect to our intellectual property rights or those of our competitors;
Fluctuations in the share prices of other companies in the technology and emerging growth sectors;
General market conditions; and
Other risk factors set out in this report.

If the market price of our common shares drops significantly, shareholders could institute securities class action lawsuits against us, regardless of the merits of such claims. Such a lawsuit could cause us to incur substantial costs and could divert the time and attention of our management and other resources from our business.

Fair value assessments of our intangible assets required by GAAP may require us to record significant non-cash charges associated with intangible asset impairment.

Significant portions of our assets, which include customer agreements and relationships, non-compete covenants, existing technologies and trade names, are intangible. We amortize intangible assets on a straight-line basis over their estimated useful lives. We review the carrying value of these assets at least annually for evidence of impairment. In accordance with ASC Topic 360-10-35, “Property, Plant, and Equipment: Overview: Subsequent Measurement” an impairment loss is recognized when the estimate of undiscounted future cash flows generated by such assets is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. Future fair value assessments of intangible assets may require impairment charges to be recorded in the results of operations for future periods. This could impair our ability to achieve or maintain profitability in the future.

If our common share price decreases to a level such that the fair value of our net assets is less than the carrying value of our net assets, we may be required to record additional significant non-cash charges associated with goodwill impairment.

We account for goodwill in accordance with ASC Topic 350, “Intangibles – Goodwill and Other”, which among other things, requires that goodwill be tested for impairment at least annually. We have designated October 31st for our annual impairment test. Should the fair value of our net assets, determined by our market capitalization, be less than the carrying value of our net assets at future annual impairment test dates, we may have to recognize goodwill impairment losses in our results of operations in future periods. This could impair our ability to achieve or maintain profitability in the future.

43

Management’s Report on Financial Statements
and Internal Control Over Financial
Reporting

Financial Statements

Management is responsible for the accompanying consolidated financial statements and all other information in this Annual Report. These consolidated financial statements have been prepared in accordance with US generally accepted accounting principles (“GAAP”) and necessarily include amounts that reflect management’s judgment and best estimates. Financial information contained elsewhere in this Annual Report is prepared on a basis consistent with the consolidated financial statements.

The Board of Directors carries out its responsibilities for the consolidated financial statements through its Audit Committee, consisting solely of independent directors. The Audit Committee meets with management and the independent auditors to review the consolidated financial statements and internal controls as they relate to financial reporting. The Audit Committee reports its findings to the Board of Directors for its consideration in approving the consolidated financial statements for issuance to shareholders.

Internal Control Over Financial Reporting

Management is responsible for establishing and maintaining adequate internal control over financial reporting. Internal control over financial reporting is a process designed by, or under the supervision of, the Chief Executive Officer and Chief Financial Officer and effected by the Board of Directors, management and other personnel to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with GAAP.

Due to its inherent limitations, internal control over financial reporting may not prevent or detect misstatements on a timely basis.

Under the supervision and with the participation of our management, including our Chief Executive Officer and Chief Financial Officer, management assessed the effectiveness of our internal control over financial reporting as of January 31, 2023, based on criteria established in “Internal Control – Integrated Framework” (2013), issued by the Committee of Sponsoring Organizations of the Treadway Commission. Based on the assessment, management concluded that, as of January 31, 2023, the design and operation of our internal control over financial reporting was effective.

Management’s internal control over financial reporting as of January 31, 2023, has been audited by KPMG LLP, Independent Registered Public Accounting Firm, who also audited our Consolidated Financial Statements for the year ended January 31, 2023, as stated in the Report of Independent Registered Public Accounting Firm, which expressed an unqualified opinion on the effectiveness of our internal control over financial reporting as of January 31, 2023.

Changes in Internal Control Over Financial Reporting

During the fiscal year ended January 31, 2023, no changes were made to the Company’s internal control over financial reporting that have materially affected, or are reasonably likely to materially affect, the Company’s internal control over financial reporting.

‘Edward J. Ryan’

Edward J. Ryan

‘Allan Brett’

Allan Brett

Chief Executive Officer

Chief Financial Officer

Waterloo, Ontario

Waterloo, Ontario

44

Graphic

KPMG LLP

Vaughan Metropolitan Centre

100 New Park Place

Suite 1400

Vaughan, ON Canada L4K 0J3

Telephone (905) 265-5900

Fax (905) 265-6390

www.kpmg.ca

Report of Independent Registered Public Accounting Firm

To the Shareholders and Board of Directors of The Descartes Systems Group Inc. (the Company)

Opinion on the Consolidated Financial Statements

We have audited the accompanying consolidated balance sheets of the Company as of January 31, 2023 and 2022, the related consolidated statements of operations, comprehensive income, shareholders’ equity, and cash flows for each of the years in the three-year period ended January 31, 2023, and the related notes (collectively, the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of January 31, 2023 and 2022, and the results of its operations and its cash flows for each of the years in the three-year period ended January 31, 2023, in conformity with U.S. generally accepted accounting principles.

We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the Company’s internal control over financial reporting as of January 31, 2023, based on criteria established in Internal Control – Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission, and our report dated March 1, 2023 expressed an unqualified opinion on the effectiveness of the Company’s internal control over financial reporting.

Basis for Opinion

These consolidated financial statements are the responsibility of the Company’s management. Our responsibility is to express an opinion on these consolidated financial statements based on our audits. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.

We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.

45

Critical Audit Matter

The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of a critical audit matter does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.

Determination of standalone selling prices of distinct performance obligations for customer contracts with multiple performance obligations

As discussed in Note 2 to the consolidated financial statements, the Company enters into contracts that can include the delivery of various combinations of goods and/or services. The accounting for a contract with a customer that contains multiple performance obligations requires an allocation of the transaction price to each distinct performance obligation based on the determination of the standalone selling price (SSP). SSP for each distinct performance obligation in a customer contract is an estimate of the price that would be charged for the specific good or service if it was sold separately in similar circumstances and to similar customers. This estimate determines the amount of revenue recognized for each performance obligation in a customer contract. If the Company does not have an observable SSP for a particular good or service, then SSP is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach. When estimating the SSP, the Company makes certain significant assumptions including the basis for stratification of the underlying population of customer contracts based on pricing practices for different goods or services, as appropriate. The Company’s consolidated revenues were $486,014 thousand for the year ended January 31, 2023.

We identified the evaluation of the determination of the SSP of distinct performance obligations for customer contracts with multiple performance obligations as a critical audit matter. A higher degree of auditor judgment was required to evaluate the approach and the significant assumptions, including the basis for stratification, used to determine SSP for each distinct performance obligation in a customer contract.

The following are the primary procedures we performed to address this critical audit matter. We evaluated the design and tested the operating effectiveness of internal controls related to the critical audit matter, including controls related to the approach and significant assumptions used to determine SSP for distinct performance obligations in customer contracts with multiple performance obligations. We evaluated the approach used to determine SSP by comparing it to current pricing patterns in relevant customer contracts and the pricing practices observed in the industry. We examined certain revenue transactions from the SSP population and compared attributes such as price and level of the employee rendering the service to customer contracts and invoices to evaluate the significant assumptions used, including the basis of stratification.

Graphic

Chartered Professional Accountants, Licensed Public Accountants

We have served as the Company’s auditor since 2015.

Vaughan, Canada
March 1, 2023

46

Graphic

KPMG LLP

Vaughan Metropolitan Centre

100 New Park Place

Suite 1400

Vaughan, ON Canada L4K 0J3

Telephone (905) 265-5900

Fax (905) 265-6390

www.kpmg.ca

Report of Independent Registered Public Accounting Firm

To the Shareholders and Board of Directors of The Descartes Systems Group Inc. (the Company)

Opinion on Internal Control Over Financial Reporting

We have audited the Company’s internal control over financial reporting as of January 31, 2023, based on criteria established in Internal Control – Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission. In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of January 31, 2023, based on criteria established in Internal Control – Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission.

We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (PCAOB), the consolidated balance sheets of the Company as of January 31, 2023 and 2022, the related consolidated statements of operations, comprehensive income, shareholders’ equity, and cash flows for each of the years in the three-year period ended January 31, 2023, and the related notes (collectively, the consolidated financial statements), and our report dated March 1, 2023 expressed an unqualified opinion on those consolidated financial statements.

Basis for Opinion

The Company’s management is responsible for maintaining effective internal control over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying Management’s Report on Financial Statements and Internal Control Over Financial Reporting preceding our reports. Our responsibility is to express an opinion on the Company’s internal control over financial reporting based on our audit. We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.

We conducted our audit in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial reporting was maintained in all material respects. Our audit of internal control over financial reporting included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, and testing and evaluating the design and operating effectiveness of internal control based on the assessed risk. Our audit also included performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.

47

Definition and Limitations of Internal Control Over Financial Reporting

A company’s internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles. A company’s internal control over financial reporting includes those policies and procedures that (1) pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors of the company; and (3) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company’s assets that could have a material effect on the financial statements.

Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.

Graphic

Chartered Professional Accountants, Licensed Public Accountants

Vaughan, Canada
March 1, 2023

48

THE DESCARTES SYSTEMS GROUP INC.

CONSOLIDATED BALANCE SHEETS

(US DOLLARS IN THOUSANDS; US GAAP)

    

January 31, 

    

January 31,

2023

2022

ASSETS

 

  

 

  

CURRENT ASSETS

 

  

 

  

Cash

 

276,385

 

213,437

Accounts receivable (net)

 

  

 

  

Trade (Note 5)

 

45,173

 

41,705

Other (Note 6)

 

11,658

 

14,075

Prepaid expenses and other

 

24,676

 

21,974

Inventory (Note 7)

 

759

 

868

 

358,651

 

292,059

OTHER LONG-TERM ASSETS (Note 19)

 

22,247

 

18,652

PROPERTY AND EQUIPMENT, NET (Note 8)

 

11,434

 

10,817

RIGHT-OF-USE ASSETS (Note 13)

 

6,774

 

10,571

DEFERRED INCOME TAXES

 

11,483

 

14,962

INTANGIBLE ASSETS, NET (Note 9)

 

229,808

 

229,609

GOODWILL (Note 10)

 

675,647

 

608,761

 

1,316,044

 

1,185,431

LIABILITIES AND SHAREHOLDERS’ EQUITY

 

 

  

CURRENT LIABILITIES

 

 

  

Accounts payable

 

10,569

 

10,566

Accrued liabilities (Note 11)

 

80,309

 

56,442

Lease obligations (Note 13)

 

3,397

 

4,029

Income taxes payable

 

7,536

 

5,616

Deferred revenue (Note 19)

 

67,784

 

56,780

 

169,595

 

133,433

LONG-TERM DEBT (Note 12)

 

-

 

LEASE OBLIGATIONS (Note 13)

 

3,923

 

7,382

DEFERRED REVENUE (Note 19)

 

1,615

 

1,920

INCOME TAXES PAYABLE

 

6,120

 

7,354

DEFERRED INCOME TAXES

 

35,400

 

35,523

 

216,653

 

185,612

COMMITMENTS, CONTINGENCIES AND GUARANTEES (Note 14)

 

 

  

SHAREHOLDERS’ EQUITY (Note 15)

 

 

  

Common shares – unlimited shares authorized; Shares issued and outstanding totaled 84,820,100 at January 31, 2023 (January 31, 2022 – 84,756,210)

 

538,448

 

536,297

Additional paid-in capital

 

486,551

 

473,303

Accumulated other comprehensive loss

 

(30,456)

 

(12,393)

Retained earnings

 

104,848

 

2,612

 

1,099,391

 

999,819

 

1,316,044

 

1,185,431

The accompanying notes are an integral part of these consolidated financial statements.

49

THE DESCARTES SYSTEMS GROUP INC.

CONSOLIDATED STATEMENTS OF OPERATIONS

(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP)

    

January 31, 

    

January 31, 

    

January 31, 

Year Ended

2023

2022

2021

REVENUES

 

486,014

 

424,690

 

348,664

COST OF REVENUES

 

113,326

 

101,810

 

89,910

GROSS MARGIN

 

372,688

 

322,880

 

258,754

EXPENSES

 

 

 

Sales and marketing

 

56,573

 

46,895

 

38,785

Research and development

 

70,353

 

62,570

 

54,066

General and administrative

 

49,710

 

44,454

 

36,267

Other charges (Note 20)

 

5,441

 

6,428

 

2,335

Amortization of intangible assets

 

60,177

 

59,099

 

55,905

 

242,254

 

219,446

 

187,358

INCOME FROM OPERATIONS

 

130,434

 

103,434

 

71,396

INTEREST EXPENSE

 

(1,167)

 

(1,123)

 

(1,186)

INVESTMENT AND OTHER INCOME

 

4,461

 

299

 

159

INCOME BEFORE INCOME TAXES

 

133,728

 

102,610

 

70,369

INCOME TAX EXPENSE (Note 18)

 

 

 

Current

 

28,248

 

14,814

 

3,746

Deferred

 

3,244

 

1,514

 

14,523

 

31,492

 

16,328

 

18,269

NET INCOME

 

102,236

 

86,282

 

52,100

EARNINGS PER SHARE (Note 16)

 

 

 

Basic

 

1.21

 

1.02

 

0.62

Diluted

 

1.18

 

1.00

 

0.61

WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)

 

 

 

Basic

 

84,791

 

84,591

 

84,360

Diluted

 

86,451

 

86,200

 

85,756

The accompanying notes are an integral part of these consolidated financial statements.

50

THE DESCARTES SYSTEMS GROUP INC.

CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME

(US DOLLARS IN THOUSANDS; US GAAP)

    

January 31, 

    

January 31, 

    

January 31, 

Year Ended

2023

2022

2021

Comprehensive income

 

  

 

  

 

  

Net Income

 

102,236

 

86,282

 

52,100

Other comprehensive income (loss):

 

 

 

Foreign currency translation adjustment, net of income tax (recovery) expense of ($58) for the year ended January 31, 2023 (January 31, 2022 – ($348); January 31, 2021 – $290)

 

(18,063)

 

(11,204)

 

24,755

Total other comprehensive income (loss)

 

(18,063)

 

(11,204)

 

24,755

COMPREHENSIVE INCOME

 

84,173

 

75,078

 

76,855

The accompanying notes are an integral part of these consolidated financial statements.

51

THE DESCARTES SYSTEMS GROUP INC.

CONSOLIDATED STATEMENTS OF SHAREHOLDERS’ EQUITY

(US DOLLARS IN THOUSANDS; US GAAP)

    

January 31, 

    

January 31, 

    

January 31, 

2023

2022

2021

Common shares

 

  

 

  

 

  

Balance, beginning of year

 

536,297

 

531,825

 

524,154

Stock options and share units exercised

 

2,151

 

4,472

 

7,671

Balance, end of year

 

538,448

 

536,297

 

531,825

Additional paid-in capital

 

 

 

Balance, beginning of year

 

473,303

 

464,102

 

459,269

Stock-based compensation expense (Note 17)

 

13,667

 

11,017

 

6,313

Stock options and share units exercised

 

(419)

 

(1,816)

 

(1,480)

Balance, end of year

 

486,551

 

473,303

 

464,102

Accumulated other comprehensive income (loss)

 

 

 

Balance, beginning of year

 

(12,393)

 

(1,189)

 

(25,944)

Other comprehensive income (loss), net of income taxes

 

(18,063)

 

(11,204)

 

24,755

Balance, end of year

 

(30,456)

 

(12,393)

 

(1,189)

Retained earnings (accumulated deficit)

 

 

 

Balance, beginning of year

 

2,612

 

(83,670)

 

(135,770)

Net income

 

102,236

 

86,282

 

52,100

Balance, end of year

 

104,848

 

2,612

 

(83,670)

Total Shareholders’ Equity

 

1,099,391

 

999,819

 

911,068

The accompanying notes are an integral part of these consolidated financial statements.

52

THE DESCARTES SYSTEMS GROUP INC.

CONSOLIDATED STATEMENTS OF CASH FLOWS

(US DOLLARS IN THOUSANDS; US GAAP)

    

January 31, 

    

January 31, 

    

January 31, 

Year Ended

2023

2022

2021

OPERATING ACTIVITIES

 

  

 

  

 

  

Net income

 

102,236

 

86,282

 

52,100

Adjustments to reconcile net income to cash provided by operating activities:

 

 

 

Depreciation

 

5,225

 

5,129

 

5,757

Amortization of intangible assets

 

60,177

 

59,099

 

55,905

Stock-based compensation expense (Note 17)

 

13,667

 

11,017

 

6,313

Other non-cash operating activities

 

53

 

308

 

207

Deferred tax expense

 

3,244

 

1,514

 

14,523

Changes in operating assets and liabilities (Note 21)

 

7,793

 

12,789

 

(3,575)

Cash provided by operating activities

 

192,395

 

176,138

 

131,230

INVESTING ACTIVITIES

 

 

 

Additions to property and equipment

 

(6,071)

 

(4,829)

 

(3,759)

Acquisition of subsidiaries, net of cash acquired (Note 3)

 

(115,561)

 

(90,278)

 

(48,403)

Cash used in investing activities

 

(121,632)

 

(95,107)

 

(52,162)

FINANCING ACTIVITIES

 

 

 

Proceeds from borrowings on the credit facility

10,196

Credit facility and other debt repayments

 

 

(1,068)

 

(10,793)

Payment of debt issuance costs

 

(1,118)

 

(72)

 

(40)

Issuance of common shares for cash, net of issuance costs (Note 15)

 

1,730

 

2,656

 

6,194

Payment of contingent consideration

 

(5,215)

 

 

Cash (used in) provided by financing activities

 

(4,603)

 

1,516

 

5,557

Effect of foreign exchange rate changes on cash

 

(3,212)

 

(2,771)

 

4,633

Increase in cash

 

62,948

 

79,776

 

89,258

Cash, beginning of year

 

213,437

 

133,661

 

44,403

Cash, end of year

 

276,385

 

213,437

 

133,661

Supplemental disclosure of cash flow information:

 

 

  

 

Cash paid during the year for interest

 

 

 

89

Cash paid during the year for income taxes

 

23,791

 

12,575

 

8,214

The accompanying notes are an integral part of these consolidated financial statements.

53

THE DESCARTES SYSTEMS GROUP INC.

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

(TABULAR AMOUNTS IN THOUSANDS OF US DOLLARS, EXCEPT PER SHARE AMOUNTS OR AS OTHERWISE INDICATED; US GAAP)

Note 1 - Description of the Business

The Descartes Systems Group Inc. (“Descartes”, “Company”, “our” or “we”) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (“SaaS”) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.

Note 2 –Basis of Presentation

The accompanying consolidated financial statements are presented in United States (“US”) dollars and are prepared in accordance with generally accepted accounting principles in the US (“GAAP”) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (“SEC”) for the preparation of consolidated financial statements.

Our fiscal year commences on February 1st of each year and ends on January 31st of the following year. Our fiscal year, which ends on January 31, 2023, is referred to as the “current fiscal year”, “fiscal 2023”, “2023” or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the “previous fiscal year”, “fiscal 2022”, “2022” or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, “2024” refers to the annual period ending January 31, 2024 and the “fourth quarter of 2024” refers to the quarter ending January 31, 2024.

Basis of consolidation

The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.

Foreign currency translation

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.

54

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 January 31, 2023, foreign currency re-measurement loss of $1.2 million was included in net income (January 31, 2022 – loss of $0.3 million; January 31, 2021 – loss of $0.8 million).

Use of estimates

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 may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.

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 (“SSP”) of performance obligations in contracts with customers.

Cash

Cash included highly liquid short-term deposits with original maturities of three months or less.

Financial instruments

Fair value of financial instruments

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.

Derivative instruments

We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 “Derivatives and Hedging” (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.

Foreign exchange risk

We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.

55

Interest rate risk

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) Canadian Dollar Offered Rate (CDOR); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.

Credit risk

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.

We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.

Equity risk

We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.

Provision for Credit Losses

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.

Inventory

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.

The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.

Impairment of long-lived assets

We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.

56

Goodwill and intangible assets

Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.

We test for impairment of goodwill at least annually on October 31st of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our 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 third quarter of 2023 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2023 (no impairments were recorded for fiscal 2022 or fiscal 2021).

Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.

Amortization of our intangible assets is generally recorded at the following rates:

Customer agreements and relationships

Straight-line over two to twenty years

Existing technologies

Straight-line over four to twelve years

Trade names

Straight-line over three to fifteen years

Non-compete covenants

Straight-line over two to twelve years

Property and equipment

Property and equipment is recorded at cost.

Effective February 1, 2020, we changed our accounting method for property & 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 was applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.

Depreciation of our property and equipment is generally recorded at the following rates:

Computer equipment and software

Straight-line over 1 to 13 years

Furniture and fixtures

Straight-line over 3 to 14 years

Leasehold improvements

Straight-line over lesser of useful life or term of lease

Equipment installed with customers

Straight-line over 3 years

Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.

Leases

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.

57

We recognize a right-of-use (“ROU”) 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.

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 not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.

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.

We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.

Revenue recognition

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.

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.

License

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.

58

Services

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.

Professional Services & Other

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.

Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.

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 our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.

Costs to obtain a contract with a customer

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 four to six years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.

59

Contract assets and liabilities

The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.

Research and development costs

To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.

Stock-based compensation plans

Stock Options

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.  

Employee stock options generally vest over a five-year period starting from the grant date and expire seven years from the grant date. Non-employee directors’ and officers’ stock options generally have quarterly vesting over a three to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.

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.

Performance & Restricted Share Units

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 (“PSUs”) and restricted share units (“RSUs”).

60

PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (“TSR”) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten years from the grant date. New shares are issued from treasury upon the redemption of a PSU.

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.

RSUs vest annually over a three-year period starting from the grant date and expire ten years from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.

Deferred Share Unit Plan

Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (“DSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none 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 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.

Cash-Settled Restricted Share Unit Plan

Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (“CRSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over three to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31st 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.

Business combinations

We apply the provisions of ASC Topic 805, “Business Combinations” (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.

61

Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.

While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.

Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, “Exit or Disposal Cost Obligations” (Topic 420) and are accounted for separately from the business combination.

For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.

Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.

Income taxes

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 not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.

62

We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.

Earnings per share

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.

Recently issued accounting pronouncements

In October 2021, the FASB issued Accounting Standards Update 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers” (“ASU 2021-08”). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.

Note 3 – Acquisitions

Fiscal 2023 Acquisitions

On February 9, 2022, Descartes acquired all of the shares of NetCHB, LLC (“NetCHB”), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately $38.7 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two years post-acquisition. The fair value of the contingent considerations was valued at $13.9 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.1 million with a fair value of $0.1 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2023 with no adjustments.

On April 21, 2022, Descartes acquired substantially all of the assets of Foxtrot, Inc. (“Foxtrot”), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately $4.2 million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.7 million with a fair value of $0.7 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April 21, 2023.

63

On June 3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (“XPS”), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately $61.1 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $75.0 million based on XPS achieving revenue-based targets over the first two years post-acquisition. The fair value of the contingent consideration was valued at $9.4 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.5 million with a fair value of $1.5 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June 3, 2023.

On January 5, 2023, Descartes acquired all of the shares of Tran-Soft, LLC, doing business as Supply Vision (“Supply Vision”), a provider of shipment management solutions for North American Logistics Services Providers. The purchase price for the acquisition was approximately $12.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $3.0 million based on Supply Vision achieving revenue-based targets over the first two years post-acquisition. The fair value of the contingent consideration was valued at $2.7 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.3 million with a fair value of $0.3 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before January 5, 2024.

For the businesses acquired during fiscal 2023, we incurred acquisition-related costs of $1.9 million for the year ended January 31, 2023. 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 January 31, 2023, we have recognized revenues of $20.8 million, and net income of $6.6 million, respectively, from NetCHB, Foxtrot, XPS and Supply Vision since the date of acquisition in our consolidated statements of operations.

64

The final purchase price allocation for NetCHB and the preliminary purchase price allocations for Foxtrot, XPS and Supply Vision, which have not been finalized, are as follows:

    

    

    

    

Supply

    

NetCHB

Foxtrot

XPS

Vision

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil), XPS ($3,932) and Supply Vision ($413)

 

38,664

 

4,228

 

61,096

 

11,573

115,561

Contingent consideration

 

13,948

 

 

9,425

 

2,670

26,043

Net working capital adjustments payable (receivable)

 

51

 

66

 

978

 

(137)

958

 

52,663

 

4,294

 

71,499

 

14,106

142,562

Allocated to:

 

  

 

  

 

 

Current assets, excluding cash acquired

 

469

 

835

 

2,449

 

703

4,456

Current liabilities

 

(367)

 

(22)

 

(1,483)

 

(658)

(2,530)

Deferred revenue

 

 

(336)

 

(2,196)

 

(132)

(2,664)

Net tangible assets (liabilities) assumed

 

102

 

477

 

(1,230)

 

(87)

(738)

 

  

 

  

 

 

Finite life intangible assets acquired:

Customer agreements and relationships

 

10,900

 

650

 

8,100

 

2,500

22,150

Existing technology

 

14,100

 

1,640

 

20,000

 

4,700

40,440

Trade names

 

64

 

 

100

 

30

194

Non-compete covenants

 

700

 

 

1,000

 

200

1,900

Goodwill

 

26,797

 

1,527

 

43,529

 

6,763

78,616

 

52,663

 

4,294

 

71,499

 

14,106

142,562

The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, “Business Combinations”. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one year from the acquisition dates.

The acquired intangible assets are being amortized over their estimated useful lives as follows:

    

    

    

    

Supply

NetCHB

Foxtrot

XPS

Vision

Customer agreements and relationships

 

13 years

 

13 years

 

11 years

11 years

Existing technology

 

6 years

 

6 years

 

6 years

6 years

Trade names

 

2 years

 

N/A

 

2 years

9 years

Non-compete covenants

 

5 years

 

N/A

 

5 years

5 years

The goodwill on the NetCHB, Foxtrot, XPS and Supply Vision acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot, XPS and Supply Vision acquisitions are deductible for tax purposes.

Fiscal 2022 Acquisitions

On February 26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (“QuestaWeb”), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately $35.9 million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.6 million with a fair value of $0.5 million at the date of acquisition. Our acquisition date estimate of contractual cash

65

flows not expected to be collected was $0.1 million. The purchase price was finalized in the three month period ended January 31, 2022 with no adjustments.

On May 7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (“Portrix”), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately $25.2 million (EUR 20.7 million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.7 million with a fair value of $0.7 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended April 30, 2022 with no adjustments.

On July 8, 2021, Descartes acquired all of the shares of GreenMile, LLC (“GreenMile”), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately $29.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $10.0 million in cash is payable if certain revenue performance targets are met by GreenMile in the two years following the acquisition. The fair value of the contingent consideration was valued at $3.3 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.1 million with a fair value of $1.0 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. The purchase price was finalized in the three month period ended July 31, 2022 with no adjustments.

The final purchase price allocations for businesses we acquired during 2022 are as follows:

    

    

    

Green

    

QuestaWeb

Portrix

Mile

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)

 

35,860

25,188

 

29,230

 

90,278

Contingent consideration

 

 

 

3,339

 

3,339

Net working capital adjustments payable / (receivable)

 

17

 

(54)

 

(308)

 

(345)

 

35,877

 

25,134

 

32,261

 

93,272

Allocated to:

 

  

 

  

 

  

 

  

Current assets, excluding cash acquired

 

714

 

810

 

2,186

 

3,710

Property and equipment

 

78

 

 

89

 

167

Right-of-use assets

 

123

 

374

 

 

497

Other long-term assets

 

 

 

242

 

242

Current liabilities

 

(170)

 

(871)

 

(1,498)

 

(2,539)

Deferred revenue

 

(736)

 

(499)

 

(909)

 

(2,144)

Lease obligations

 

(123)

 

(374)

 

 

(497)

Deferred income tax liability

 

 

(5,185)

 

(752)

 

(5,937)

Long-term income taxes payable

 

 

 

(365)

 

(365)

Debt

 

 

(1,062)

 

 

(1,062)

Net tangible assets (liabilities) assumed

 

(114)

 

(6,807)

 

(1,007)

 

(7,928)

 

  

 

  

 

  

 

  

Finite life intangible assets acquired:

Customer agreements and relationships

 

4,800

 

4,014

 

5,700

 

14,514

Existing technology

 

8,900

 

12,286

 

14,000

 

35,186

Trade names

 

100

 

122

 

100

 

322

Non-compete covenants

 

500

 

487

 

500

 

1,487

Goodwill

 

21,691

 

15,032

 

12,968

 

49,691

 

35,877

 

25,134

 

32,261

 

93,272

66

The acquired intangible assets are being amortized over their estimated useful lives as follows:

    

QuestaWeb

    

Portrix

    

GreenMile

Customer agreements and relationships

 

13 years

 

13 years

 

13 years

Existing technology

 

6 years

 

6 years

 

6 years

Trade names

 

3 years

 

3 years

 

3 years

Non-compete covenants

 

5 years

 

2 years

 

5 years

The goodwill on the QuestaWeb, Portrix and GreenMile acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the QuestaWeb and GreenMile acquisition is deductible for tax purposes. The goodwill arising from the Portrix acquisition is not deductible for tax purposes.

Fiscal 2021 Acquisitions

On February 21, 2020, Descartes acquired all of the shares of Peoplevox Limited (“Peoplevox”), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately $24.1 million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes’ existing credit facility. The gross contractual amount of trade receivables acquired was $0.4 million with a fair value of $0.4 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2021 with no adjustments.

On June 10, 2020 Descartes acquired all of the shares of Cracking Logistics Limited (“Kontainers”), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately $5.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $6.0 million in cash is payable if certain revenue performance targets are met by Kontainers in the two years following the acquisition. The fair value of the contingent consideration was valued at $1.4 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.2 million with a fair value of $0.2 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended July 31, 2021 with no adjustments.

On November 6, 2020, Descartes acquired all of the shares of ShipTrack Inc. (“ShipTrack”), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately $19.0 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD 25.0 million in cash is payable if certain revenue performance targets are met by ShipTrack in the two years following the acquisition. The fair value of the contingent consideration was valued at $2.8 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.7 million with a fair value of $1.7 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended October 31, 2021 with no adjustments.

67

The final purchase price allocations for businesses we acquired during 2021 are as follows:

    

Peoplevox

    

Kontainers

    

ShipTrack

    

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)

 

24,137

 

5,237

 

19,029

 

48,403

Consideration payable

 

 

100

 

 

100

Contingent consideration

 

 

1,414

 

2,825

 

4,239

Net working capital adjustments (receivable) / payable

 

(42)

 

(87)

64

 

(65)

 

 

24,095

 

6,664

 

21,918

 

52,677

Allocated to:

 

  

 

  

 

  

 

  

Current assets, excluding cash acquired

 

485

 

469

 

1,853

 

2,807

Right-of-use assets

 

 

 

151

 

151

Current liabilities

 

(776)

 

(1,074)

 

(693)

 

(2,543)

Deferred revenue

 

(748)

 

(102)

 

(204)

 

(1,054)

Lease obligations

 

 

 

(151)

 

(151)

Deferred income tax liability

 

(1,615)

 

 

(4,012)

 

(5,627)

Debt

 

 

 

(728)

 

(728)

Net tangible assets (liabilities) assumed

 

(2,654)

 

(707)

 

(3,784)

 

(7,145)

 

  

 

  

 

  

 

  

Finite life intangible assets acquired:

Customer agreements and relationships

 

3,631

 

800

 

3,905

 

8,336

Existing technology

 

7,651

 

3,000

 

11,102

 

21,753

Trade names

 

 

30

 

77

 

107

Non-compete covenants

 

285

 

80

 

291

 

656

Goodwill

 

15,182

 

3,461

 

10,327

 

28,970

 

24,095

 

6,664

 

21,918

 

52,677

The acquired intangible assets are being amortized over their estimated useful lives as follows:

    

Peoplevox

    

Kontainers

    

ShipTrack

Customer agreements and relationships

 

10 years

 

12 years

 

13 years

Existing technology

 

6 years

 

5 years

 

6 years

Trade names

 

N/A

 

3 years

 

3 years

Non-compete covenants

 

5 years

 

5 years

 

5 years

The goodwill on the Peoplevox, Kontainers and ShipTrack acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Peoplevox, Kontainers and ShipTrack acquisitions are not deductible for tax purposes.

Pro Forma Results of Operations (Unaudited)

The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired Supply Vision, XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb as of February 1, 2020.

This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of Supply Vision,

68

XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb occurred at February 1, 2020, or to project our results of operations for any future period.

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Revenues

 

495,874

461,864

 

393,322

Net income

 

103,700

91,398

 

49,315

Earnings per share

 

 

Basic

 

1.22

1.08

 

0.58

Diluted

 

1.20

1.06

 

0.58

Note 4 – Fair Value Measurements

ASC Topic 820 “Fair Value Measurements and Disclosures” (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.

Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:

Level 1—inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.
Level 2—inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
Level 3—inputs 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.

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 2 measurement) due to their short maturities.

The following table shows the Company’s financial instruments measured at fair value on a recurring basis as of January 31, 2023:

    

Level 1

    

Level 2

    

Level 3

    

Total

Assets:

 

  

 

  

 

  

 

  

Equity derivative contracts

 

 

11,610

 

 

11,610

Liabilities:

 

  

 

  

 

  

 

  

Contingent consideration

 

 

 

30,949

 

30,949

69

The following table shows the Company’s financial instruments measured at fair value on a recurring basis as of January 31, 2022:

    

Level 1

    

Level 2

    

Level 3

    

Total

Assets:

 

  

 

  

 

  

 

  

Equity derivative contracts

 

 

10,863

 

 

10,863

Liabilities:

 

  

 

  

 

  

 

  

Contingent consideration

 

 

 

12,990

 

12,990

The Company enters into equity derivative contracts including floating-rate equity forwards to substantially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at January 31, 2023, we had equity derivatives for 281,768 Descartes common shares with a weighted average price of $31.35.

The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and administrative expenses in the consolidated financial statements. For the years ended January 31, 2023, 2022 and 2021, we recognized an expense (recovery) in general and administrative expenses of ($1.3) million, ($2.9) million and ($3.4) million, respectively.

Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include revenue growth rates and the discount rates applied (10% to 13%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.The following table presents the changes in the fair value measurements of the contingent consideration in Level 3 of the fair value hierarchy:

    

Level 3

Balance at January 31, 2021

4,671

Increase from acquisitions

3,339

Charges through profit or loss

5,070

Effect of movements in foreign exchange

(90)

Balance at January 31, 2022

 

12,990

Increase from acquisitions

 

26,043

Cash payments

 

(10,782)

Charges through profit or loss

 

2,804

Effect of movements in foreign exchange

 

(106)

Balance at January 31, 2023

 

30,949

Note 5 – Trade Accounts Receivable

    

January 31,

    

January 31,

2023

2022

Trade accounts receivable

 

46,718

 

43,565

Less: Provision for credit losses

 

(1,545)

 

(1,860)

 

45,173

 

41,705

Included in accounts receivable are unbilled receivables in the amount of $0.3 million as at January 31, 2023 ($0.5 million as at January 31, 2022). No single customer accounted for more than 10% of the accounts receivable balance as of January 31, 2023 and 2022.

70

The following table presents the changes in the provision for credit losses as follows:

    

Provision

for Credit

Losses

Balance at January 31, 2021

2,330

Current period provision for expected losses

1,007

Write-offs charged against the provision

(1,456)

Effect of movements in foreign exchange

(21)

Balance at January 31, 2022

 

1,860

Current period provision for expected losses

 

1,068

Write-offs charged against the provision

 

(1,341)

Effect of movements in foreign exchange

 

(42)

Balance at January 31, 2023

 

1,545

Note 6 – Other Receivables

    

January 31,

    

January 31,

2023

2022

Net working capital adjustments receivable from acquisitions

 

384

 

309

Other receivables

 

11,274

 

13,766

 

11,658

 

14,075

Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January 31, 2023, $0.4 million ($0.3 million as at January 31, 2022) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.

Note 7 – Inventory

At January 31, 2023 and January 31, 2022, inventory is entirely comprised of finished goods inventory. Finished goods inventory primarily consists of hardware and related parts for mobile asset units held for sale. For the years ended January 31, 2023, 2022 and 2021, a nominal provision for excess or obsolete inventories has been recorded in cost of revenues.

Note 8 – Property and Equipment

    

January 31,

    

January 31,

2023

2022

Cost

 

  

 

  

Computer equipment and software

 

44,304

 

40,937

Furniture and fixtures

 

1,533

 

1,553

Leasehold improvements

 

1,076

 

822

Equipment installed with customers

 

1,936

 

1,635

Assets under construction

 

358

 

524

 

49,207

 

45,471

Accumulated depreciation

 

  

 

  

Computer equipment and software

 

34,275

 

31,660

Furniture and fixtures

 

1,283

 

1,257

Leasehold improvements

 

660

 

531

Equipment installed with customers

 

1,555

 

1,206

 

37,773

 

34,654

Net

 

11,434

 

10,817

71

Note 9 - Intangible Assets

    

January 31,

    

January 31,

2023

2022

Cost

 

  

 

  

Customer agreements and relationships

 

268,712

 

251,402

Existing technology

 

355,695

 

326,411

Trade names

 

9,026

 

9,038

Non-compete covenants

 

13,893

 

12,306

 

647,326

 

599,157

Accumulated amortization

 

  

 

  

Customer agreements and relationships

 

151,016

 

135,380

Existing technology

 

248,867

 

218,953

Trade names

 

7,318

 

6,677

Non-compete covenants

 

10,317

 

8,538

 

417,518

 

369,548

Net

 

229,808

 

229,609

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 January 31, 2023 is primarily due to the acquisitions of NetCHB, Foxtrot, XPS and Supply Vision offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.

Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be $229.8 million over the following periods: $49.4 million for 2024, $46.5 million for 2025, $42.3 million for 2026, $27.7 million for 2027, $20.6 million for 2028 and $43.3 million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.

Note 10 – Goodwill

Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January 31, 2021:

    

January 31,

    

January 31,

2023

2022

Balance at beginning of period

 

608,761

 

565,177

Acquisition of QuestaWeb

 

 

21,691

Acquisition of Portrix

 

 

15,032

Acquisition of GreenMile

 

 

12,968

Acquisition of NetCHB

 

26,797

 

Acquisition of Foxtrot

 

1,527

 

Acquisition of XPS

 

43,529

 

Acquisition of Supply Vision

 

6,763

 

Adjustments on account of foreign exchange

 

(11,730)

 

(6,107)

Balance at end of period

675,647

608,761

72

Note 11 - Accrued Liabilities

    

January 31,

    

January 31,

2023

2022

Accrued compensation and benefits

 

35,536

 

32,169

Accrued contingent acquisition consideration

30,949

12,990

Accrued professional fees

 

1,619

 

1,318

Other accrued liabilities

 

12,205

 

9,965

 

80,309

 

56,442

Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, and accrued restructuring charges.

Note 12 – Long-Term Debt

We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a $350.0 million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. On December 7, 2022, we amended our credit facility to extend the maturity date from January 2024 to December 2027. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the term. The total available amount under the facility of $350.0 million remains unchanged and with the approval of the lenders, the credit facility can be expanded to a total of $500.0 million. Borrowings under the credit facility are secured by a first 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, Canadian Dollar Offered Rate (CDOR) or the Secured Overnight Financing Rate (SOFR) plus an additional 0 to 250 basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. There were no other significant changes to the terms of the credit facility. A standby fee of between 20 to 40 basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.

No amounts were drawn on the credit facility as of January 31, 2023 and the balance of $350.0 million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2023.

As at January 31, 2023, we had outstanding letters of credit of approximately $0.2 million ($0.2 million as at January 31, 2022), which were not related to our credit facility.

Note 13 – Leases

We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to 6 years, some of which include options to extend the leases for up to 5 years.

The components of operating lease expense were as follows:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Operating lease cost

 

4,182

 

4,466

 

4,590

Short-term lease cost

 

636

 

432

 

502

Total operating lease cost

 

4,818

 

4,898

 

5,092

73

Supplemental cash flow information related to operating leases was as follows:

January 31,

January 31,

    

January 31,

Year Ended

2023

2022

2021

Operating cash outflows from operating leases included in measurement of lease liabilities

 

4,240

 

4,857

 

4,831

New ROU assets obtained in exchange for lease obligations

 

864

 

2,548

 

2,337

Supplemental information related to operating leases was as follows:

    

January 31,

    

January 31,

2023

2022

Weighted average remaining lease term (years)

 

2.6

 

3.3

Weighted average discount rate (%)

 

2.4

 

2.1

Maturities of operating lease liabilities were as follows as of January 31, 2023:

    

Operating

Years Ended January 31,

Leases

2024

 

3,569

2025

 

2,498

2026

 

994

2027

 

347

2028

 

120

2029 and thereafter

59

Total lease payments

 

7,587

Less: imputed interest

 

(267)

Total lease obligations

 

7,320

Current

 

3,397

Long-term

 

3,923

Note 14 - Commitments, Contingencies and Guarantees

Commitments

As described in Note 2 to these consolidated financial statements, we maintain deferred share unit (“DSU”) and cash-settled restricted share unit (“CRSU”) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of nil and $0.7 million, respectively, at January 31, 2023. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2023, we had equity derivatives for 281,768 Descartes common shares and a DSU liability for 283,338 Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.

Contingencies

We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.

74

Product Warranties

In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.

Business combination agreements

In respect of our acquisitions of GreenMile, NetCHB, XPS and Supply Vision, up to $148.0 million in cash may become payable if certain revenue performance targets are met in the two years following the acquisition. A balance of $30.9 million is accrued related to the fair value of this contingent consideration as at January 31, 2023.

Guarantees

In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, “Guarantees”. The following lists our significant guarantees:

Intellectual property indemnification obligations

We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.

Other indemnification agreements

In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.

In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.

Note 15 – Share Capital

On July 16, 2020, we filed a final short-form base shelf prospectus (the “2020 Base Shelf Prospectus”), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities,

75

subscription receipts and/ or warrants offered together as a unit. No securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July 2022.

On July 15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.

On June 7, 2022, Descartes announced a normal course issuer bid (“NCIB”), commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the “public float” (calculated in accordance with the rules of the TSX) of Descartes’ issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.

The following table sets forth the common shares outstanding (number of shares in thousands):

    

January 31,

    

January 31,

    

January 31,

(thousands of shares)

2023

2022

2021

Balance, beginning of year

 

84,756

 

84,494

 

84,156

Shares issued:

 

  

 

  

 

  

Stock options and share units exercised

 

64

 

262

 

338

Issuance of common shares

 

 

 

Acquisitions (Note 3)

 

 

 

Balance, end of year

 

84,820

 

84,756

 

84,494

Cash flows provided from stock options and share units exercised during 2023, 2022 and 2021 were approximately $1.7 million, $2.7 million and $6.2 million, respectively.

76

Note 16 - Earnings Per Share

The following table sets forth the computation of basic and diluted earnings per share (“EPS”) (number of shares in thousands):

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Net income for purposes of calculating basic and diluted earnings per share

 

102,236

 

86,282

 

52,100

Weighted average shares outstanding

 

84,791

 

84,591

 

84,360

Dilutive effect of employee stock options

 

455

 

482

 

358

Dilutive effect of restricted and performance share units

 

1,205

 

1,127

 

1,038

Weighted average common and common equivalent shares outstanding

 

86,451

 

86,200

 

85,756

Earnings per share

 

 

  

 

  

Basic

 

1.21

 

1.02

 

0.62

Diluted

 

1.18

 

1.00

 

0.61

For the years ended January 31, 2023, 2022 and 2021, the application of the treasury stock method excluded 589,658, 267,236 and 1,750 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.

For the years ended January 31, 2023, 2022 and 2021, 1,315, 1,000 and 71,161 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.

Additionally, for the years ended January 31, 2023, 2022 and 2021, the application of the treasury stock method excluded PSUs and RSUs of nil, nil and 43,002, 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.

Note 17 - Stock-Based Compensation Plans

Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Cost of revenues

 

940

 

732

 

319

Sales and marketing

 

2,468

 

3,060

 

896

Research and development

 

1,788

 

1,419

 

404

General and administrative

 

8,471

 

5,806

 

4,694

Effect on net income

 

13,667

 

11,017

 

6,313

Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for $0.8 million ($0.7 million at January 31, 2022) recognized in the United States. The tax benefit realized in connection with stock options exercised during 2023,2022 and 2021 was nominal, $0.1 million and nominal, respectively.

77

Stock Options

As of January 31, 2023, we had 1,593,433 stock options granted and outstanding under our shareholder-approved stock option plan and 2,703,675 remained available for grant.

As of January 31, 2023, $7.7 million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of 2.6 years. The total fair value of stock options vested during 2023 was $4.2 million. The total number of options granted during the years ended January 31, 2023,2022 and 2021 was 356,014, 271,025 and 381,859, respectively.

The weighted average grant-date fair value of options granted during the years ended January 31, 2023, 2022 and 2021 was $18.47, $16.77 and $10.19 per option, respectively.

The weighted-average assumptions were as follows:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Expected dividend yield (%)

 

 

Expected volatility (%)

 

29.2

 

27.8

26.4

Risk-free rate (%)

 

2.4

 

0.7

0.7

Expected option life (years)

 

5

 

5

5

A summary of option activity under all of our plans is presented as follows:

    

    

    

Weighted-

    

Number of

Weighted-

Average

Aggregate

Stock

Average

Remaining

Intrinsic

Options

Exercise

Contractual

Value

Outstanding

Price

Life (years)

(in millions)

Balance at January 31, 2021

1,147,720

$

33.77

4.9

$

28.1

Granted

271,025

$

65.03

Exercised

(90,166)

$

29.38

Forfeited

(9,300)

$

53.94

Balance at January 31, 2022

 

1,319,279

$

42.35

 

4.4

$

41.5

Granted

 

356,014

$

61.09

 

  

 

  

Exercised

 

(63,890)

$

27.34

 

  

 

  

Forfeited

 

(17,970)

$

52.98

 

  

 

  

Balance at January 31, 2023

 

1,593,433

$

45.54

 

4.1

$

45.7

Vested or expected to vest at January 31, 2023

 

1,593,433

$

45.54

 

4.1

$

45.7

Exercisable at January 31, 2023

 

1,104,612

$

40.35

 

3.5

$

37.4

The total intrinsic value of options exercised during the years ended January 31, 2023, 2022 and 2021 was approximately $2.5 million, $3.7 million and $10.8 million, respectively.

78

Options outstanding and options exercisable as at January 31, 2023 by range of exercise price are as follows:

Options Outstanding

    Options Exercisable

Weighted

Weighted

Average

Weighted

Average

Number of

Remaining

Average

Number of

Exercise

Stock

Contractual

Exercise

Stock

Range of Exercise Prices

    

Price

    

Options

    

Life (years)

    

Price

    

Options

$18.95$22.86

$

21.75

 

148,153

 

0.9

$

21.75

 

148,153

$26.24$27.85

$

27.85

 

166,350

 

2.2

$

27.85

 

166,350

$38.53$54.25

$

39.53

 

625,310

 

3.7

$

39.12

 

525,872

$56.31$68.49

$

61.19

 

653,620

 

5.7

$

61.11

 

264,237

$

45.54

 

1,593,433

 

4.1

$

40.35

 

1,104,612

A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January 31, 2023 is presented as follows:

    

    

Weighted-

Average 

Number of 

Grant-Date 

Stock Options 

Fair Value per 

Outstanding

Share

Balance at January 31, 2021

 

501,655

$

9.52

Granted

 

271,025

$

16.77

Vested

 

(300,527)

$

11.42

Forfeited

 

(9,300)

$

13.54

Balance at January 31, 2022

 

462,853

$

13.16

Granted

 

356,014

$

18.47

Vested

 

(313,186)

$

13.72

Forfeited

 

(16,860)

$

3.71

Balance at January 31, 2023

 

488,821

$

16.11

Performance Share Units

A summary of PSU activity is as follows:

    

    

Weighted-

    

Weighted-

    

Average

Average

Aggregate

Number of

Granted

Remaining

Intrinsic

PSUs

Date Fair

Contractual

Value

Outstanding

Value

Life (years)

(in millions)

Balance at January 31, 2021

 

755,873

$

25.17

 

4.7

$

44.0

Granted

 

77,441

$

88.11

 

  

 

  

Performance units issued

 

44,296

$

36.63

 

  

 

  

Exercised

(100,072)

$

9.66

Balance at January 31, 2022

 

777,538

$

35.76

 

4.8

$

57.4

Granted

97,991

$

64.98

Performance units issued

39,704

$

54.34

Exercised

Balance at January 31, 2023

915,233

$

38.41

4.5

$

67.9

Vested or expected to vest at January 31, 2023

 

915,233

$

38.41

 

4.5

$

67.9

Exercisable at January 31, 2023

 

654,467

$

26.77

 

3.1

$

48.6

79

The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2023) that would have been received by PSU holders if all PSUs had been vested on January 31, 2023.

As of January 31, 2023, $6.6 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.0 years. The total fair value of PSUs vested during 2023 was $5.2 million.

Restricted Share Units

A summary of RSU activity is as follows:

    

    

Weighted-

    

Weighted-

    

Aggregate

Average

Average

Intrinsic

Number of

Granted

Remaining

Value

RSUs

Date Fair

Contractual

(in

Outstanding

Value

Life (years)

 millions)

Balance at January 31, 2021

432,195

$

19.98

4.7

$

25.2

Granted

50,099

$

65.33

Exercised

(71,314)

$

7.14

Balance at January 31, 2022

 

410,980

$

29.17

 

5.0

$

30.3

Granted

 

63,651

$

61.53

 

  

 

  

Exercised

Balance at January 31, 2023

 

474,631

$

32.44

 

4.7

$

35.2

Vested or expected to vest at January 31, 2023

 

474,631

$

32.44

 

4.7

$

35.2

Exercisable at January 31, 2023

 

415,496

$

28.26

 

4.1

$

30.8

The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2023) that would have been received by RSU holders if all RSUs had been vested on January 31, 2023.

As of January 31, 2023, $3.5 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.7 years. The total fair value of RSUs vested during 2023 was $3.3 million.

Deferred Share Unit Plan

As at January 31, 2023, the total number of DSUs held by participating directors was 283,338 (252,011 at January 31, 2022), representing an aggregate accrued liability of $20.6 million ($18.3 million at January 31, 2022). During 2023, 31,327 DSUs were granted and nil DSUs were redeemed and settled in cash. As at January 31, 2023, the unrecognized aggregate liability for the unvested DSUs was nil (nil at January 31, 2022). 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 $3.2 million, $4.5 million and $4.6 million for the years ended January 31, 2023, 2022 and 2021, respectively.

80

Cash-Settled Restricted Share Unit Plan

A summary of activity under our CRSU plan is as follows:

    

    

Weighted-

Average

Number of

Remaining

CRSUs

Contractual

Outstanding

Life (years)

Balance at January 31, 2021

 

38,628

 

1.5

Granted

 

12,776

 

  

Vested and settled in cash

 

(26,755)

 

  

Forfeited

 

(221)

 

  

Balance at January 31, 2022

 

24,428

 

1.4

Granted

7,948

Vested and settled in cash

(17,719)

Forfeited

(74)

Balance at January 31, 2023

14,583

1.4

Non-vested at January 31, 2023

 

14,583

 

1.4

We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of $0.4 million at January 31, 2023 ($0.8 million at January 31, 2022). As at January 31, 2023, the unrecognized aggregate liability for the unvested CRSUs was $0.7 million ($1.0 million at January 31, 2022). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized in our consolidated statements of operations was approximately $0.8 million, $1.3 million and $1.1 million for the years ended January 31, 2023, 2022 and 2021, respectively.

81

Note 18 - Income Taxes

Income before income taxes is earned in the following tax jurisdictions:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Canada

 

49,158

 

36,312

 

31,307

United States

 

51,268

 

32,338

 

26,072

Other countries

 

33,302

 

33,960

 

12,990

 

133,728

 

102,610

 

70,369

Income tax expense is incurred in the following jurisdictions:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Current income tax expense

 

  

 

  

 

  

Canada

 

9,673

 

1,817

 

1,875

United States

 

13,085

 

8,689

 

(3,050)

Other countries

 

5,490

 

4,308

 

4,921

 

28,248

 

14,814

 

3,746

Deferred income tax expense (recovery)

 

  

 

  

 

  

Canada

 

5,059

 

8,381

 

7,047

United States

 

(1,888)

 

1,941

 

9,537

Other countries

 

73

 

(8,808)

 

(2,061)

 

3,244

 

1,514

 

14,523

 

31,492

 

16,328

 

18,269

Income tax expense for 2023, 2022 and 2021 was 24%, 16% and 26% of income before income taxes, respectively, with current income tax expense being 21%, 14% and 5% of income before income taxes, respectively.

Current income tax expense increased in 2023 compared to 2022 primarily due to the impact of the loss restriction rules in the UK and lower tax attributes available in Canada and US to deduct against income, in 2023.

Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.

Deferred income tax expense increased in 2023 compared to 2022 primarily due to a release in valuation allowances on tax losses carried forward in the comparative period, partially offset against a recovery of certain deferred tax attributes in the US recorded in 2023, as well as normal course changes in timing differences in Canada.

Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.

82

The components of the deferred income tax assets and liabilities are as follows:

    

January 31,

    

January 31,

2023

2022

Assets

 

  

 

  

Accrued liabilities not currently deductible

 

5,506

 

5,408

Accumulated net operating losses

 

7,577

 

10,594

Corporate minimum taxes

 

 

2,346

Difference between tax and accounting basis of property and equipment

 

7,400

 

12,021

Research and development expenditures and tax credits

 

3,339

 

1,172

Total deferred income tax assets

 

23,822

 

31,541

Liabilities

 

 

  

Difference between tax and accounting basis of intangible assets

 

(42,958)

 

(47,255)

Temporary difference on equity derivative

 

(3,077)

 

(2,886)

Total deferred income tax liabilities

 

(46,035)

 

(50,141)

Net deferred income taxes

 

(22,213)

 

(18,600)

Valuation allowance

 

(1,704)

 

(1,961)

Net deferred income taxes, net of valuation allowance

 

(23,917)

 

(20,561)

As at January 31, 2023, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $755.0 million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.

The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:

    

January 31,

    

January 31,

    

January 31,

 

Year Ended

2023

2022

2021

 

Income before income taxes

 

133,728

 

102,610

 

70,369

Combined basic Canadian statutory rates

 

26.5

%  

26.5

%  

26.5

%

Income tax expense based on the above rates

 

35,438

 

27,192

 

18,648

Increase (decrease) in income taxes resulting from:

 

  

 

  

 

  

Permanent differences

 

590

 

3,467

 

875

Effect of differences between Canadian and foreign tax rates

 

(1,859)

 

(1,855)

 

(600)

Effect of rate changes on current year timing differences

 

(219)

 

(1,085)

 

(1,063)

Adjustments relating to previous periods

 

(972)

 

(569)

 

(1,034)

Increase (decrease) in accruals for uncertain tax positions

 

(1,181)

 

(849)

 

1,289

Valuation allowance

 

(155)

 

(9,102)

 

254

Stock based compensation

 

 

 

100

Other, including foreign exchange

 

(150)

 

(871)

 

(200)

Income tax expense

 

31,492

 

16,328

 

18,269

83

We have income tax loss carry forwards which expire as follows:

United

Expiry year

    

Canada

    

States

    

EMEA

    

Asia Pacific

    

Total

2024

175

175

2025

 

 

 

 

63

 

63

2026

 

 

 

 

 

2027

 

 

279

 

34

 

449

 

762

2028

 

 

138

 

 

85

 

223

Thereafter

 

8,128

 

882

 

19,504

 

385

 

28,899

 

8,128

 

1,299

 

19,538

 

1,157

 

30,122

The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:

    

January 31,

    

January 31,

2023

2022

Liability, beginning of year

 

7,354

 

8,393

Gross increases – current period

 

640

 

333

Lapsing due to statutes of limitations

 

(1,874)

 

(1,372)

Liability, end of year

 

6,120

 

7,354

We have identified accruals of $6.1 million with respect to uncertain tax positions as at January 31, 2023. It is possible that these accruals for uncertain tax positions will not be required in which case up to $6.1 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 $1.9 million of the uncertain tax positions could decrease tax expense in the next 12 months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.

We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January 31, 2023 and January 31, 2022, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.

Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:

Years No Longer Subject to

    

Audit

Tax Jurisdiction

  

United States Federal

 

2019 and prior

Canada

 

2017 and prior

United Kingdom

 

2019 and prior

Sweden

 

2020 and prior

Norway

 

2016 and prior

Netherlands

 

2015 and prior

Belgium

 

2020 and prior

Germany

 

2017 and prior

Switzerland

 

2018 and prior

Brazil

 

2018 and prior

84

Note 19 – Contract Balances, Performance Obligations and Contract Costs

Deferred Revenue

The following table presents the changes in the deferred revenue balance as follows:

    

Deferred

Revenue

Balance at January 31, 2021

 

51,291

Recognition of previously deferred revenue

 

(38,065)

Deferral of revenue

 

45,234

Increases from business combinations, net

 

729

Effect of movements in foreign exchange

 

(489)

Balance at January 31, 2022

 

58,700

Recognition of previously deferred revenue

 

(48,253)

Deferral of revenue

 

57,605

Increases from business combinations, net

2,188

Effect of movements in foreign exchange

(841)

Balance at January 31, 2023

69,399

Current

67,784

Long-term

1,615

Performance Obligations

As of January 31, 2023, approximately $343.8 million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately 80% of these remaining performance obligations over the next 24 months with the balance recognized thereafter.

85

Contract Assets

The following table presents the changes in the contract assets balance as follows:

    

Contract

Assets

Balance at January 31, 2021

 

1,353

Transfers to trade receivables from contract assets

 

(730)

Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables

 

815

Effect of movements in foreign exchange

 

5

Balance at January 31, 2022

 

1,443

Transfers to trade receivables from contract assets

(824)

Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables

2,618

Effect of movements in foreign exchange

(15)

Balance at January 31, 2023

3,222

Contract Costs

Capitalized contract costs net of accumulated amortization is $18.4 million at January 31, 2023 ($16.6 million at January 31, 2022). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. The total contract cost amortization included in sales and marketing expenses was approximately $5.8 million, $4.7 million and $3.3 million for the years ended January 31, 2023, 2022 and 2021, respectively.

Note 20 - Other Charges

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.

The following tables shows the components of other charges as follows:

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Acquisition-related costs

 

2,560

 

1,292

 

1,694

Contingent consideration accretion and adjustments

 

2,804

 

5,070

 

(1,659)

Restructuring plans

 

77

 

66

 

2,300

 

5,441

 

6,428

 

2,335

86

Note 21 – Supplemental Cash Flow Information

The following tables presents the cash flow changes in operating asset and liabilities:

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Trade accounts receivable

 

151

 

(2,884)

 

143

Other accounts receivable

 

2,589

 

2,042

 

(7,098)

Prepaid expenses and other

 

(5,663)

 

(8,276)

 

(5,029)

Inventory

 

103

 

(498)

 

99

Accounts payable

 

(620)

 

2,336

 

(686)

Accrued liabilities

 

2,433

 

13,760

 

(999)

Income taxes payable

 

753

 

426

 

3,835

Operating leases

 

(95)

 

(259)

 

283

Deferred revenue

 

8,142

 

6,142

 

5,877

 

7,793

 

12,789

 

(3,575)

Note 22 - Segmented Information

We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in one reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Revenues

 

  

 

  

 

  

United States

 

307,102

 

242,086

 

211,232

Europe, Middle-East and Africa

 

126,942

 

128,990

 

94,163

Canada

 

34,547

 

36,116

 

29,388

Asia Pacific

 

17,423

 

17,498

 

13,881

 

486,014

 

424,690

 

348,664

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Revenues

 

  

 

  

 

  

License

 

8,385

 

5,060

 

5,054

Services

 

435,734

 

378,494

 

309,731

Professional services and other

 

41,895

 

41,136

 

33,879

 

486,014

 

424,690

 

348,664

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.

87

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.

    

January 31,

    

January 31,

2023

2022

Total long-lived assets

 

  

 

  

United States

 

138,007

 

102,649

Europe, Middle-East and Africa

 

32,921

 

43,922

Canada

 

63,414

 

84,943

Asia Pacific

 

6,900

 

8,912

 

241,242

 

240,426

Note 23 - Subsequent Event

On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (“GroundCloud”), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately $138.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $80.0 million based on GroundCloud achieving revenue-based targets over the first two years post-acquisition. The major classes of assets acquired include: current assets, intangible technology assets, intangible customer assets, as well as certain liabilities assumed. Due to the limited time since the acquisition date and the size of the transaction, the accounting for the business combination is not yet complete and the fair value of the acquired assets and liabilities has not been determined.

88

CORPORATE INFORMATION

Stock Exchange Information

Our common stock trades on the Toronto Stock Exchange under the symbol DSG and on The Nasdaq Stock Market under the symbol DSGX.

Transfer Agents

Computershare Investor Services Inc.

Computershare Trust Company

100 University Avenue

12039 West Alameda Parkway

Toronto, Ontario M5J 2Y1

Suite Z-2 Lakewood, Colorado

North America: (800) 663-9097

80228 USA

Phone: (416) 263-9200

Phone: (303) 262-0600

Independent Registered Public Accounting Firm

KPMG LLP

Vaughan Metropolitan Centre

100 New Park Place

Suite 1400

Vaughan, Ontario L4K 0J3

Phone: (416) 777-8500

Investor Inquiries

Investor Relations

The Descartes Systems Group Inc.

120 Randall Drive

Waterloo, Ontario N2V 1C6

Phone: (519) 746-8110 ext. 202358

Toll Free: (800) 419-8495

E-mail: investor@descartes.com

www.descartes.com

The Descartes Systems Group Inc.

Corporate Headquarters

120 Randall Drive

Waterloo, Ontario N2V 1C6

Canada

Phone: (519) 746-8110

(800) 419-8495

Fax:

(519) 747-0082

info@descartes.com

www.descartes.com

Graphic

EX-99.2 3 dsgx-20230131xex99d2.htm EXHIBIT 99.2

Exhibit 99.2

Graphic

DESCARTES ANNOUNCES FISCAL 2023 FOURTH QUARTER AND ANNUAL FINANCIAL RESULTS

Record Revenues, Annual Income from Operations and Net Income

WATERLOO, Ontario — March 1, 2023 — The Descartes Systems Group Inc. (TSX:DSG) (Nasdaq:DSGX) announced its financial results for its fiscal 2023 fourth quarter (Q4FY23) and year (FY23) ended January 31, 2023. All financial results referenced are in United States (US) currency and, unless otherwise indicated, are determined in accordance with US Generally Accepted Accounting Principles (GAAP).

“We continue to invest in our Global Logistics Network to help our customers manage the complete lifecycle of their shipments in an efficient and sustainable manner,” said Edward J. Ryan, Descartes’ CEO. “We invest both organically and through acquisitions consistent with customer feedback on how we can deliver more value to them. Our recent acquisition of GroundCloud reflects our customer-focused investment strategy, adding a road safety compliance platform to help fleets meet delivery commitments efficiently with worker and community safety at the forefront.”

FY23 Financial Results

As described in more detail below, key financial highlights for Descartes’ FY23 included:

Revenues of $486.0 million, up 14% from $424.7 million in the same period a year ago (FY22);
Revenues were comprised of services revenues of $435.7 million (90% of total revenues), professional services and other revenues of $41.9 million (8% of total revenues) and license revenues of $8.4 million (2% of total revenues). Services revenues were up 15% from $378.5 million in FY22;
Cash provided by operating activities of $192.4 million, up 9% from $176.1 million in FY22;
Income from operations of $130.4 million, up 26% from $103.4 million in FY22;
Net income of $102.2 million, up 18% from $86.3 million in FY22. Net income as a percentage of revenues was 21%, compared to 20% in FY22;
Earnings per share on a diluted basis of $1.18, up 18% from $1.00 in FY22; and
Adjusted EBITDA of $215.2 million, up 16% from $185.7 million in FY22. Adjusted EBITDA as a percentage of revenues was 44%, consistent with FY22.

1


Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues are non-GAAP financial measures provided as a complement to financial results presented in accordance with GAAP. We define Adjusted EBITDA as earnings before interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges and acquisition-related expenses). These items are considered by management to be outside Descartes’ ongoing operational results. We define Adjusted EBITDA as a percentage of revenues as the quotient, expressed as a percentage, from dividing Adjusted EBITDA for a period by revenues for the corresponding period. A reconciliation of Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income determined in accordance with GAAP is provided later in this release.

The following table summarizes Descartes’ results in the categories specified below over FY23 and FY22 (dollar amounts in millions):

    

FY23

    

FY22

 

Revenues

 

486.0

 

424.7

Services revenues

 

435.7

 

378.5

Gross margin

 

77

%  

76

%

Cash provided by operating activities

 

192.4

 

176.1

Income from operations

 

130.4

 

103.4

Net income

 

102.2

 

86.3

Net income as a % of revenues

 

21

%  

20

%

Earnings per diluted share

 

1.18

 

1.00

Adjusted EBITDA

 

215.2

 

185.7

Adjusted EBITDA as a % of revenues

 

44

%  

44

%

Q4FY23 Financial Results

As described in more detail below, key financial highlights for Q4FY23 included:

Revenues of $125.1 million, up 11% from $112.4 million in the fourth quarter of fiscal 2022 (Q4FY22) and up 3% from $121.5 million in the previous quarter (Q3FY23);
Revenues were comprised of services revenues of $113.4 million (91% of total revenues), professional services and other revenues of $10.0 million (8% of total revenues) and license revenues of $1.7 million (1% of total revenues). Services revenues were up 14% from $99.5 million in Q4FY22 and up 3% from $110.1 million in Q3FY23;
Cash provided by operating activities of $50.6 million, up 11% from $45.5 million in Q4FY22 and down from $50.9 million in Q3FY23;
Income from operations of $33.6 million, up 29% from $26.0 million in Q4FY22 and down from $34.8 million in Q3FY23;
Net income of $29.8 million, up 55% from $19.2 million in Q4FY22 and up 12% from $26.5 million in Q3FY23. Net income as a percentage of revenues was 24%, compared to 17% in Q4FY22 and 22% in Q3FY23;
Earnings per share on a diluted basis of $0.34, up 55% from $0.22 in Q4FY22 and up 10% from $0.31 in Q3FY23; and
Adjusted EBITDA of $55.4 million, up 11% from $50.1 million in Q4FY22 and up 2% from $54.5 million in Q3FY23. Adjusted EBITDA as a percentage of revenues was 44%, compared to 45% in both Q4FY22 and Q3FY23.

2


The following table summarizes Descartes’ results in the categories specified below over the past 5 fiscal quarters (unaudited; dollar amounts, other than per share amounts, in millions):

    

Q4

    

Q3

    

Q2

    

Q1

    

Q4

 

 

FY23

 

FY23

 

FY23

 

FY23

 

FY22

Revenues

 

125.1

 

121.5

 

123.0

 

116.4

 

112.4

Services revenues

 

113.4

 

110.1

 

109.4

 

102.8

 

99.5

Gross margin

 

77

%  

77

%  

77

%  

76

%  

76

%

Cash provided by operating activities

 

50.6

 

50.9

 

46.4

 

44.4

 

45.5

Income from operations

 

33.6

 

34.8

 

31.5

 

30.6

 

26.0

Net income

 

29.8

 

26.5

 

22.9

 

23.1

 

19.2

Net income as a % of revenues

 

24

%  

22

%  

19

%  

20

%  

17

%

Earnings per diluted share

 

0.34

 

0.31

 

0.27

 

0.27

 

0.22

Adjusted EBITDA

 

55.4

 

54.5

 

54.0

 

51.2

 

50.1

Adjusted EBITDA as a % of revenues

 

44

%  

45

%  

44

%  

44

%  

45

%

“We believe we have a solid platform for continued growth and acquisitions, with the experience and capital capacity to add more solutions for our growing community of shippers, carriers and logistics services providers,” said Allan Brett, Chief Financial Officer. “Our business continues to have good operating leverage as we grow our community and, while acquisitions can impact that operating leverage from time to time, we anticipate continuing to run in the range of 40-45% of Adjusted EBITDA as a percentage of revenues in fiscal 2024.”

Credit Facility

On December 7, 2022, we amended our senior secured revolving credit facility to extend the maturity date from January 2024 to December 2027. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the term. The total available amount under the facility of $350.0 million remains unchanged and with the approval of the lenders, the credit facility can be expanded to a total of $500.0 million.

Acquisition of Supply Vision

On January 5, 2023, Descartes acquired all of the shares of Trans-Soft, LLC, doing business as Supply Vision (“Supply Vision”), a provider of shipment management solutions for North American logistics services providers. The purchase price for the acquisition was approximately $12.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $3.0 million based on Supply Vision achieving revenue-based targets over the first two years post-acquisition.

Cash Position

At January 31, 2023, Descartes had $276.4 million in cash. Cash increased by $39.0 million in Q4FY23 and increased $63.0 million in FY23. The table set forth below provides a summary of cash flows for Q4FY23 and FY23 in millions of dollars:

    

Q4FY23

    

FY23

Cash provided by operating activities

 

50.6

 

192.4

Additions to property and equipment

 

(1.6)

 

(6.1)

Acquisitions of subsidiaries, net of cash acquired

 

(11.6)

 

(115.6)

Payment of debt issuance costs

 

(1.1)

 

(1.1)

Issuances of common shares, net of issuance costs

 

0.1

 

1.7

Payment of contingent consideration

 

 

(5.2)

Effect of foreign exchange rate on cash

 

2.6

 

(3.1)

Net change in cash

 

39.0

 

63.0

Cash, beginning of period

 

237.4

 

213.4

Cash, end of period

 

276.4

 

276.4

Acquisition of GroundCloud

On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing

3


business as GroundCloud (“GroundCloud”), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately $138.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $80.0 million based on GroundCloud achieving revenue-based targets over the first two years post-acquisition.

Conference Call

Descartes’ executive management team will hold a conference call to discuss the company’s financial results at 5:30 p.m. ET on Wednesday, March 1. Designated numbers are +1 416 764 8658 or +1 888 886 7786 for North America Toll-Free, using Passcode 28780842#.

The company will simultaneously conduct an audio webcast on the Descartes website at www.descartes.com/descartes/investor-relations. Phone conference dial-in or webcast login is required approximately 10 minutes beforehand.

Replays of the conference call will be available until March 8, 2023, by dialling +1 416 764 8692 or Toll-Free for North America using +1 877 674 7070 with Playback Passcode: 6167133#. An archived replay of the webcast will be available at www.descartes.com/descartes/investor-relations.

About Descartes

Descartes (Nasdaq: DSGX) (TSX:DSG) is the global leader in providing on-demand, software-as-a-service solutions focused on improving the productivity, performance and security of logistics-intensive businesses. Customers use our modular, software-as-a-service solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access global trade data; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in the world’s largest, collaborative multimodal logistics community. Our headquarters are in Waterloo, Ontario, Canada and we have offices and partners around the world. Learn more at www.descartes.com and connect with us on LinkedIn and Twitter.

# # #

Descartes Investor Contact:

Laurie McCauley +1-519-746-6114 x202358

investor@descartes.com

Safe Harbor Statement

This release may contain forward-looking information within the meaning of applicable securities laws ("forward-looking statements") that relates to Descartes’ expectations concerning future revenues and earnings, and our projections for any future reductions in expenses or growth in margins and generation of cash; our assessment of the current and future potential impact of the war in Ukraine and the COVID-19 pandemic on our business, results of operations and financial condition; continued growth and acquisitions including our assessment of any increased opportunity for our products and services as a result of trends in the logistics and supply chain industries; rate of profitable growth and Adjusted EBITDA margin operating range; demand for Descartes’ solutions; growth of Descartes’ Global Logistics Network (“GLN”); customer buying patterns; customer expectations of Descartes; development of the GLN and the benefits thereof to customers; and other matters. These forward-looking statements are based on certain assumptions including the following: global shipment volumes continuing at levels generally consistent with those experienced historically; the current war in Ukraine and the COVID-19 pandemic not having a material negative impact on shipment volumes or on the demand for the products and services of Descartes by its customers and the ability of those customers to continue to pay for those products and services; countries continuing to implement and enforce existing

4


and additional customs and security regulations relating to the provision of electronic information for imports and exports; countries continuing to implement and enforce existing and additional trade restrictions and sanctioned party lists with respect to doing business with certain countries, organizations, entities and individuals; Descartes’ continued operation of a secure and reliable business network; the stability of general economic and market conditions, currency exchange rates, and interest rates; equity and debt markets continuing to provide Descartes with access to capital; Descartes’ continued ability to identify and source attractive and executable business combination opportunities; Descartes’ ability to develop solutions that keep pace with the continuing changes in technology, and our continued compliance with third party intellectual property rights. These assumptions may prove to be inaccurate. Such forward-looking statements involve known and unknown risks, uncertainties and other factors that may cause the actual results, performance or achievements of Descartes, or developments in Descartes’ business or industry, to differ materially from the anticipated results, performance or achievements or developments expressed or implied by such forward-looking statements. Such factors include, but are not limited to, Descartes’ ability to successfully identify and execute on acquisitions and to integrate acquired businesses and assets, and to predict expenses associated with and revenues from acquisitions; the impact of network failures, information security breaches or other cyber-security threats; disruptions in the movement of freight and a decline in shipment volumes including as a result of contagious illness outbreaks; a deterioration of general economic conditions or instability in the financial markets accompanied by a decrease in spending by our customers; the ability to attract and retain key personnel and the ability to manage the departure of key personnel and the transition of our executive management team; changes in trade or transportation regulations that currently require customers to use services such as those offered by Descartes; changes in customer behaviour and expectations; Descartes’ ability to successfully design and develop enhancements to our products and solutions; departures of key customers; the impact of foreign currency exchange rates; Descartes’ ability to retain or obtain sufficient capital in addition to its debt facility to execute on its business strategy, including its acquisition strategy; disruptions in the movement of freight; the potential for future goodwill or intangible asset impairment as a result of other-than-temporary decreases in Descartes’ market capitalization; and other factors and assumptions discussed in the section entitled, "Certain Factors That May Affect Future Results" in documents filed with the Securities and Exchange Commission, the Ontario Securities Commission and other securities commissions across Canada, including Descartes’ most recently filed Management’s Discussion and Analysis. If any such risks actually occur, they could materially adversely affect our business, financial condition or results of operations. In that case, the trading price of our common shares could decline, perhaps materially. Readers are cautioned not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. Forward-looking statements are provided for the purpose of providing information about management’s current expectations and plans relating to the future. Readers are cautioned that such information may not be appropriate for other purposes. We do not undertake or accept any obligation or undertaking to release publicly any updates or revisions to any forward-looking statements to reflect any change in our expectations or any change in events, conditions or circumstances on which any such statement is based, except as required by law.

Reconciliation of Non-GAAP Financial Measures - Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues

We prepare and release quarterly unaudited and annual audited financial statements prepared in accordance with GAAP. We also disclose and discuss certain non-GAAP financial information, used to evaluate our performance, in this and other earnings releases and investor conference calls as a complement to results provided in accordance with GAAP. We believe that current shareholders and potential investors in our company use non-GAAP financial measures, such as Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues, in making investment decisions about our company and measuring our operational results.

5


The term “Adjusted EBITDA” refers to a financial measure that we define as earnings before certain charges that management considers to be non-operating expenses and which consist of interest, taxes, depreciation, amortization, stock-based compensation (for which we include related fees and taxes) and other charges (for which we include restructuring charges and acquisition-related expenses). Adjusted EBITDA as a percentage of revenues divides Adjusted EBITDA for a period by the revenues for the corresponding period and expresses the quotient as a percentage.

Management considers these non-operating expenses to be outside the scope of Descartes’ ongoing operations and the related expenses are not used by management to measure operations. Accordingly, these expenses are excluded from Adjusted EBITDA, which we reference to both measure our operations and as a basis of comparison of our operations from period-to-period. Management believes that investors and financial analysts measure our business on the same basis, and we are providing the Adjusted EBITDA financial metric to assist in this evaluation and to provide a higher level of transparency into how we measure our own business. However, Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues are non-GAAP financial measures and may not be comparable to similarly titled measures reported by other companies. Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues should not be construed as a substitute for net income determined in accordance with GAAP or other non-GAAP measures that may be used by other companies, such as EBITDA. The use of Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues does have limitations. In particular, we have completed seven acquisitions since the beginning of fiscal 2022 and may complete additional acquisitions in the future that will result in acquisition-related expenses and restructuring charges. As these acquisition-related expenses and restructuring charges may continue as we pursue our consolidation strategy, some investors may consider these charges and expenses as a recurring part of operations rather than expenses that are not part of operations.

The table below reconciles Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income reported in our audited Consolidated Statements of Operations for FY23 and FY22, which we believe is the most directly comparable GAAP measure.

(US dollars in millions)

    

FY23

    

FY22

 

Net income, as reported on Consolidated Statements of Operations

 

102.2

 

86.3

Adjustments to reconcile to Adjusted EBITDA:

 

  

 

  

Interest expense

 

1.2

 

1.1

Investment income

 

(4.5)

 

(0.3)

Income tax expense

 

31.5

 

16.3

Depreciation expense

 

5.2

 

5.1

Amortization of intangible assets

 

60.2

 

59.1

Stock-based compensation and related taxes

 

13.9

 

11.6

Other charges

 

5.5

 

6.5

Adjusted EBITDA

 

215.2

 

185.7

Revenues

 

486.0

 

424.7

Net income as % of revenues

 

21

%  

20

%

Adjusted EBITDA as % of revenues

 

44

%  

44

%

6


The table below reconciles Adjusted EBITDA and Adjusted EBITDA as a percentage of revenues to net income reported in our unaudited Consolidated Statements of Operations for Q4FY23, Q3FY23, Q2FY23, Q1FY23, and Q4FY22, which we believe is the most directly comparable GAAP measure.

(US dollars in millions)

    

Q4FY23

    

Q3FY23

    

Q2FY23

    

Q1FY23

    

Q4FY22

 

Net income, as reported on Consolidated Statements of Operations

 

29.8

 

26.5

 

22.9

 

23.1

 

19.2

Adjustments to reconcile to Adjusted EBITDA:

 

  

 

  

 

  

 

  

 

  

Interest expense

 

0.3

 

0.3

 

0.3

 

0.3

 

0.3

Investment income

 

(2.8)

 

(1.1)

 

(0.5)

 

(0.2)

 

(0.1)

Income tax expense

 

6.3

 

9.0

 

8.8

 

7.4

 

6.7

Depreciation expense

 

1.4

 

1.3

 

1.3

 

1.2

 

1.3

Amortization of intangible assets

 

14.3

 

14.7

 

16.1

 

15.1

 

15.0

Stock-based compensation and related taxes

 

3.6

 

3.6

 

3.8

 

2.9

 

2.9

Other charges

 

2.5

 

0.2

 

1.3

 

1.4

 

4.8

Adjusted EBITDA

 

55.4

 

54.5

 

54.0

 

51.2

 

50.1

Revenues

 

125.1

 

121.5

 

123.0

 

116.4

 

112.4

Net income as % of revenues

 

24

%  

22

%  

19

%  

20

%  

17

%

Adjusted EBITDA as % of revenues

 

44

%  

45

%  

44

%  

44

%  

45

%

7


THE DESCARTES SYSTEMS GROUP INC.

CONDENSED CONSOLIDATED BALANCE SHEETS

(US DOLLARS IN THOUSANDS; US GAAP)

    

January 31,

    

January 31,

2023

2022 

ASSETS

 

  

 

  

CURRENT ASSETS

 

  

 

  

Cash

 

276,385

 

213,437

Accounts receivable (net)

 

  

 

  

Trade

 

45,173

 

41,705

Other

 

11,658

 

14,075

Prepaid expenses and other

 

24,676

 

21,974

Inventory

 

759

 

868

 

358,651

 

292,059

OTHER LONG-TERM ASSETS

 

22,247

 

18,652

PROPERTY AND EQUIPMENT, NET

 

11,434

 

10,817

RIGHT-OF-USE ASSETS

 

6,774

 

10,571

DEFERRED INCOME TAXES

 

11,483

 

14,962

INTANGIBLE ASSETS, NET

 

229,808

 

229,609

GOODWILL

 

675,647

 

608,761

 

1,316,044

 

1,185,431

LIABILITIES AND SHAREHOLDERS’ EQUITY

 

  

 

  

CURRENT LIABILITIES

 

  

 

  

Accounts payable

 

10,569

 

10,566

Accrued liabilities

 

80,309

 

56,442

Lease obligations

 

3,397

 

4,029

Income taxes payable

 

7,536

 

5,616

Deferred revenue

 

67,784

 

56,780

 

169,595

 

133,433

LONG-TERM DEBT

 

 

LEASE OBLIGATIONS

 

3,923

 

7,382

DEFERRED REVENUE

 

1,615

 

1,920

INCOME TAXES PAYABLE

 

6,120

 

7,354

DEFERRED INCOME TAXES

 

35,400

 

35,523

 

216,653

 

185,612

SHAREHOLDERS’ EQUITY

 

  

 

  

Common shares – unlimited shares authorized; Shares issued and outstanding totaled 84,820,100 at January 31, 2023 (January 31, 2022 – 84,756,210)

 

538,448

 

536,297

Additional paid-in capital

 

486,551

 

473,303

Accumulated other comprehensive income (loss)

 

(30,456)

 

(12,393)

Retained earnings

 

104,848

 

2,612

 

1,099,391

 

999,819

 

1,316,044

 

1,185,431

8


THE DESCARTES SYSTEMS GROUP INC.

CONSOLIDATED STATEMENTS OF OPERATIONS

(US DOLLARS IN THOUSANDS, EXCEPT PER SHARE AND WEIGHTED AVERAGE SHARE AMOUNTS; US GAAP)

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

REVENUES

 

486,014

 

424,690

 

348,664

COST OF REVENUES

 

113,326

 

101,810

 

89,910

GROSS MARGIN

 

372,688

 

322,880

 

258,754

EXPENSES

 

  

 

  

 

  

Sales and marketing

 

56,573

 

46,895

 

38,785

Research and development

 

70,353

 

62,570

 

54,066

General and administrative

 

49,710

 

44,454

 

36,267

Other charges

 

5,441

 

6,428

 

2,335

Amortization of intangible assets

 

60,177

 

59,099

 

55,905

 

242,254

 

219,446

 

187,358

INCOME FROM OPERATIONS

 

130,434

 

103,434

 

71,396

INTEREST EXPENSE

 

(1,167)

 

(1,123)

 

(1,186)

INVESTMENT INCOME

 

4,461

 

299

 

159

INCOME BEFORE INCOME TAXES

 

133,728

 

102,610

 

70,369

INCOME TAX EXPENSE

 

  

 

  

 

  

Current

 

28,248

 

14,814

 

3,746

Deferred

 

3,244

 

1,514

 

14,523

 

31,492

 

16,328

 

18,269

NET INCOME

 

102,236

 

86,282

 

52,100

EARNINGS PER SHARE

 

  

 

  

 

  

Basic

 

1.21

 

1.02

 

0.62

Diluted

 

1.18

 

1.00

 

0.61

WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)

 

  

 

  

 

  

Basic

 

84,791

 

84,591

 

84,360

Diluted

 

86,451

 

86,200

 

85,756

9


THE DESCARTES SYSTEMS GROUP INC.

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(US DOLLARS IN THOUSANDS; US GAAP)

Year Ended

January 31,

January 31,

January 31,

2023

2022

2021

OPERATING ACTIVITIES

Net income

    

102,236

    

86,282

    

52,100

Adjustments to reconcile net income to cash provided by operating activities:

 

  

 

  

 

  

Depreciation

 

5,225

 

5,129

 

5,757

Amortization of intangible assets

 

60,177

 

59,099

 

55,905

Stock-based compensation expense

 

13,667

 

11,017

 

6,313

Other non-cash operating activities

 

53

 

308

 

207

Deferred tax expense

 

3,244

 

1,514

 

14,523

Changes in operating assets and liabilities:

 

7,793

 

12,789

 

(3,575)

Cash provided by operating activities

 

192,395

 

176,138

 

131,230

INVESTING ACTIVITIES

 

  

 

  

 

  

Additions to property and equipment

 

(6,071)

 

(4,829)

 

(3,759)

Acquisition of subsidiaries, net of cash acquired

 

(115,561)

 

(90,278)

 

(48,403)

Cash used in investing activities

 

(121,632)

 

(95,107)

 

(52,162)

FINANCING ACTIVITIES

 

  

 

  

 

  

Proceeds from borrowings on the credit facility

 

 

 

10,196

Credit facility and other debt repayments

 

 

(1,068)

 

(10,793)

Payment of debt issuance costs

 

(1,118)

 

(72)

 

(40)

Issuance of common shares for cash, net of issuance costs

 

1,730

 

2,656

 

6,194

Payment of contingent consideration

 

(5,215)

 

 

Cash (used in) provided by financing activities

 

(4,603)

 

1,516

 

5,557

Effect of foreign exchange rate changes on cash held

 

(3,212)

 

(2,771)

 

4,633

Increase in cash

 

62,948

 

79,776

 

89,258

Cash, beginning of year

 

213,437

 

133,661

 

44,403

Cash, end of year

 

276,385

 

213,437

 

133,661

10


EX-101.SCH 4 dsgx-20230131.xsd XBRL TAXONOMY EXTENSION SCHEMA 00100 - Statement - CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME link:presentationLink link:calculationLink link:definitionLink 00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - Trade Accounts Receivable (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - Other Receivables (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - Accrued Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 41302 - Disclosure - Leases - Components of operating lease expense (Details) link:presentationLink link:calculationLink link:definitionLink 41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)-Calc2 link:presentationLink link:calculationLink link:definitionLink 41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 42001 - Disclosure - Other Charges - Components of Other Charges (Details) link:presentationLink link:calculationLink link:definitionLink 42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 30203 - Disclosure - Basis of Presentation (Tables) link:presentationLink link:calculationLink link:definitionLink 31503 - Disclosure - Share Capital (Tables) link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - Basis of Presentation (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - Acquisitions (Details) link:presentationLink link:calculationLink link:definitionLink 40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details) link:presentationLink link:calculationLink link:definitionLink 40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - Fair Value Measurements (Details) link:presentationLink link:calculationLink link:definitionLink 40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details) link:presentationLink link:calculationLink link:definitionLink 40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - Long-term Debt (Details) link:presentationLink link:calculationLink link:definitionLink 41301 - Disclosure - Leases (Details) link:presentationLink link:calculationLink link:definitionLink 41401 - Disclosure - Commitments, Contingencies and Guarantees (Details) link:presentationLink link:calculationLink link:definitionLink 41501 - Disclosure - Share Capital (Details) link:presentationLink link:calculationLink link:definitionLink 41502 - Disclosure - Share Capital - Common Shares Outstanding (Details) link:presentationLink link:calculationLink link:definitionLink 41601 - Disclosure - Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details) link:presentationLink link:calculationLink link:definitionLink 41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details) link:presentationLink link:calculationLink link:definitionLink 41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details) link:presentationLink link:calculationLink link:definitionLink 41707 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details) link:presentationLink link:calculationLink link:definitionLink 41708 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details) link:presentationLink link:calculationLink link:definitionLink 41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details) link:presentationLink link:calculationLink link:definitionLink 41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details) link:presentationLink link:calculationLink link:definitionLink 41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details) link:presentationLink link:calculationLink link:definitionLink 41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details) link:presentationLink link:calculationLink link:definitionLink 41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details) link:presentationLink link:calculationLink link:definitionLink 41807 - Disclosure - Income Taxes - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details) link:presentationLink link:calculationLink link:definitionLink 41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs Default (Details) link:presentationLink link:calculationLink link:definitionLink 42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details) link:presentationLink link:calculationLink link:definitionLink 42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details) link:presentationLink link:calculationLink link:definitionLink 42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details) link:presentationLink link:calculationLink link:definitionLink 42301 - Disclosure - Subsequent Event (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document And Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals) link:presentationLink link:calculationLink link:definitionLink 00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals) link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - Description of the Business link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - Basis of Presentation link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - Acquisitions link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - Fair Value Measurements link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - Trade Accounts Receivable link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - Other Receivables link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - Inventory link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - Property and Equipment link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - Intangible Assets link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - Goodwill link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - Accrued Liabilities link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - Long-term Debt link:presentationLink link:calculationLink link:definitionLink 11301 - Disclosure - Leases link:presentationLink link:calculationLink link:definitionLink 11401 - Disclosure - Commitments, Contingencies and Guarantees link:presentationLink link:calculationLink link:definitionLink 11501 - Disclosure - Share Capital link:presentationLink link:calculationLink link:definitionLink 11601 - Disclosure - Earnings Per Share link:presentationLink link:calculationLink link:definitionLink 11701 - Disclosure - Stock-Based Compensation Plans link:presentationLink link:calculationLink link:definitionLink 11801 - Disclosure - Income Taxes link:presentationLink link:calculationLink link:definitionLink 11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs link:presentationLink link:calculationLink link:definitionLink 12001 - Disclosure - Other Charges link:presentationLink link:calculationLink link:definitionLink 12101 - Disclosure - Supplemental Cash Flow Information link:presentationLink link:calculationLink link:definitionLink 12201 - Disclosure - Segmented Information link:presentationLink link:calculationLink link:definitionLink 12301 - Disclosure - Subsequent Event link:presentationLink link:calculationLink link:definitionLink 20202 - Disclosure - Basis of Presentation (Policies) link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - Acquisitions (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - Fair Value Measurements (Tables) link:presentationLink link:calculationLink link:definitionLink 30503 - Disclosure - Trade Accounts Receivable (Tables) link:presentationLink link:calculationLink link:definitionLink 30603 - Disclosure - Other Receivables (Tables) link:presentationLink link:calculationLink link:definitionLink 30803 - Disclosure - Property and Equipment (Tables) link:presentationLink link:calculationLink link:definitionLink 30903 - Disclosure - Intangible Assets (Tables) link:presentationLink link:calculationLink link:definitionLink 31003 - Disclosure - Goodwill (Tables) link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - Accrued Liabilities (Tables) link:presentationLink link:calculationLink link:definitionLink 31303 - Disclosure - Leases (Tables) link:presentationLink link:calculationLink link:definitionLink 31603 - Disclosure - Earnings Per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 31703 - Disclosure - Stock-Based Compensation Plans (Tables) link:presentationLink link:calculationLink link:definitionLink 31803 - Disclosure - Income Taxes (Tables) link:presentationLink link:calculationLink link:definitionLink 31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables) link:presentationLink link:calculationLink link:definitionLink 32003 - Disclosure - Other Charges (Tables) link:presentationLink link:calculationLink link:definitionLink 32103 - Disclosure - Supplemental Cash Flow Information (Tables) link:presentationLink link:calculationLink link:definitionLink 32203 - Disclosure - Segmented Information (Tables) link:presentationLink link:calculationLink link:definitionLink 40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details) link:presentationLink link:calculationLink link:definitionLink 40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details) link:presentationLink link:calculationLink link:definitionLink 40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details) link:presentationLink link:calculationLink link:definitionLink 40602 - Disclosure - Other Receivables - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 40902 - Disclosure - Intangible Assets - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details) link:presentationLink link:calculationLink link:definitionLink 41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details) link:presentationLink link:calculationLink link:definitionLink 41709 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details) link:presentationLink link:calculationLink link:definitionLink 41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details) link:presentationLink link:calculationLink link:definitionLink 41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details) link:presentationLink link:calculationLink link:definitionLink 42204 - Disclosure - Segmented Information - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 5 dsgx-20230131_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE EX-101.DEF 6 dsgx-20230131_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE EX-101.LAB 7 dsgx-20230131_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE EX-101.PRE 8 dsgx-20230131_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE GRAPHIC 9 dsgx-20230131xex99d1001.jpg GRAPHIC begin 644 dsgx-20230131xex99d1001.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" "! H(# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BDS1F@!:*** "BBB@ M HHHH ***3- "T4F:,T +129I: "BBB@ HHHH **0L!U('UI ZGH0: '4444 M %%%% !1110 444FX9QGF@!:*3XG<)'%&H)9F8\ DD^E %JBO*?V<_P!H+1_VD_"6L^*/ M#T$D>A6NM7.E6=Q*?FNXX0G[_;CY0Y8D \XQGDD#U:@ HHHH **2C- "T4F: M6@ HHHH **** "BDS1F@!:*3-&: %HI,TM !1110 4444 %%)FC- "T4F:6@ M HHHH **** "BBFEU'\0_.@!U%(&!Z'-+0 44W>N<9&:-XQG(Q0 ZBD!S2T M%%%% !1110 5\I_\%(_CWXS_ &=/@!9>*? NHPZ9K,NO6UBTTUK'< PO%.S# M:X(SE%YZ\5]65\(_\%E?^33M-_[&FR_]$7- 'P,/^"KW[2!_YF^P_P#!':?_ M !%'_#UW]I'_ *&ZP_\ !':?_&ZY7_@G5\-O#/Q:_:N\*^&?%^CP:[H5U;WS M36-SNV.4M9'0G:0>& /7M7[$_P##O;]G;'_)*M%_[ZF_^.4 ?EIH?_!77]H3 M2+I);S4M!UN,')AOM'1%8>F8BA_6OJOX$_\ !9WPMXFO;?3/BAX8D\)RR,%. MLZ2[75F">[Q$>8@]QOKV?XA_\$J/V??&]E+'I_AJ\\(7C*0EYHFH2@J>Q\N4 MNA_*OS*_;$_X)W^-_P!E16UZ&<>+/ CR;%UNUA*26A)PJW,63LR< ."5)QR" M0* /W@\+>*]&\;Z!8ZYH&IVFLZ/?1B:VOK*42Q2H>ZL.#_2M:OY^_P!AG]MK M7_V4_'=O;7MS<:A\.]1F5=6TC)80YX-S /X9%ZD#AP,'G:1^^VAZU8^)-'L= M5TRZBOM.OH$N;:YA;*2Q.H9'4]P00?QH O4444 >'_MK_%#Q#\&/V8?''C+P MI=QV.OZ7! ]K<2P+,J%KF)&RC @_*[#D5^1!_P""K_[2&2!XOL/_ 1VG_Q% M?J9_P4J_Y,D^)_\ U[6O_I9!7XC_ +*WA;2?&_[27PVT#7;&/4M'U+7[2UN[ M.;.R:)I &4X(."/0T >V?\/7?VD?^ANL?_!':?\ QNC_ (>N_M(_]#=8?^". MT_\ C=?J_P#\.]OV=O\ HE6B_P#?4W_QRC_AWM^SM_T2K1?^^IO_ (Y0!^?7 M[)W_ 4<^._Q5_:,\ >$O$?B:SN]#U;5([6[@32+:)GC(8D!U0$=.HK]C%.5 M!]J\0\'?L2_ _P >*--\1>'OASI.EZWILPGM+R$R[X9!T89!@4 M+1110 A.!7YS_M=_\%;=)^%VO:AX1^%6G6?BO6K-F@N==O6+:?!(,ADB5"#, M5/5MRKD<%J]X_P""DOQ?U+X-_LF^*=0T:=[35]6>+1;:YC;:T7GDB1E/9O*6 M3!'0D'M7X;? CX1ZA\>OC!X6\!:9<)9W6MW@M_M,B[E@C +22$=]J*QQWQCO M0!ZYXJ_X*1?M%>++QYY/B/?:;&3\MOI-O#:QI[#:FX_B35?0/^"BW[1?AR[2 M>'XG:I=!3DQZA#!'D,NQE/'"FOU5T# M7+3Q-H6G:O8.\EC?V\=U \D;1LT;J&4E6 93@C@@$=Z_-;PI_P $<;7P?^T/ MX&BMWVC9(C-C&]NM)^#OAV&:W0E!X MA\01M^\_VHK8$$#T,ASZH*^-_%/_ 4,_:'\67DEQ<_%#6+(,3^%?A\)"L=S'&&N]2*G#" -PJ Y!E;(R M, -@X_4;P)_P3M_9]\!:?%;6_P -],U>5!\UWKNZ^ED/J?,)4'_=4#VH _&O M0/V_OVA?#ETEQ;?%37KAE.=E_(EVA]BLJL*^K?@/_P %GO$^EW]MI_Q7\-VN MN::S!7U?0H_L]W&,C+-"3YOBO\ 8"_9]\864MM=_"S0;3S 1YNE M0M92+[AH2IS7Q_XY_P""+6FM\3]!N_"7BV5/ DUZIU?3]3YO;: 99A!*HQ(6 MQM&X*5W Y;% 'Z.?#7XD^'OB[X'TGQ=X5OQJ>@ZI%YUKLSPWXZ?\%._V[Q\']#N?A;X%U#'C?4X,:GJ%N_S:3;./NJ1TGD4 M\=T4[N"5-?C"S%B23DF@#]QO^"/7/[(A_P"QAOO_ $&*ON&OA[_@CU_R:'_W M,-]_Z##7W#0 4E+10!^6_P#P45_;L^,/[//[0Y\*>"?$%KINB?V1:W?D3:9! M.WF.9-QW.I/\(XKY@_X>O?M(G_F;[#_P1VG_ ,;K>_X+"?\ )WI_[%^Q_G+7 ML'_!*+]F7X7_ !R^$GC'4_'?@W3_ !+?V>N"V@N+LR;HX_L\;;1M8<9)/XT M>!+_ ,%7OVD0P)\6V# =CH=K@_\ CE>J?"/_ (+/?$30=6@A^(7AS2/$^C,P M$L^EQ&RO4'%?H/-_P3P_9TGC*-\*]' /=))U/YB3-?FC_ M ,%-/V&_#O[,UUH'B_P()[;PGK5P]E-IEQ*TWV*Y"[UV.V6*.H;AB2"AY(( M /V#^#WQB\*?'?P%IWC#P;J::IHUZ" V-LD,@^_%*G5'4]5/L1D$$]M7XJ_\ M$=_C7?\ A#X_7GP_EN6;0_%=G*Z6[-\J7D"&1) .Q,8D4^OR^@K]JJ "J.MW M,EEHU]<0G;+%!)(A(S@A21Q]15ZH[BWCNH)(94#Q2*4=3T((P10!^#K_ /!5 MS]I%6(_X2ZPX/_0#M/\ XBD_X>N_M(_]#=8_^".T_P#C=?J__P .]OV=O^B5 M:+^_:0!P?%]A_X([3_ .(I M?^'KW[2/_0W6'_@CM/\ XW7GW[>W@'P_\,/VL_'WAGPMI<&BZ#82VJVUC;YV M1!K2%VQDD\LS'KWK[V_X)I_LE?"'XQ?LQ6?B'QEX$TW7]:?5;R!KVY,F\HC* M%7Y7 P,^E 'R5_P]=_:1_P"ANL/_ 1VG_QNOLW_ ()C?MD_%7]I;XD^+](\ M?:W;:I8:=I"7=O'#I\-L5D,ZH3F-03P3P:^DO^'>W[.W_1*M%_[ZF_\ CE=S M\*/V9?A?\#=5O=2\">#;#PU?7L(M[B>T,FZ2,,&"GIZ;-+[ _\ <#M/_B*/^'KO[2/_ $-U MA_X([3_XW7HG_!)7X _#WXZZM\2HO'OA:R\31Z;!8-:"\+_N2[3A\;6'7:O7 MTK]&_P#AWM^SM_T2K1?^^IO_ (Y0!^4'_#UW]I'_ *&ZP_\ !':?_&Z^^O\ M@EW^U3\1_P!INP^(DOQ U>WU5M'DL5L_(L8K;8)1.7SY:C=G8O7ICWKV7_AW MM^SM_P!$JT7_ +ZF_P#CE>B_"3]GWX>? E-33P%X5LO#*ZF8S>"S+_OC'NV9 MW,>F]NGJ: /0Z*** "LCQ;XMT?P)X:U+Q!K^HV^DZ-IT+7%W>W3[8X8U'))_ MH.22 .36O7Y>_P#!:SXP:CIFB^!_AM8SO!8ZF9=8U)4;'G+&P2!#ZJ&,C8]5 M4]J .-_:(_X++>(M1U6ZTOX/Z+:Z3I4;%%UW6H?.NI\$_/'!G9&#VW[SCJ%Z M5\IZI_P4&_:(UBZ:>;XIZW$S'.VU\JW0?140"MG]@#]D*#]K?XJWMAK%_-IW MA70K=+W4WM"!/-N?;'#&2"%+$,2Q!P%.!DBOU_T#_@GS^SUX=TN.Q@^%NB72 M(H4S:@KW4S>Y>1B))+2/[+X;GMD9"BR ^=/(C?,/%*:3)H,FOMI"ZJPM#.EY%$%\O'^KVL04S@YKYE_X7[\1W_9YU M?PNOB[4/^$UO[.Z\667B)64W%OHD2SRSX;& 4GM_LP)'2XCK]%?L-O\ ;!=^ M1%]J$?E"?8-X3.=N[KC(!Q5,>&=(6+RQI=D(_(:UV"W3'DL2O0F@ M"71)WN=&L9I&W2201LS'N2H)J]354(H50%4# Z"G4 %%%% !1110 5\(_\ M!97_ )-.TW_L:;+_ -$7-?=U?"/_ 65_P"33M-_[&FR_P#1%S0!\ _\$I?^ M3VO!?_7KJ/\ Z1RU^]8Z5^"G_!*7_D]KP7_UZZC_ .DY0U^J'_ 1^^,ES\0/V=+[PGJ$[3WG@ MZ_\ LL+.V3]CF!DA'_ 6$JCT"J.U?,'_ 6QTZUA^.'@2\C55NY_#K1RD=2J M7,FS/_?35N_\$0+N9?''Q3M@3]G?3K&5AVW"64#]&- 'ZY4444 ?,G_!2K_D MR3XG_P#7M:_^ED%?BY^Q9_R=K\)/^QFLO_1HK]H_^"E7_)DGQ/\ ^O:U_P#2 MR"OP$\/>(M3\):_8ZSHM]/IFK6$ZW%K>6SE)89%.5=6'0@]Z /ZE12U_.-_P MVQ\>_P#HKGBW_P &LG^-'_#;'Q[_ .BN>+?_ :R?XT ?T MJ?&#]DSQ)9Z+;O>:IHTT.MPVL:EGF6'=YJJ!U/EO(0.Y7%?AM\%_BMJWP-^* MGAOQUHBQ2ZEHEV+F.*?/ES+@J\;8YPR,RDCD9S7].)&1@U^9W[;7_!*)/&^J M:CXW^#:VVG:K<%I[WPK*PBM[B0G+/;.>(V)_Y9MA<]"O2@#ZQ_9?_;:^&W[4 MNCP_V!J::7XF2/==^&M0<+=PD#DIVF3_ &TSQC(4\5] 9K^8#Q)X6\7?![QB MVGZSI^J^$O$NG2!Q'.CVUS"P/#J>#VR&4X/8U]N?LQ_\%=/'7PXDL]&^*$#^ M/?#RD)_:2E4U2W7UW<+/CT?#'^_0!^TE%<+\'/C=X,^/?@ZW\3>"-?XU?&+Q+\>?B/J_C3Q7>F\U;49-VU_X(]?\ )H?_ ',-]_Z##7W#0 44 M44 ?AM_P6$_Y.]/_ &+]C_.6OJ__ ((E_P#)#O'O_8QK_P"DL5?*'_!83_D[ MT_\ 8OV/\Y:\J_9I_;K^(W[*OA?5=!\&6^AS66I7HOIFU2S>9Q)Y:I\I61<# M"CC% ']#U?FQ_P %K_'^F6GPL\#>#!/&^L7VKMJOD Y=+>*%X]Y'8,\H ]=K M>E?+FJ?\%@?C]?VCPP/X8TR1A@7%MI)9U/J!)(R_F#7S1=7/Q,_:J^*'G3'6 M/'WC75&5!M4S2D#@ ?+'&O_ %5'I0![M_P2H\&7GBK]LOPK>V\;FVT.UO- M2NG4<(GD-$N?J\J#\:_>H# KY2_X)_?L6P_LF?#RYFUB2&]\>:\$DU6XA.Z M.V1AH _GW_P""F7_)[_Q._P"N M]G_Z0V]?IG_P2'_Y,\L/^PW?_P#H:U^9G_!3+_D]_P")W_7>S_\ 2&WK],_^ M"0__ "9Y8?\ 8;O_ /T-: /M:BBB@ HHHH *_(#_ (+<_P#)4OAM_P!@:Y_] M*!7Z_P!?D!_P6Y_Y*E\-O^P-<_\ I0* -S_@AW_R'/BY_P!>^F?^A7%?K'7\ MQGPU^-'COX/RW\G@CQ9JWA9[]46Z;2[IH#,$SM#8ZXW-CZFNZ_X;8^/?_17/ M%O\ X-9/\: /Z.:*_G7\-_MH_':Z\0Z7#-\6O%CPR742NK:H^"I< @\^E?T3 M+TH =1110 5^6W_!:[X1:IJ%EX%^)%G \^FV"2Z-J#(I/D;W$D#'T4GS%SZE M1W%?J36/XN\(Z-X\\-:EX?\ $&G6^KZ+J,#6]W972;HY8VZ@C]01R" 1@B@# M\ ?V%?VO)OV1/BG<:O=:>^K^&=8@6SU:S@($P16W)+$3P70D_*>&#,,@X(_= MCX.?';P-\>_"T7B#P/XAM-,O@QXM75 MO#&LZGX5U^SS\/?& MNPCM'N+UX+_Z]=1_](Y: M_>L=*_!3_@E*0/VV?!>>/]%U'_TCEK]Z@ZX^\/SH =2'I1N&,YKXB_;Y_P"" MA7AWX"^$=3\)^"M6M]7^)=[&UNHLY!*FC@C!FE89 D /R1]&8(] AD1LJSQ%FG(_[:R.O_ :^Q/\ @B=\-YM+ M^'7C_P ;W$+(FL:A!IML[<;DMT9G(]MTP'U4U^6/PV^'GB/XU?$32/"OAZVD MU3Q!K5T(8@Q)RS'+R2-V51EF8] ":_HZ^ ?P>TKX"?"'PQX#T?#VFCVBQ//M MP;B8DM+*?=W9F]L@=J /0:*** /F3_@I5_R9)\3_ /KVM?\ TL@K\5/V/=-M M-8_:G^%=E?VL%]97'B.SCFMKF-9(Y$,HRK*P((/H:_:O_@I5_P F2?$__KVM M?_2R"OQ<_8LX_:U^$G_8S67_ *-% '] O_"B_AO_ -$^\*_^"6V_^(I?^%%_ M#;_HGWA7_P $MM_\17;!U_O#\Z-Z_P!X?G0!GZ!X;TGPIIRZ?HNEV6CV*LSB MUL+=((@Q.20J #)/6M*F[U]1^=.H **** "BN-^+_P 6/#WP/^'.M^-?%-T; M71M)@,TNP R2MG"11@D;G=B%49ZGL.:Q/@9^T?\ #_\ :+\,)K7@?7X-30*# M<6+$)=VC'^&:$_,I[9Y4]B10!;^,?P!\ _'WP\=&\=^&;+7K8 ^3+,NVXMB1 M]Z*5>^:_(S]N7_ ()CZA^SQH=YXY\":A<^(_ \#;KVUNU!O=,4M@.S M* )8\D L "N1D$9-?MH&![BO&/VR/'.@> OV8?B3J'B*>&.RGT.[L(HI6'^D M3S1-'%$H/5F9AP.P)Z T ?AW^Q3^TCJW[-/QVT+6[>[E7P_?7$=CKEEN/EW% MJ[!68KTW1YWJ>H(QT)!_HJ1@Z@@@@\@CH:_EFT?2[G7-8LM.LHVEN[N:.WAC M09+.S!5 ]R2*_J-T.S?3M'L;61M\D$$<3-ZE5 )_2@"]1110!^??_!9WP%-X M@_9X\.^)8$+_ /"/ZXOGD#[D-Q&T9/\ W\6(?C7YN_L#_%2V^#W[6/P_UV_F M6WTR6].FWDK\*D5RAAW,>P5G5C["OWR^,OPOTOXT_"[Q-X(UD?\ $NUNRDM' M<#)B8\I(/='"L/=17\WGQ:^%OB#X)_$77/!OB:T:SUC2;EH)1@[9%ZI*A[HZ MX93W!% '].PZ4M?G=_P3U_X*0:#X_P#"^E?#SXFZQ#H_C.PB2UL=7OY D&K1 MJ J!I#PLX& 0V-^ 0H:A M:V,EY,MM;+AZ7 UQV^FV<]U=S1VUK C2RS3.%2- M ,LS$\ DDU^%W_ 49_;CN/VEO&K>%O"]W)'\-=$G/V?:2O]J7 R#K8X,KX!=O7 M '"BO!J** "BBB@#]Q_^"/7_ ":'_P!S#??^@PU]PU\/?\$>O^30_P#N8;[_ M -!AK[AH **** /PV_X+"?\ )WI_[%^Q_G+7H7_!,3]C;X5?M)_"SQ9K/C[0 M9]6U&PUH6=O+%?S6X6+R$?&(V /S,3DUY[_P6$_Y.]/_ &+]C_.6OJ__ ((E M_P#)#O'O_8QK_P"DL5 'Q1_P41_8T'[*_P 2[>\\.V\Y^'VO OIDDCM(;690 M/-MG<\DC[RD\E3W*FOI+_@CY^U!I&GSW?P[T/45A2.2Z/+2VL MC@ NPY=-Q)QO7LHK]$/VD?@-H?[2/PBUSP/KJB-+R/S+2\V[GL[IOBQ>Z1?^=H7B[PSJ Q+"Q#131L&CEC;N#\KJW<$'O0 M!_3C17SW^Q'^U/I_[5?P9LM>+10>*-/VV>NV*8'E7('^L4?\\Y -Z^GS+U4U M]"4 %%%% !2'H:6D/0T ?S[_ /!3+_D]_P")W_7>S_\ 2&WK],_^"0__ "9Y M8?\ 8;O_ /T-:_,S_@IE_P GO_$[_KO9_P#I#;U^F?\ P2'_ .3/+#_L-W__ M *&M 'VM1110 4444 %?D!_P6Y_Y*E\-O^P-<_\ I0*_7^OR _X+<_\ )4OA MM_V!KG_TH% #O^",'@CP[XSUGXJKX@T#2]=6WM].,(U.RCN!&2UQG;O4XS@9 MQZ"OU%_X47\-O^B?>%?_ 2VW_Q%?FG_ ,$/"!KGQPD9KP/\ :+_8A^%/[3-M--XGT%;+Q 4VQ^(=)Q!>H<8&Y@,2@>D@;VQ7 MK_@OQWX>^(WAVTU[PQK-EKNCW2[X;VPF66-AZ9'0CN#@CN*W=P]10!_//^V7 M^Q1XI_9"\56L=[XO9W'1(DMI=Q/L20O\ P(4 ?T$T4BC"@>U+0 4444 %%%% M!1110 5\(_\ !97_ )-.TSD#_BJ;+K_UPN:^[JR/$WA'0_&FGK8>(=%T[7;% M9!*+74[6.YB#@$!MK@C(!//7DT ?S(> _'_B3X8>);;Q#X4UF[T#6[976&^L M9=DJ!U*L ?=20?K7JG_# M35IA&P]"JL ?QJY\&/V2OBQ^T#JL,'A+PAJ%U:R,/,U:[B:WLH@>K-.X"GUP M,L>P-?T)Z7\%_A_HDZSZ=X&\-:?,O(DM='MXV'XJ@-=A'$D2*B*%51@*!@#Z M"@#Y;_8E_8/\-?LDZ'-?S31^(/'NH1".^UHQX2%.I@MP>5CSC+'YG(!. !] M3T44 %%%% 'S)_P4K_Y,D^)_;_1K7K_U^05^ WAOQ'JO@[Q#8:YHE]-IFK:? M.MS:WEL^V2&13E64]B#7]0NN:#IGB?2I],UC3K35M-N !-9WT"S0R $$!D8$ M'D \CJ*X[_AGSX7?]$V\(?\ @AM?_C= 'X&_\-S?'_\ Z*SXG_\ [_ZU'_# MX164C' M(()'XU^_R]#]:X>S^!'PUT^[@NK7X>>%+:Y@=98IH=$MD>-U.596"9!! ((K MN: %HHHH ^(/^"GO[,OQ5_:+\#:(O@+48+[2]%>2ZNO"Q/E37LV"%E20G:[( MI($;8^\Q!)(%?B^1XR^#7C%USK/@SQ/8/M8 RV5W <]/X6'2OZ?JY'X@?"#P M1\5;,6OC#PGH_B6$#"C4[*.=D'^RS#*_@10!^#.C_P#!1C]HS1+,6L'Q.U.: M,# :\M[>XD'_ -XRQ_$FO+/BE\=?B+\==0MY_''BS5?$\T1_<0WDQ,<1/7R MXEPBD_[*BOW0O?\ @FW^SA?7/GO\,+&-R//3'*$DCJ0?IVB M@#^;/XZ_LJ_$[]G+6)+/QKX8NK.TW;8=6MU,UA<#L4F4;>?[K88=P*7X>?M; M?&7X4V267A;XBZ_IEC&,1V?VHSP(/18Y-RC\!7](=_I]KJEG+:WEO%=VLJ[9 M(9T#HX]"IR"/K7B7BG]AKX"^,[N2YU3X5^'3-( M-+*[BO+27=-?SQR(X=&R2=H#*#G@5^YVD?\ !/7]G;0[A9K;X5:,[J<@7;S7 M*_\ ?,DC#]*]M\*^"?#W@;3A8>'-#TW0;$8Q;:9:1V\?_?* "@";PKJ%]J_A MC2;[4]/?2=2N;2*:ZL)&#-;2L@+QD@D$JQ(R#VK4)P,T=!7P7_P4M_;H;X): M!)\-? EYN^(6LPA;JZMSE])MG'!&.D\@/R#JH.[KMR >$_\ !4W]N\:_<:A\ M&/ &H9TV%C%XEU2V?BXD!YLT8?P*1^\(ZGY.@;/YA=:^J_@G_P $V/CC\=RQ8,K>N=H!SUK[:^&7_ 14\#Z3'#-XY\;: MOXAN<9>VTF)+&#/IN;>[#W^6@#\>L$]J,9K^@_PI_P $W/V=?"4*+#\-[+49 M5ZS:KH **** /PW_X+!C/[7K8Q_R+]CW]Y:^K MO^")G'P.\>_]C&O_ *2Q5]W^)/A-X(\8ZE_:&O\ @[P_KE_L$?VK4M+@N)=@ MZ+O=2<#)XSWK0\+>"/#O@>UFM?#F@Z7H%M,_FRPZ79QVR.^,;F"* 3@ 9/I0 M!MU^>/\ P5C_ &0/^%E^!_\ A;'A>RW^)_#EOMU6"!/FO=/7)+X'5X8A^=3Z@CHQK^AKPMXGTOQIX@"_1110 4AZ&EI* /Y^/^"F(W?MO_ !.QC_7V M??\ Z<;>OTR_X)$?\F>6'_8;O^G^^M?4NN?!KP#XGU6?4]9\#^&]6U*X(,UY M?:1;S328 W.R$G ')Z 5N^'/"VC>#]-&G:#I%AHE@':06FFVR6\08]3L0 M9/1 M0[L M3#3[IX-Y'&)$!PWT8&O96_X*1?M(-8&T/Q-OMI&/,%E:B3'^_P"5G\:_<'XC M?LQ_"GXMW#7'B[X?Z!K=X^2UY/9*MP?K*F'_ %KS2+_@FO\ LW177GCX8V9; M.=C7]X4_[Y,V* /PAU'4_''QU\7&M>-_%FI.(TWF2\NYCV51R<#/ ' K M]D_^":?[#%[^S5X?O?&?C6&-/'VN6X@%DK!_[,M,AC$6'!D=@I;' "JH/7/U M;\./@?X ^$-NT/@OP=HOAH,,/)IUFD\EG8Y9HQC;",] @R!@9.*]]HH 3 %+110 4444 %%%% !1110 4444 % M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44 M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111 M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 % M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44 M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111 M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 % J%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '__9 end GRAPHIC 10 dsgx-20230131xex99d1002.jpg GRAPHIC begin 644 dsgx-20230131xex99d1002.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" "3!#H# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]/?%'BC3O M!VC3:IJDWV>SB(#N1G&3@5PG_#2G@'(_XG2X(SG8:9^TT,_!W6.OWHNG^^*^ M'SD(&X#=\]^/_P!= 'W'_P -*> /^@TH_P" '\?RH_X:4\ =]:4>OR'\:^', M8P1R#T/'.#CK^7YTG&!SQV/'% 'W)_PTIX _Z#2Y]-AZ^GYG? P>W^%+C#8 .?3C/'_UL?6@#[C_ .&E/ '?6E'K M\A_&C_AI3P!_T&ESZ;#U]/RYKX;'3KP/XACCO_C1Z<8SVXY!]/QS0!]R?\-* M> .VM*?3Y#^%'_#2G@#_ *#2G_@!_#\Z^&\9)&/J../\F@GC=Z .^M*/^ '\?RH_P"&E/ ZZTH_P" &OAL M#CZ<;AC@C_ZV?K1Z<8)Z#CGZ?K0!]R?\-*> >VM*3Z;#_GI1_P -*> #TUI2 M.WR'GT_.OAO&^!SV/]* /N3_AI3P!_T&EQ_N&C_AI3 MP!_T&E_[X/X_E7PYC#8(/J1QGW_2D' Z_=XW#&,C_)^M 'W)_P -*> .^M*/ M7Y#^-'_#2G@'_H-+GTV'KZ?ES7PW@Y&!R>@X^HQ1C.0.1^'&>F?QQ0!]R?\ M#2G@#MK2GT^0_A1_PTIX _Z#2_\ ?!_"OALGC=Z]\#FEZ-@@^I&.1V/]: /N M/_AI3P!_T&E_[X/XT?\ #2G@#OK2CU^0_C7PV.!S_#QNXQD?Y/UHP01@ .VM*?3Y#^%?#> <@=!].,]/Z4 M9R ?7V'- 'W)_P -*> .VM*1_N'\/SH_X:4\ ?\ 0:7'^X:^&_XL$$]R, .VMJ?3Y M#^'YU\-]0">AX[<@T8Y((/J1CD=C_6@#[D_X:4\ ?]!I?^^#1_PTIX [ZTH_ MX ?Q_*OAO.!GT[X&*,$$ [CT'&>.G]/K0!]R?\ #2G@ ==:4?\ #2G]I/P M 2=;7@9^X>G/^%?#0 / .0/3&0.OXTW:ISD8'3/X'- 'W.?VD_A^I.=<3@X M^XW^%!_:4\ 8R-;4_P# #7POT )^4GGZ9]O\]J2087GKZ&@#[G_X:6^'_;6T M/7^ ^V/YTH_:6^'_ /T'$'_ &_PKX2HH ^ZS^TS\/1D'7$!';8WO[?YS1_PT MU\//^@\G_?#?X5\)9() PQQGKCZ4N3DC;].: /NS_AIKX>8S_;J'_@#?X4G_ M TW\//^@ZG_ 'PW^%?"#CS"5/!QCCMD?RIC'.3\W(SW]\=J /O(?M-_#S_H M.H/^ -_A2_\ #3/P\_Z#J8'4[&]?I]/SKX,;D-\Q&?[W'&.M1LV[<">O.">O M^>!0!]Z_\-.?#SOKJ#_@!_PH_P"&G?AWS_Q/H_\ O@_X?3\Z^"@< '<=I]Z3 M=GMZ9/3'^N0!_/]* /OS_ (:@^'>#_P 3U/\ O@TG_#4/PZ_Z#J?]\&O@ M/.X9'?G^O_LP_P BF9!.?Z>QQ_6@#[_'[47PZ/37DQZ[#1_PU%\.CTUV/'^Z M:^ ..>"HQD\<]S_+CZK]:C9%^;*J#@DC% 'Z!_\ #47P[_Z#L?Y&F_\ #4GP MY_Z#T?7'0U^?Q1!ZCG\ORS3-FXCIR!GCU'- 'Z"?\-2?#G_H/1]<= M#UH_X:D^'.0/[=3)]5/O_A7Y\E=XP.<@_C_GBHY0#A@/O#/IQ_G H _0C_AJ M?X<@X_MQ<^FPT?\ #5'PX_Z#J8]=I],U^>FQ< X![\GIZ4@12I.T.%(R>"*"BX.WY@#D\ M?K0!^AH_:J^'!&?[=3'^X:7_ (:G^'.?VJOAPH!.NH/\ @!I/^&K/AN.NO(/^ &OSP8\'. !UW4TDX_A!/'/<]J / MT0_X:N^&W_0>3_ODTG_#5_PV_P"@\G_?!K\[7_OVU?G%O/J?SI,X(&.^!V],?GC_.* /T>_X:W^&?_0?7_OVU M)_PUQ\,L_P#(?7T_U9K\X-W Y&,#Z>E,YSD9SGM]0,C]* /TB_X:X^&1_P"8 M^O\ WP:/^&N?AC_T,"?]\&OS;&!P/7 V]!_G &?K3&&XDCICTZ4 ?I*?VO/A M@#@^(4SQ_ :3_AK[X7_]#"G_ 'P:_-G;@\@@YW<\=^_YX_"F@$ #!' [9/M0 M!^E'_#7WPN/_ #,2=,_]!_:^^%X_YF%/^^#7YKR@#]+1^V#\+?\ H8T'''[MN?TI3^V#\*Q_S,L??'[MN?TK M\SL=>O/'6AAN7!Y'2@#],/\ AL'X5_\ 0R)GT\MO\*#^V%\*\9'B2,]/^6;? MX5^9VT$G@\'.:80H*X&#T!/MV_+- 'Z9?\-B?"S_ *&./_OAO\*/^&Q/A9_T M,WK^1X_P YJ+8G M&55?J.E 'Z@G]L?X5 9_X22,_1&H_P"&R/A3_P!#+'U_YYM^?2OR^"H 3M & M#SCD8&?Y _D:-H7($: \@T ?J O[9/PH8X_X2:,<@']VW'OTI!^V5\*#_P S M+&#T(\MN/TK\O67.W^?SIN1MRJ@J>1D=? M_KY!_*@#]1C^V=\)Q_S,L?\ WPW^% _;.^$Y./\ A)8^W\#?X5^7#8.3M7I^ M!_R::Z@ GY1G^+![\ _C_B: /U(_X;0^$^/^1EC_ ._;?X4#]L_X3G_F94]O MW;<_I[U^6I'!.T+C/'.![4S(Q]X*1T/UZ'\.: /U+/[:GPD! /B>+GI\C?X4 MG_#:OPDQG_A)XN#@_(W^%?EG@#G'4>W[MN?TH/[:GPD[>*(B/^N;?X5^6. O!'(&2N<-<<',;=?RI/^&UOA%@8\4Q=,_ZMO\ "ORN(*D@C!'8 MTA.!DT ?JD?VUOA&#@^)X@?^N;?X4G_#:_PC_P"AHC_[]M_A7Y6!B!T+8SGL M.>WU( MX[T ?J]_PV]\(?\ H9T_[]-_A2?\-P?!\?\ ,TQ_]^V_PK\H"!DY7;SGKTZ< M?K^E1D ^H]_\_C0!^L?_ W!\'_^AIC_ ._;?X4']N'X/J.?%,?_ '[;_"OR M<(^;(Z>GY]?R_4^E1R@*O&>X'Y?_ %J /UF'[*8^1G_5M_A[BC_AN M+X/''_%4Q\\#]VW^%?DR5PY')))&/H3_ #.!325QQGM_4T ?K2?VX?@^/^9I MC_[]M_A3/^&YO@Y_T-47_?MO\/>OR7959.ZD@@^P '^'ZTFTY).<\D]QV/\ M*@#]M/AA\7/"_P 8='N=3\*ZBNI6=O-Y$DBJ1M? ..?8BNRKXY_X)D8_X5)X MDQT_M<_^BUK[&H \K_:;('P=UC/]^+_T,5\01\!<=..V.X_SUK[@_::_Y([K M/^]%_P"ABOAZ/&$Z9X_I0 B\1KSC(P>G3)_P]_K2DMP,MDYZGGOW_P#K4B_Z MM<#)_K\U* #@#ITX_P ^] "'&&Y^49] .GT]3^'ZTIZ]S[@?RXX]:3)+=.3S M@?I]#QR>P]3[\<\^OI2X&..G;..,^F>* #=TW<\9[^G7'O29!^AYP,8 Y]NW/Y^U! 9>N1C^ MAI2_/'H!_.CIDC.I- /.?F..XZ^O''%'WB&XR1Q^.30!NX) MZ]<]>HH ,;3CJ>F!WQ@<\>HSS_6@@8SSC_:QC'MQ0#@#TP#[?Y^7_.*,8)Y^ M8]\'Z4 &[^]D]QW[9)QG')_E29!_G@8P/TQ0PW*<].OZ$_UIQ^\>>_'!Q_G MF@!,8(Y*GU;J/3''J*!C&0"!CIQC\>/0#^= ^4$C/J<9SZ_ATHV@$9(.#@?H M* $ SQRW;@9'X#'UI21U)//O\Q[\\>AQ02<'DYP>H/IZ48 ^4?=R1Q]3W_'_ M #F@ Q^'U V_RH!'4;N.XZ^O!QQC _R:.^[C.,C^=& >">.,@]>H'X=/UH , M8.WKVP/RYXH/3)SC_:P./;CW_K1G@>F/PHV\G!Y/7 .>XZ?C0 9/\1/<@=? M,@_P">U "$;>Y'NWWO3T]O MZ48R.A QTX _'BD4;5XZ=\?0'^E+@$C)'H/Y4 '7CD]L@9_ #'^\?_U4$]\G M)[9Y/?GCW[TA)(//)!/.?3_Z_P"E+@#@?=&>GU]: #'IQSQN VC\,>U YP1N M]CU/YX[OI^'2@ XS@_D/3WX^M!Z G(]=P ] M^../O?UH/3KQC\/\\T$/7 .>I% .?[WO@=?KQ0./?'I@@'&?3V'Y'UI M&YQ^8R?\^M! ZXXYP2?;_P#5^5 "MRP[X..N>V/?T%-;AF;C[V><]-8X9B 21\W([_ .B^O'U/ZTJC!P1DXX:@!B#)VG*@<@#_ .M4 M9P3T R,_+R#GGT]JD&-WIZX['-,(W'!&6_KS0 'I@]<\]/S[=_K498[_ *YS MC.?T^I'I].E28Z=3P.>G<5$>ON5!_P ,?GB@!6R W&<W]/Y5$QV@\XP,_ED_T_2@!@Y48[@>W9?\1_D"FY&?KD=< M^O\ G_ZU/QMXZ8X_I_[+^E,&1@N#G.>N/H?KW]?;-)@8 M)QVZ#''/(_SZ]*5^"W&" Q_EC\NE#?*3VP2!^5 #3DMC^/L<]\?ACL<\=#UJ M*0_,I'0GCY?IVH %;'1F49/ YH8Y4]^G M)Z]/Y?\ UJ5?0%L9P".!2$_*#PV.#GM_G% #**** (V.7X*Y^[[CUI0"0< C M/&X=?J:&/)!8?3UI!R>.H_(>HH 8K;I <]<-@MZC_P"M].:8^,$#'T'X_I^% M/3E\@,1Z_@/Y\4V0Y!Y^M "/QNZ ^P&>W3\!G_.*;C.05''!'& /R'\_2GN# MN8XR.GM_#Q4;<(2!D>I'^?\ )H 10"5SSD@$?7_$?Y'6D!) ).3CG/U_S_\ M6Z4$8SQG!QCU_P _TH/7J">Y[$X_D: $'5<\X.?3 SDU @P%SVQ_)/\ _E4 MQ&0/?KZ\@_\ UORJ(<^W^?\ Z_Z#VH ;CY<=\?TI#RQP<98\_4D9_0$?3Z4^ MF9P>N" ,GT&>GTR ,$M-<#)'8]/^Z,9 .#VSVH 91110 P']YR #T' MJ:8#AB2=H(W$XQ_GCK^%2 _,<9([^U,'S.2.#@]LXZ=: (WX?(&"3GC&?Z_I M2.,E@5W YQZ]>W/';G/Y4YLDC R,9]CSFF'&.#R.>.<=,?RH 3H3DC.3T '< M^A'J>.>U ZYZ]\#G\>_I_P#JHSP1G;@XQG_/J/RI#C'(QZ_E_P#KH ;MPN", M@?*<>Q_^O_ACFHAD\9 S]!S4I')SC.,'\#C'YW(Z?5?\_@/7F/H5XQQG@_[(_/V_#\7YV\GH.3_G\#_D4PCY@IZ@C_/YB@!' M& ,=<\'/^??GM49Y3 /8G].,_@3QG\Q@4^3.P],_SZ?_ *J:>1P>.N?J!S^F M* $#848( !//&?PQQ^%(E'(A.,@]#SGI0!M\S (()P< M>V?Z"@!@V[N ,9)XY ]^1TH(!5N@^7&3SC_/K0.I'WL=AZ=J7/R/W(SUY]* M&L1N;H0>/F]?\ )HW8 MR>,@=C@$^E!.!PN: &'&TC (QP&4$9_R:8V &VX.#G/7';K]!W]>M/) M."?0=![4TD[0H) &0/Y4 -[J.@/&?YT (?O-TSD^AYR3_C_G-,'4$<\\?F/_ *W^>CSD G&. MIX_+^A_.F-R6'7.?QZ_X_K0 B\ 8]L?^._X#]?P:_&.<<>O:GMR3WZ_S;_'] M?:FR>?K_\ 6H 0<+D\<]CC\<\XQT'^).G_( M7/3_ *YK7V-0!Y9^TU_R1W6?]Z+_ -#%?#\9R$'TXS]/?^GX5]P?M,_\D=UG M_>B_]#%?#Z9"KGV'/X4 -0X0?[OJ/4GIG_/I0PPI'! XZ\C\QQ0N1P>.@Z=O MI]1^M Y4<#&._P!* %4X) .X_P!T#K\P]\9^F>WX)@#ID@'J./;T_K^-*6(0 MGH>^3GO^O\-'0-VQU[@4 ^4L1P0 1CZ'G_.?KWI!@$8SM(/!^GZ]?\ ZU+C MG'"YXP?R_K29RHZ@X /KT% #N3(,]KX M'!R.@]Z.!MP,'J,#CU^O/?/3I0%RP0CT&,]C@=Q_GM1C'H"!S_ )_" MD'R@J#CW/3K_ /JH $)8;L;B>O//7G/'O1@$$9.,?T^GM0>@SQV"MVY/^%+@ M9.,8/']* DDL?X@2#@\]SGIG_\ 5[TF/E/&5ZY!Z?I0#\H [8X_#H/S-+U8 M G.?7MQ0 *"3_M*W3L#D>@SW]OZ4@(VANW&<'\/2AAE2.,'G\< _TI2V3QG@ MXQSGK_\ JH I^48'48/49R?;]/:D7[@89.!W^GM].]!.,YP2!G)'/J/Y?K2 ME<''4*>!^)_QH 0CC@@;N <\?CQ0PXZ8XXSD\;1[>G\Q2AB>03T]\CB@ $D< M8!"Y]>W]?TH #P-W4'J3_P#6&.](PQQVQG&>N#S@XZ\#GV_"CT)[#DBEY8D9 MQGOZC'KG'/'M@?Y[4@(89X&3D8%*#L;=U M/'3UYQ^H% N2P]1@XSCJ.W'3GH/_KTG3GE?\<9YX'Y4#A>ORC!SV(^GX#\J M4#(&, X[=.AH "-IVXZ@)H M)RO/';!Z4 *H!;;DX.,8[\D'M[GUQ_)!SP?O #O[>XI2<$GCW!^H./\ ]=(/ ME&S/3UZ&@ '*GT/4YSC@]>.W/]* -V1SZ@?AD=L]NO>E)( 8\]#ANV.:&3;E M1TZ']10 AY#''(ZX//\ +WI<$CINR2G7U_']: %&!TZ9XQD]?Q/\ D=ZC(&3N(';D=/RY_P ]*>>G/KW_ IC M?+G/3&.<]NU "J2< 9/ Y!Y].F>O]*:QS'U[+W^OO3CGC))(ZY]<O.*$X;G[V.<]3[T$X9CG&.3]*5![\5(!EC\W48SW[_K498/EO7!X[$B@ Y! #']/Y>PJ,9+ KG\/3]. MI]<.<]1')!PP7W';M MG\-V?H!4MQZ\G^>>F349^\2>>>??DWX9Q_P&FGH3C ]# MQCC_ .N/S-.' '5(.3P.OX__ *J .[^#P\$'Q5*/'Q<:+]F; M84\\DRY&.(ANZ;O;KGG@?2?@7X5? KXEM=?\([92Z@;7:90TU[%MST^^5S^% M?&. HY P..G7!S^7_P 3[U]4?L.9$GB@'L(N_P!: +_BKPA^SMX+UVYT;68I MK34;?;YL*M?R;=R@CYDR#D,.A[U\VR^"M0\5:YKF82?I]G3/\Z]D_8=4MX?\ %X[F> ?C ML>@#Y*@L+F[U)+&&WDFO)9A"EM&A,CN6P$"\$DY(P/4#O5SQ'X/UWPQ<6T.L M:-?:7-<#]TMY T+2,."5W#GDCIGJ/I7T!X5_9>\=Z1\3-(UN>VLA8VVL0WDC M+=*6\I9P[''SG'(YSBOF?\ :,U;XKQ>";:W\(L M?V#ES*%9@#\QXP#0!\V #:/A_XI^%6C:YK>BR37T]N7N)O MM_LZ_$&Y M_LW0KHI?OP@^U74,A/\ LB;AC^!KR'X__LZ7?P>>'4;*Z;4O#]S)Y:RR "6% M^H5P.#D=&'IT'?QRSNI;">&X@=H9H6#HX/*L.0<^U?H?\58D\4?LW:U-J(R[ M:+]L);J)$02*?^^E% 'P5H/P\\4>*K1[O1O#VJ:K:*YC:>SLI)4# [=RC&1 MD''O5]_@WX\12S^"]?"+R2VFRX&.=Q^6OK/]C4W8^"&KFR"&\_M.X\@/]TOY M,6W/XU7U_6?V@]+T#4KV^M/#2V5O;233F/EA&J$MCY^N : /BC3M,O-5O([6 MSM9;VYI)X]J /@Z1"CN&7:ZGE3U!W=#Z,]5L M%NK'PGK-W;NN5F@T^1U88[$ BOH/]G3PMIWQ:^.?C/Q=J>GLL%EE:7QF_;!USPGX\OM"\.6%FMIILODS37:%S*P R 1M Z M?A0!\DZKI5[HUY):ZA:3V5RA8-#<1F-UP,\@X(Y^GU'2M3P]\/\ Q/XLMI+K M1/#^J:M;Q.$>6QM))55L9*DJ.O0XX^@ZUVOQT^-P^-$NAWLFF#3;VQ@9)R'R MCG.05/7&,]:^N/A.FG_ 7X->$;?55%O>:M<1>>&^5A-.0><]U7 /^Z: /SYU M'3KK1[VXL[^VEL[N E)8)D*.C=P0>A^O\N:V=$^%_C#Q)IT6H:5X6UC4K&4L M$N;2QEEC8@X;#!2#@AA_/G=7M'[;'@/_ (1[XBPZY#$([36(=[,!@"9>'^IQ MM/XU[A^SQ>ZO8?LFV]WH%O\ :M;BAOY+.!EW;YA<2E5QD9Y[9H ^*=5^%?C/ M0K)[S4O"FLV%JG+3W-A+&B_4E:I^'? 'B?Q;;RW&A^']4UB"%_+DDL;1YE1L M X)4'&-H..OS#KW_ $0^"GB#X@^(='U.3XC:-::4JG$0"!-R8^;\5^+;#P5_9IT*[U::>+S[M '##X)?$+:!_P M@_B$=LC3)L?^@UFW?PS\6V.KV>E77AG5[;4[X,+>TDLI%FF !)**1D@<]/3G M -??GC+XLZ[H7[.EEXVMA:C6Y;.WG;9-<11_9(C&,-;RL<@D\]* /'C\$_B&3G_A!O$/K@:7-VZ8^3\N^. MQKG?$?A+6_!]W#;:[I-]HUQ(H=4OK=X69)8AX M"MM#ET3[,F]M1/[WSMS;OXAQMV?K7S=KX\1>(OVF/!&G?%R#2?D^0Q6IQ R% M7:,-\Q!R^!COTH \$TGX6>,_$5BEYI?A/6-0M7'RSVFGRR(>1T(7'K^77I69 MK_A;6?"MVL&LZ3>Z5.W(2]@>%CS_ +6/Z_6OTI^+,O"4OA[5(+OSTN8VW03*!CY3 MZT ?,YY8#Z#!Z=C]?7D9KZ_^$O['WANR\#P^+OB3J+QV\EN+HV:R^1#!"0"/ M,?AL\] 1CIS7R"CF/#J<$$-UXX _Q-?I+\-/BUX&^.OPY@T?4[JT-Q/:I;7^ ME7,GE,6 .WD$@D9&* /*-+\$?LL^++QM,T[4([:\9@BO+?7<&6SP%:8A&S[ M9KQ#XS? &Y\)?%"Z\,>"K+5_$<$=G'>$0P?:)45R1SY:_=X')'>OI7Q3^P=X M)UF.271-1O\ 1Y7)91N$\0] <''XFOG"6?Q;^RW\;].?6+N6_-FB('\UF2X MLB2-JYZ#@X7L10!Y#KOA[5/#&H/8:QIUUI=\@!:VO(6BD /0E6 -:M[\,O%^ MFZ)_;-WX7U>UTGRUE^W36,BP[&QM;>1C!R,'/>OOSXC?!#0/VA-7\$^,K:>, MV*%);K'_ "]6_P!Y4..^[Y3[$UXA^VA\9(-<\36/P_TV=1H^FRHVI-$?E>7C M$?'9!U'K_NT ?,_AWP+XC\7F1M#T'4M76/Y6-E:R2X/_ $&G>(/AUXJ\**D MNM^'-5TJ(L0LE[9R1*3CU91S[>E?I;JNFZYH7PNTN#X2V^C@K"C0K=Y\IT(! MR,$98]R37@WQ=^,'Q-T+X;^(=!^(?@I$M]1M&M(M9TPAH%E;&-P.<#K^.* / MEN/X(?$*YBCFB\"^(98G0.LBZ9,0X/(/"X.>#UIY^!?Q&&0/ ?B,\C _LJ?' M7(_@^GZ^E?1_[.?[57C?QK\1?#OA/4ETP:2Z>2?*MBLNU%PO.\^@[5U/[5'[ M3?C'X._$"UT?0%TXV3V2W#?:K,O$,=RVD^%=:U) M;29K:X; (0RN@8X]MS&K&H:I^TW:_:IELO"8MHM M[AB>=@RN# MP>M96M:'J/AO4I;#5K"XTR_A.9+6[B:.1.,C"?$.CQ_:-.U.86>IS10_L*:1I$7P=U#4=&CM7\42SRQS2SCYEP!Y2DCD)SGCKS0!\67OP5^ M(%E;O/>>"?$%M !EY9=-F55'0DDKZ,?RKB9-VX[E*MW4^O4C'U8C_)K]&-0^ M(G[0?@2\FN]:\':3XDT=),LNCL1(L8(RP&22<9P"*^!?B#KB^*/'_B764MY+ M5-2U*ZO%MY>'B#RN^QO<;L'W!H B\'^#=6^('B?3_#^B6QNM3O9 D29PHQR6 M8]E &2?\G[_S?^@C]:T/VYHM2\;?'SP=X-6[\BSF MLH/LXD!\M)9IY$9R!R?N)_WR: .M\.?!G]F/XO-)I?A'5&MM4(;8(;VXCGXZ ME8[C[P^@(KY*^('PHO\ PW\5M8\#Z)'=>([VTN'MX$MK8M-/A"V0B[CD*#^& M?3CZ(LO^"=_C'3KN"YMO&>EP7$$@DCEC2970CD$'&0:YOX0:1K7A_P#;CTO3 M_$&J#6M8@N[I+F^5<>>_V.3Y@,#Z?A0!XR_P"^)?EG_BWWB7)S@?V3/GZ<)_ MA7*:SXP_"OTO^+/C/XT:1\5M/T[P M5X;M=3\*/%"TUW<0\!RS>8-^\8P O:O-_P#@HLVE'P!X5-RMN/$)OOD4?ZSR M/+8RC_=W>7U[].] 'PKX>\+ZSXLNA9Z+I%YK%T1N\BQ@>1N/]E1_+UK:U[X3 M^-?"MFUYK/A/7-*M%X,UY82PH/\ @14 =_6OT#N)-,_8Y_9LM]0T_2X;O6O) M@2:0C#7%S)C)=L9VJ2<#L!7(_LP?M=ZQ\9?&<_A#Q?INGM]L@D>"6VC(1L=8 MG0DYRI//M0!\&:#XFZ+IMUJNHS!VCMK*!I7D !)VHH)X )Z<>V*= MXD\+ZQX/U(Z=KVE7NC7P59#:7L+0R;3T;#<\_2OM#PQ\+M/^%'[?^DZ=I,:P M:5?6-QJ-M;KTA5[>960>P='Q[$5Y5^W^?^,@K@8_YAMKS^#4 >)WGPS\7:?X M:7Q%<^&-7M] :-)5U26RD6V*.0$;S"NW#%E .>X-JT"W(; M<'0QOG@ +SWW5^%KCQ) MXBT2?3]&MR@DN/MU]+@NP5?D1V8Y9@.!_*OS/;!4G';G@<@U^I'[<7'[+NO\ MX_>6/_I1%0!^>'B[PI9^+_BCKFG?"[2K_6]%\UI-/MK&VGEE,("Y;:X+X!)Y M8"N:\4>!O$/@2\@MO$6A:CH<\JB2*/4;5X&=1D94.!D$\9!QV]C[]_P3V '[ M0L7 &-*NAQ_P"OK#]IWX<:7^T7\/?$%CI!1_&'A"Z?R #AU\U'P+XAL+:-=SS7&ES(B\9.25P /7V]LUQ#+@E>?3G@^G] M?\]_L/P__P %)/&4/B!YM:T'2[O19''^B6H9)8EYR Y)#GCN!7R9XCU./6O$ M&J:A'&8HKNZEN%C.,J&],DZ#/3VH 0C#'UXS@?I^')]L#/LT_*H)&TYQGD ?Y.>.*'Y#9QNQ@X M'4=?\_2ANK<<[N,^_P#G% #54\"D!< Y. >,Y_+MUK[ MA_::_P"2.ZQ_O1?^ABOAT8"C'7&.F#_GF@!5Y8;03@ 8ZXR<]O\ ZW6D7&,9 MX&.ASC^F:7@[/XN1[CN._P!!1NP03D],9_#I0 !L(3]W!QD8/=?IG_/UH(.5 M!!!/;!'KV^OM0HXQG)Z=>F0?TY'_ ->D'*IP #S@=.] "\,=N?EZ$>V!Z9^O MX4??W^OYTF,A0.2!TQD#('.* % )]<]A MSUQ]/ITI"03CJ/89(QZX/H?TQ0PW#C'IR,@>O^<4NK$$@GG(ZTO0X[ [BOKC^?4]: #:V.X[ M=<>_M0IRX.0<=_3YA[\?I0O&,D9''TQ_G]:.6*\DQ_SFG @$G/3\GK]._I1D\D\<=2.>GK_]>@!%/#$' ML!G/^R?\]?PHSDX'*]QG_P"N?UIV3N#$G/(&H+8X/)^G^S2YX;T+'OUY^O]30N0.I!..5&#U'^!_P \T*3G/<@=">GX M_P">* $!R>" !T8G&./Q]/K0I "\X!Q^/'U'O0QZD9.01[]#^-*25XSSWP,9 MZ]N/6@!,@1KGIC.,X_PH).&)8<$C=GKS^(/7M3AQD9/7G&>#_DTF2M*O?ZX[T@/5ATQUQ[GTSBE4G(;Z <PX (X MP=W;TIJ^@7L,^_'M0 JXY"GD<\8)QQS2;@#G. #V(_QYY/7VI0,GYL')'&3C MJ/6A68JA+,2>^>>2>_X4 (@/T_\ K4K?*2"?4')'KZ'OQ[=J0C"D M#N,9IW);Y25[#!(/7^62#T[4 )G"YZ9/'(]OI_GTIF, YSC R ,\>OZT\$?P M\ YQVSC\J8PV@YP#ZD?7_/M0 O*X^O\ > _$'OWICL"F,Y';!Z4]OE)Q\O8C M'Y9]>E-D)VMSZ=><^_Z4 1'&!R3Q^5(!C/.:F$_WNV,Y;].<>G6G[L$MQD+W[?4_G3'XDP#TP!SG'Y_6@!H P3C/ .1T MZ=^OYTTD>9G&..G'K]>?3ZU)NP3@]2,X/O41S\H]MN,>W';US_GH *<#@G.> MH![_ $_^M30 <9YY /T]/;)]>XI[?-USCK@YQZTS).#_ !$@DC@\CIGW_I], M "2\KP0W!.01Z_IV_.HQG.5ZY&"!D=S^..O_ &I)26"DG/.03S^-1Y(()Y( MP>?8C_ ?G0!&.@QP.PZXZ?\ UOR]Z:I^[@C@CD=AV/T[_A3@, #T '\O\*;@ M'@\C[N2,_P">AH ,8 &WT#=L\8_G^1]P/J?]ATCSO% &!D1$C//4^]?+ ." M2<\DL1_/]0WY#VK1T;Q/K7AOS1I.KZAI7F<-]AN7AWXZ9V$9ZGK0!Z!^U&2? MCGXBP,\V_3U\E/U(S^5>Q_L/';X>\7D<'SX",'_9?'TKY0U35+S6KV2\O[NX MO[N0?//A&1T[^]=W^V\0 M/%G@C(S\DW_H<=?,4-[<6M_'>03RQ7<4@ECF5R'60'(8-G(.>X(.<'K5C7/% M.M>(9()=5UF_U*2$8CEO+F28H#UVEB<9^4\4 ?H#\3?#'C'Q7X T:U\%:RFB M:DOE/).]P\0:/9TRJL3SBOF'XW_#+XH>'/"$>H^-?%$.MZ9%2S%78$ M!@KHHZ$\YKRQ?BCXUBB54\8:^JJ HU.8 >V-]4M7\<>(_$5E]FU;7]5U2U# MA_)O+Z25,C/.UB1GWH Q%;@Y/N,EF'/ M6OSL4X'4#ZC-=#I_Q#\6:/916EAXGUFSLXEQ'!;7\T<:#T"A@!S0!] ^"?V' MM7CU>WE\3ZMIZZ=$X9X+ O(TH'\.65=H/XUTO[6'QGTG2O"3^!-!NHKB\N L M5X;=]PMHE(/EDC^(X ([#.>M?+%[\1_%NI0M#=^*=;NH6&&BFU&9T(]U+8KG M22:E17O MCRVN+.2!TGB.IW#!XRIW#'E#XQ?L=:KXT\<7FO^'M7LH[?4)/-FM[ MWN#CJ>:^.F^4*,\ ]".@S_];K[5O6/Q%\6Z79I:V?BC6K.W M50JPP:C,B@8Z8#@#\!0![K_PRS;^&OB[X%\./J#:R;D&_P!4)15C$43[F4+G M(5L!>I^\#7N?QP\6_"&[U>ST/Q[JTD5]IC+>1V\*76(RPPK$Q*1G'8G-?!&G M^+M[DCFD!()#.K!CT'4GIGM534]3O=9OI;W4;R> M_O92#)P["@#[O_ &@]+TGXS? &36_#ER-2AT[%[:S; M65F5.) 0X##Y^%OV,GUC390E]8V6H7%O(5#[76:4@D'(/( M[C\*^,-.\;^(]'TM]-T_7]5L=.=6W6EM?2QPG2: /N'X3?$FV_:<^%FK>&M: MNC9^(5A,=RUNP0N#]V50,<9X(Z?G7Q+\0O NJ?#7Q9J&@ZO%Y5W:L<,O*RJ1 MN#J?1@HQ]?4$5FZ-KVI^';W[9I.HW>EW>"OGV<[128/4;E(.*77/$^L^)IX[ MC6-5OM8GB7;')?74D[*OW@ 7)P,\XZ?F* /MCXFC'[%^F 8'_$NM,>G;%?-? M[*A_XR"\'X)_UT_Y&VE/]/\ /;A+GQMXCNM(72)_$.K3Z4@$:V,M]*\ 4'"@ M(6V@# XQ65I^JWNAWB7VFWD^GWL(9HKFUE:.5"002K*00<$@X[?E0!^@OQQ^ M&OQ9\7>,8;WP1XNBT+1ULXXGMGOIH290SEFVHC#D%!G/:OGN_P#@7XFUGXX: M%X:^)'BDWE]J-F\\-]9W+3.@3.U=TJ#N#P/TKR!OB[XZ#'_BM?$8&X_\Q>X] M,_WZPM<\3ZSXDNDN=8U>_P!5N(AM2:]N9)G4#G:"Y..3VH ^X]'^$?QV\$3V M]IH?Q#TS5-)C./\ B;1.6"\*)KF*98 M;=3N 4'S&49)52< 9/YU\?Q_%3QK;0^4GC'Q D(&WRUU6<+CIC&[IP:YN[NY M]1NGN;RX>ZN'.7GGY8YS0 V!0TT0;!0L-V 0"-P!/3IQ^9K[+\9_L)6. MJF+4_ GB!=/5T#);79:2,''595.X#ZAJ^,'QC!&!PQ[=SZ?7%:FB>,_$?AF% MH](\0:II,8))2RO)(1GZ*10!][?LW_ [QK\(+Z_O/%/BR&[TUK=D&G03R20J MVX'S2T@7& #V_B/-?,?[8'Q/TCXE_$]&T&X2\T_3+7[)]LC/R3/N)8H?XEY M!'7G&1@UY-K?C[Q/XFM3;:QXCU;5;X=A9SSB#)SY8VYP/QKX0R^L^(,WWLKZ6&-B>"2JL :Q"23D\F@#[SLOV< MOBE\-]T?P[^(Z2:4QS%9:ONV(OJ,*ZD^X45WGQ*U^?P;^SSK*_$S4-+O-6N+ M*6UQ:KL2ZF=2(T12,ELD<@#&,X&*_._2OB-XLT&!+;3?%&M:;;*,)#9ZC-$@ M_P" JP%96L^(=4\17:7&JZE>:G<*H437T[S2*,]-S$GG^E 'J/[(W_)??#., M?>D'!X)VG..:[/\ ;\('QAL.L?4?@+^T==SW.SXD6QMY6;$ M;:K<@;3G@CR2.G%?'>A>/?$WABV:VT;Q'JVD6\C>8\6GW\L"LV,9(1L$]1GZ M>U:A^,GC_!_XKCQ)_P"#>Y]_^FE 'TY_P3L#+&M9L-1O;^TU2];36MT1XE#2.55RSJ0 WH#P>E?*.A>,? M$'A?[1_8NNZGHYN"IF.GWDL!EX)&[8PW8R>OJ?4UBS3R74KS3.TLLC%GD
.[KPYKMR9!<6[\PMM>)['0GT2T\1ZO; M:,Z21G3X;Z5+?;)D,#&&V[6R21C^]^-70O%.L>&)7FT75[_1Y)<;GL+F2 L. MV2A&>/6@#]/O@_IGQ4\,+J$GQ,\1Z%J.FQQYAEM05D0C&6=RD8"XSG(/UK\Z M?V@?$&D>*_C/XKU70"CZ3<79\B2-<))A55G'J&8%@>X:L'7/B#XI\36AM-;\ M2ZSJ]ID;H+[4)IT."#]UF(['MUQ7.,,NH;!;@G^OZY_SB@#U?]F?XPQ_!CXH MVFL7GF-HMTGV.^$8+;8V((D 'WBI ..N-V!7VU\\+*SZ M+K>I:0SDEGT^[D@+<#D[&&3]?7MQ0!^E?[+'P7\5?!?2/$%MXKU6UU-[RY26 MWDM[F24*BK@YWJNWZ#/UKYX\,W$5U_P4/,D$BS1MJ=WAHV!SBTE!P1V!R#]# MUYKYGU?XC^+?$%LUOJOBG6M3MV',-YJ,TR'MR&8@UCZ5J^H>'K^"^TJ^N=,O MH2?*N;*9H94)&T[77!&02O!Y!YH _0KXP_M1:G\'OVC].T'47CE\%SV,#W$8 MB'F0.[.#*'QD@8&03C&:\^_;I^"-QK5M%\3O#\\FI:?)"BWT2.9!&AP$F0?W M#P#CH2#T)(^.-=\1:KXHO/MVM:G>ZS>A!']HO[AYY=HSA=SDG .>.V:U+?XF M>,K?2/[+B\7:ZFF^68!8KJT MMY4ACM2WE1*<%I'=PN, 'C'<\FO@'1]:U'P_>+=Z3J-YIMVH*+<6<[Q.![,I M!P>:T]<^(/BKQ3:_9M:\3ZSK%MD'RK_4)9E&,\[68_7I0!],3_M%:!K_ .V_ MI7BS[2D7AJR4Z-!?/\JM&4D0S-GHI>5B"?X<=*]6_:>_9#U;XY>.;#Q1X=UG M3[=)K>."Y6\9L;%^Z\953NX/0X^M?G<1G(&1D;MHZ?YQ71Z5\3?&/AZS6RTO MQ;KFG6B#"P6FHS11@>@56 H ^[/VM;S1_A1^RA8_#V74DNM5EM[&PM(R0))5 M@DC=Y2O9<1XSTRP%:7[*&O3^$_V19]9MHXY;BQ%Y2AW.F6T&F>'S<)L:[TV&3SE!X^5G=@I] MP,BOF>5C(6=F))SEVZ^Y)- 4C& PZ#.<\=?_ *U)DD*1S]3@@GVH ]'^"?P! M\1_'S4-4L?#EUIMK+I\:RRG49GC&&+ ;=B-G&.^/K7Z7_M(?"[5_BY\%]4\) M:+-9P:G=-;%)+V1DB CE1VR55CT4XX_*OR>\.^,=?\'RW$F@Z[J>B2RJ%D?3 MKR2W,F#P&*,,C/3)]:VC\;OB(!_R4#Q1UX_XG5UTQ_UT]@?QH ^@/V-/!5_\ M.?VM]2\-:I+!+J&FV-U#,]LY:,G$9^7(!(Y[BM_5OCDWP4_;F\52WD[+X;U6 M>"SU*,D[4!A3;-C.-R'![G:7QGM\BV?CCQ'8:]-K=KX@U6VUF8$3:E!?2IOSWU3XA>*M;T=-(U'Q/K%_I2! EA*],AT&)AB>R1S<2(.OR, J''?P'4UXSJOQ3\:Z_8-9ZGXPU M_4K)UVM;W>J3RQL,=U9R".*S?#GC+Q!X.EFDT#7=3T.2E3)EU)(.U0.#[?Q>YK MR:3J".O_ -:M'7/$.J^*-0:_UG4[W5[YU"M=:A>3R...O/]#_^ MJD8DC/)RW;C/^>G^#D M*@\$EN),_]!?_ -I+ M7V-7QS_P3(P?A)XDQT_M<_\ HM:^QJ /+/VFO^2.ZSP3\T70?[8KX>W JO.3 MTY(YK[@_:: /P=UC(S\T7_H8KX?!)12#P<9P2 !W]N] !G(4YR-PY/U:C!X' M()QU'3B@L203G*[3DDDGN?U/8_GUH&%&>!VXQ_3KT]* %4DL.,6O(SC\NM*0^.F,^W'XD]#_*G YSAFQDC@__ %_I0 9D48X/Z_, M/\]Z:K?(#W)Y/OD_X4H)+YQSW&??/.?8=\TB\*HW??MG'ZT<;C@*#DC(X_E_P#7H Y. 02<@\@ ]!T].>W^% 1 MA1U/?)'U/-&<@\8(Y'KT_P#K4@P0/X3ZK@$<4'&&!Z9/'3T]OZ4 !&U0,]>. M3UZ _P!:5AD8/ /&>XR:"2&(R0_<\C/OGZCOW[4G(#8 ##H0,'M0 .0.?7!Z^U&0K94X&#]TXZ-G_/7_ !P=H./;I_^O]: \$'CKP0 M>N!_]<4C##8Y!Z$8P3V_I0OW5. .0"0,<<@_I]/ZT*1T[$#@'';\* %/+8)Z M<'GD>OZ ^M');D ,G'IT]?SH)Z' (R<# Z#^O_ZJ M % W/@9Z].AZ_P"%"G<?Q(I!T*CGG@9R,Y]._P#^N@M\N00P'3// M?T(^GIP* %4@! '/^>:1>Y!Z<\=N#_4BEP << =L]._^>_UI%(91GD#' M?..,'CG' //L.E "@9!Q@@\=>#V%&>&.">IQC/Y_E29+;22&!]>>WOT[]Z&& M=R\9)P,]N1^7?TH 48 )W?*#C.>,=!_+TH!P 3CUZ^G/%#G.YN0>2#GGG)'K MC_Z_6AAD=2#ZC&?\?7O0 A&T!#P>GS<9Y;IFC) ;/4E!PP/W3D9 MQQS[X]P>_?M0IQD=.1CMV'Y?E^- !@@#&21T(&?I^.5H[ \<#/Z"D&%;(YR. MG S@@\]NGUI<87'RGZ]#V[4 *N3(!W!&?7KD^GU_"FC[I/4;1^/%+G#9;(48 M)!Z#GTQZ9[&D (&UAST/&!V[4 +]T<9 ]1TXZ9I/NG;Q\I[GTW<4N">V6[,5 MSW'US0,D+QC@_*.V3Z?B.I[4 !X.HH')W =NP'_ M -;'6ESDDYX)ZYP,=!Z>_''Y4 )@ @@\'U],=/2D)R20W<'.<@<]?\^M.RW2FR');))/(Y.?RXXH 3 P 1C@<$X)X'_ .NDDSL[]NU.;HO&..OKS3%QS@ MYYYYH 0Y^;&1D]3VX[4BD9S@ <\]*&!)/ R>F>0,.AX[=^?YY MYS^7K0 LOWN?EYY&<=:A((4\'.TX'OZ?R'XBI9NF.H)Z#@ ^M1'CL".A!'7@ MG^OZ>F: &GJ<FX<_]\_EGU.8R.#G/3G(& M?_UT ,';GK@X'''_ .O)]OTI<=_Q&>*&&6;T.1C.O?TH 8WW 2 A"]?O?YQ^--?DD^^2>,]?8? MYQ0 PX)Z\9[\=N?R[TN?7C']/\_TH RVTX ;C'&,=,>G'I[].](#E02<':#G MD^W\_P"?K0 T9&#@[@0,8YR!4*\8QSTQ[\+_ (+_ -]>U2C&<\#)! QQZ]>W M3]*B7@#VQU^B_P#Q/\_3D ,<8SQCK^%-R<-G.?PR/\G! !1C:.H[?3CG^OXTQCCDY!&3SU/!Y%.X8' X/;';L M/RXI"3DD?H<#U_H,GL!0 P@C*]^F!QVR::1\YR3@]QT^M./'3&.<'^1QV^GK M^C2.3QMR>>,_Y_\ KT 1G^(8.1U [=\?SHSCYCTSDGCV]Z"G4'GM_GO0 '@9X Z@D\9'']O\ ^OC.<\_G M3%^56P?J>Q/IUYH BI^F4\'*X))XQTSB@!E%%% #1PQ Z=^.]1]2. MN#T.#G!_ETJ3'S]3T_"HR 3GG@'(R=V#^O4=* &OELY!Y/ISVXIN"Z?+SWX/ M3/;C\\TYAN;MSZ<]_>F_?Q[8YZD9QZC\?P% #21EL\>W3CMUQVH) Y)!5>3C MT_"D'&,97(Z+QV'L/_U"E)RN23QZ$X'X\_YS0 P?= /4<'\"?_K?A40!.,=3 MZ?EFI#TP>PQC'3CD8_D.G?DU&02, #.#^?:@ R.HXXRH]N/UZ?F?448QCIMS MG\/_ -7\J7DGY?S_P ]SZTQOO=6^O\ GJ>A^N?6@!),[6P"0.?R M_P _SIAX&/1N>?7D?S'\^:=+T/\ (GKV_*FMRK=_O=>I]3^F/RXY- "#(7D8 M I'XZX'..3WQ_D?CSCBE'!![C_'Z?Y]*M:1I=QK6K6.FV4;3W=W,D$,:?>=B MP55&/5CGC\R>@![[\%OV,=9^,7P\'BF+78-)CFDE2WM9K9I&F"_Q;MP !;(Z M=J\(MO#&JW7B%M#L]/NK_54E>(6EK"TDKE#\VU%!)P%8\ \ ^E?J;IO@^^^' M\'P[T#1-8TBQTG0H_+U*WN)S%)=!DP2B!<$ER6YQR:\%N/AX/ O_ 4&\.74 M$82QUP7.HQ88GYC9W DZG^^#P.Q'2@#XO@\">);C6I]$B\.ZI+K-NF^;3EL9 M3<1KC.6CV[E&"#TZ$5):^!/$MSI=UJL/A[59=,M683WR64C0Q%3A@S@$ COD M\8K]&?AV--^)OQ6U#QW9+%;ZSHDFH^&]7MU/,BQR/]GF_%1@\=21G"UP?P>\ M<6'@#X :WJ&L6T=WH=QXIN;'4H91E3;32M&Y/L V3Z@$=Z /A=/!VO/I%KJ@ MT347TNYE\JWO!:OY$SY(V))C:S94C .<@CM2W?@KQ%::[#H=QH6J0ZU+@Q:; M+92+O WA[[4MU967B\2VMT6!$EO)//+$Q M( &=CJ#QC(/UK.^*9Q_P4)\'\D?N;;I_UREH ^*W\*ZU'KPT-M'OUUHN(QII MM7%R6(R%\O&[/MBFZQX7UKP_J::;JFDWVF:B^TK:7EL\4K!C@81@#R>G%?<_ M@CPBNK?MF?$WQI+!]HL?"L+R)M.1Q[-0!\:Z]X:U;PK=):ZWI5WHURT8E6&_ M@>%RF?O!7 ./>KG@?PK)XW\8Z/H"3BSDU*Z2W6=DWK&2< D#!-?0O_!04_\ M%W]%ZX_L6'Z?>?\ S^->-_ /(^-'@H\AO[4A!Y)'+#- 'O\ ??\ !/F'3]9@ MT>X^*NA6VKW"[H-/FMPD\HSP5C,VXC@]!7@?Q'^ WBWX=_$FX\%MIMQK6J+$ M+BW&E1/.US 0V)%506'W>1V*GM@G])/%-G\,M>_:#T6QU_1Q<>.;6Q6]TR\N M)'\HJK'A4#[2ZGYN5SZ'CCP3P%K/BS6/V_ISXRM(K#4+>SN+>UMX#NB6T6*0 MQ%&ZL"&+$G'+'A>@ /C;5?A5XUT*T:[U'PAKVGVJ$*9[G3)XT!/ !9D Y.!4 MLGP;\?V\#SR>!_$D=NB[S(^DW 55 ))SLP/KTKJO'<'A=/B=J+:9J^M76J#Q M"Y>"\TV&* ?Z2V[#BX=CSTRHSWQTK[$^*&I6G@?]K7PGXSUCQ/IVA:#I_AC; M=P3WRK/]92XMM/M MWFD(!R2$4$X%+KWA?6?"EXMGKFDWVC73#?Y&H6SP.4.1OVN <9SSTX^IK[(U MKQ-9W/[*_P 3_&7@ZU&G7.N^)I8[F2!2LJ6A9< D8*Y!+'T+D5S%U;V_B;_@ MGLM[KO\ I-]I&K&+1[B=B9$!FV-&C$YV[&<;>1\J\?*, 'SS)\%_B#!;M--X M#\311(NYW?1[@!1C)))3@ 9Y^M9^A?#;Q?XKLOMNB^%=;UBS+%?M%AITT\98 M=1N52,U^FGBGP:=5_:MT/Q3%KEM'-HGAUII=&CW&\N48R#*#:%923@_-GVY% M?'WP.\1CQ5^W-IFK16$FE1WFL7..0<]*]._:78M^T#\0022!K M=U@>GS_Y_3WKS)^JYSCZT ,8G3&<_0_E2-ST&,XP,?D*#\H''(VG MKCH!_4$?X=T9<;N0><9],?3% "*#LZ'C@#!R>_YY/\J:.1QSDXX.<&G+G P MOS$#COC_ ",=_?I35Y0<<<8!';' _P _7% 'Z0?\$R/^22>).G_(7/3_ *YK M7V-7QS_P3'_Y)'XDQT_M?_VDM?8U 'EG[3/_ "1W6?\ >B_]#%?#P^9!U/& M.N..E?<'[30_XL[K' .'B//_ %T%?#V,@F#R22#A>YR<_ MRI&X5B>#C'!I3U'(/.0,!<\G\.Y]>GI2#A0%],]NF/PS0 [I)G!].G?=3M)G!QUQT_R#0 -CYAQSD]>O'_Z_SI6/S__ ->@!&)V,W.>H)_# MI2MQE>6QSM^AQ_(4UN$D_P ^G^>I^E.D(Y!)&.WXGW_IW/% 3EL')([#Z^E M"_*V>H/.1SG!&?Y9H;G&1CYA@<^O^>U)@DG&">,Y ....I]>O^10 H4@ =& MYI.=K'[N0>/P/^%&1M7C@] >?7KT_E_A2@$E!VS@X! .>.,#Z]NW>@ )ZMVY MY'&?\]:,*7.W:?3GWZ+[C_/K2=!@F._P"1H 7'S<#/) R.N?3\ M0?SH8_+D'.WU^E!7#$#(/?H/8O7'U/UI""&QW(_D!].G7J?:@ SSUR?8]_\Y_.E MYR O'S 8!]SZ4.1EMWOD9)_J/?WHSVSDY&1GK]>?84 )W7W!..W3/]31D*"> M/8MW^OZT*<[<= /RX'^>WUI5W \<\]>>3SQT_P : $^[D_W20/J,"E'RD#(! MSSSBDP"">V W/(QZ'W'K^=*P)7G/'J/KV/2@ )8C.T\9[>WZ&D!#KVP1P! MZ4H;DMQE?0_4_3MVI#T/4 =\Y.1^/I0 9 3./E'Y'KQ^M+WP#DC(X[X__4*, MA>A*YYW#&>Q]O3_/6@ YY!X.,=A[_>@!<;N./;WZ4 )R_P#3I37'R9 SC.?44JC& M..H' &>?USZTDGW#SG& ,D$F@"(XP,9]Z09YR,4YCPOS9XZ>G-- Z\YH 8W# M%N>.>Q';IQ[=JC.T@' Y[ YZX.1D>O\ G- "@8W9 M& WIZ# MGU $(VQG ''<4C#&[T&?_P!7YD4_'?#;CTXY_GG]:C!P <=,''T./Y\_X=: M"7[N,YP<$_Y_&HP0,''''?''/_U_PSZ5)*" /48[]/T'H:B. #V&.2.W(S^G M3_=H 8.@]?\ ]7_U_P#(IN">.<\=O<#^II_UX/<#M_GG\A3/NGT( ) QCZ?Y M]#0 O5N<')'?L1T_4_7(]ZCSQDGT)QU_R?ZT_P"[P#C'&<\\#G\OE_+MS30< M'CIV P/\_P"?P &$X)Q@D=,'C.>G\P/QHQZ<]@?Y?X4==O.> .,\_3ZC'U'& M?4ZXYSD?GGO^/_Z^: &M][(SZ]./\\?D#4Y.<=^W^%/8# ! .>@7CU M]NO;OVZ5',, 9[],< ^_0>OY$4 ,)^0$CKU&:1#A,\@ ]?RZ>_%*>$Z<'J ? MY>M-4XC)SCKC!Y[?TH %R ..3TQUI6ZG2D4 9^;T&5/\ 3O0<;3V' M;H3G^@YH 91110 PG+<]NQ].Y_6D'&TY&!W/ /TIQR&Y/N !VI%!!' ],D\X MH C4?, 0>F,>Q ].G(_G2'[Q&#CN,>_:EC!)''&,\G&>OMU_S]6GAAC@Y'R\ M''T_S^5 #3G;C/7I[\$#^E-D.5;FI"/E8= 1SG./Q./;UYS]*8Q)C.,\9_SZ M?S[T -<\.>XS^? _K01@G'0'^7%)WXSD$X]>!D?Y_GUHX ]!@<#Z9X_'I_,] M* &9 !.2 O&>XZU'T'3GT]./_K ?@/>IEZC!/488#TSWY^C?YQ3OX?P_I2$9.#W;'!]<@X_,X_\ K&@ M_B^AR:8>3Z]L>N>?Z?K3BVX DC'7..O_ .LDTAR3@Y';/;H>?Z?GG'6@!A^9 MCSG).3ZY-,)SDD=\Y(R/\]:>3U)X'HW^?H3Z4 -9< M$C./X3G\1_*D!PRD\<=_PI2>I'R\^V.I]N>".GK^%(?E7 RN!T/;Z\<_E^- M" ?*O4$<]/\ >-,!^4\@X_E3V&3MP"!SUQCD#Z=NI']*8ISW[?=QCGZ4 1'K M3USM_B[].E,(P:<%ROW6/7D'B@!M%%% #0/G)&1Z^],YR2 00.@Y]R/QI^!O MS@Y]:9@ C.2@IIP!QV[AH C& %VXR<=/\ /L?TI6& <^_4_6D/0#![9&>>W_UN MH[F/\ /UH "!R#CKR/P(_P_ GTHS@YZ=?SR<_SI5QP.0 0.OMZ^N,G M_(--7A5XYP,C/MS^O\J &GCKQZY[?YY_(TQ\@Y.1CM_G\?UI[<9QUYQGCU_P M'Z^G#7QOX[9YQSC/I],?R^@ V7[I[9SW_(_G3&P5;CC)]N.,C\_RS[T^7[IS MT/O]/\_K3#G;GH23SC'( Y]NA_$'GT &@ C.<@C&>GM6SX/\57O@7Q3IFOZ< ML!O]/F\Z'[3&)$#C@$J>N#M(],5C X7)/OS^GZ?G0W SPN"!D^F.F?I^? X MH Z;XA_$[7OBAXN/B77+B*75RJ*LEO'Y:H$SMP!TQU_&NYOOVL?B!JWB#PSK MES<:=)JGA[S8["?[&,XDC\MP_/S?*?SKQPGY<;O;U]/>A#\I.1N/N.3QC)/O M_GT /1? W[0GC/X>^*_$'B'1KRWCO=>>2:^26 /$[.Y=B$SQ@DX] :I3?&;Q M+=?#Z^\&O+;MH=[>MJ$L8M\2&4MN.&SD#)KA ,KTPO8$]O?CK[TH_BX'&><= M./P]/\* /0/$/QY\8^*?AYHO@K4;V&;1=(D1[5UA'G+Y8(3+]2%#8'L!Z5L? M\-1>,7UW3-=NK71K[7].@$%OJUU8!KD*!@$MGD\GDBO(^O8 'A0W7&?7]*:Q M&.@YYXSQ[4 >B0_'[QC#X.\4^'%O839^)KE[K5+@PC[1.[[=_P _8$+@CT)] M:@\/_''Q1X8^']QX-M9K5]"ENEO#'<6XD:.52"&5C]WE17 4CC@< X.>: /4 M?&G[16O?$/4(M0\2:+X>U:\C@6!9Y]/)81J2=O##U/YUY]X:\1WGA'Q#8:U8 M,BWUA,MQ"TB[D#**#J " #CIG^0/?FHP,*/E_A QC@\ M?[OM^@^E '9ZY\4;C7[B:ZDT'0;6]EN!=->6UF4E\S=N)W;R.3G/UJ/XH_%K MQ#\9O$%KK'B1X);ZWM4LE-O (U$:EF4$#C().3]*X\ \@%C_ +2]3_GWIB$! M\Y'8#';'.>O'4_ACZ$ [/P'\7?$GP\L=0L=,N8I=(U-"MWI=Y$)K:?(QED/? MTQ3?&_Q>\1>.]!TS0[N2VL="TQ3]DTO3H!!;QL>K[1G>@8'')'?'4C_ !'/XTT\$\]._P#GZ?I]: -?QAXIO_&_BG5?$&ILCZCJ M5P]U<-$FQ2['+8'89'3W^M8K\$9X_#K3^G3C^G^<#_OGZX9+@>N,'/.* &]" M.AY48Z9P<_RQ_GJT_A_E^?O31]PY!&.QXQVQ_GTI01Y8[J>,_GUQ[9! M]C28PIXQQT(]^?Z>FO\ :_\ [26OL:OCG_@F1_R2 M3Q)T_P"0N>G_ %S6OL:@#RO]IHX^#NL8_OQ?^C!7P_\ PJ2,@C)!%?B_]#%?#ZC.WIDXX'&1GTQ0 AR#WR"3D<8QW_,F@+DGC SZ4@&,94G( MS@CTY/./\@BEP=HP.AZCD _R_6@!,G.>F>WTH/\7LY_#G]/TH "#G.,%@1]I]C0IX! YX([XY'X^E!4\\9/0X&!GW M.<49![KSG&3U/&._'^?I0 =$ R,=,^W_P!>A<+Z$#&<=<8_P!_.@#D@# )S MC![_ %_H.U&,K@?+G. 0<>_'/ YH !@=3P<#)XR,$4C<[LC/R]Z,@C< !G\! MG'Z 22 ?K_2E/S.,_-U'/?D4AXP3S M@8QU&,]L#'4>_6@<. 3D^A.3V_SW^E AYW'H.Y[_W1SZD^^!^/^-.*Y.X D>P_P ..] /O*#_>!Z?4TB_=)Y'RCZ]*<.&!'. M2. #SW Z>WZTS V >HQR1CI^O7Z]J '8XR?7/^?6D(QP?X0>!] /Z9I>,C)Z MG&>/7W/-(/XAR> GXT *._P!>W]:0$@*,CG@#U./R]/RI<9SU(!Y M7)_S^5(&XW9ZGJ2.OI0 J\$@$XXX]*%)*@;B"3C.>0<_P#UJ,;0 2 3 MQSP#V[?SI&XR>V#^'!^@H 4_,%&#T&/Z?S%"X+8'.>"<_A_6C&"Q&,%C@@\' MH1C_ /51S@A<$CH /?\ SV% "+CKCZ #ZG I5&W;V)[T+C?@8.?3Z]/TST[] M*0#!7(V]#SQ_A0 JG#9YR,'_ ,=- . 3GGH>?PI.Y!(&0.IQ_"?\_P!:#QCM MTY)/'^1_*@!0"$/!YSP/7&./S_2@84@CICCCMP?ZT'D@'H>-V<>_7&/7_'%) MT!Z8^\1SZ9Z8^M "J<-GIR,\]?\ .*1">A//?_P"O MVS2<,VT+^!'/7@X/L?6@!3DAO7H,T<$9'<]2,]R?Z49P!V[9!!'_ -?\Z.%^ M4XR.2IX/K_4_X4 (#D$@9_PI" #@D8X![#KQ^E.(P,$@]OFSVZ]1[4UNI4] M,$9VG]>O _.@! ,<=?6FKCG QS^=..,#DGC\J09YS0 QOOGI0 P$D]W(&1SCZ4PG+8#9'J3UX_ M^N*?D#+G! YW9&/K^5,/<$DD9 YYS@>GY]* $+ .O;^ M8I^=V,9)'(QR3^7T]A4;X+GD>A^O<\_YP1@T *W"'\SCG\:3H<=#G./0?_6Z MBE/S*0,$@9&",_S--Q@\="6(Q[ 8]?\ /ITH 24D9[$<\#_/>HP#N '!. /K MD?X?YXJ24@*,>GX'W'X?YS44@PCYX&&[=.#_ $R?_P!8H 8O*C'0@8_(?XC\ MJ;Z<<>X[=?Z4]^"W'<\#ZM_]?\A^#< M@]R!R?7C^OZ4 (#QR3P!GG/O_C^7 MO3<9?!ZDCI2@[E4MQTR<8Z@\_AD_F/483G.<8.>/KZ'\J &$D\]SR./7/^'X MB@^W'ZT'@GTY/3ICK_AZ_04=.O;K^'7_ #VZ<4 -8=@,#H1Z_7Z_TJ*7ELY[ M^G;K_P#7_&I'^7J ",\=/KW]NWKZTR;D@D@@$@D]#^6?3UH CS\N?N]\_P"? M6D0X3(]>I/'MQ^=+\VT;>N.PZ_I^=(A^0CC//7 ]/SH 1.@YZ'Z8]\T'E3]W MIGW]*%^7(RH.>IYH/*GE>F>!^'_UZ &4444 ,8N.O%! MQD\=_P"Z>O8T+AB,8!ZYZ'WX- #$'S8QDXR.<$'.>?KD4A^^%&/H>.]*GW@/ ME!VC&>.<=X!YI3@\8 ) MZ]^X'<#TX^G>FOG;NY(QPQ^O3_ /7_ ,#^M2XR !P' M&T#\?_K_ ,O:HL[_ ,?Z\_\ LX_R.0 QQUY]::WG4?_$_D*=N[_C_ M %II 4D$@8[GGH0,_P#H7Y#VH "<$GD8R.G3_P#5C%,8QI M3RI.!R,C ]C^?3KCKGGU49XSE@>X7/YG\_6@!&YY&!CU[$7/;!/&>,G_ .MZ=J8I)!Y!)QU_ES0!$>M."Y7.W/7G--/!IP'R]%[\ MDT -HHHH 8!ESVQZ=Z;@E^F"1SCM_G%/&"YZ<>A_G49!R0!N]<\9/J?R'3UH M 8X^;D;0>@/3K2'MZ'@@^F1UI6 ZC.,G!'?GV%-.IR.>E#8Y&1Z=>>X]_3VI" -N<8_3'_ZO>@!A(VD]L$CZ M=!^/:H\,>K=OP_#G/>D/ Z<8QP>GI_*@!H.#GI MCOZ?YQ^E,88.,8X_$=L?S'X4Z3@/GG /X\-_A^M))_K&!///XC)_P/YT ))^ M/_UN/_K5$0-AX'?CTQ_7D#\*DE.T'.,=>?\ /XTPK@;-O/IW Z M]!^- #."V<A_E^= M $9ZL003W(Z#M0Q'&>1V Z8I6)!!)()^8-MY)[_UII ( X [-W_$"@!E(PR, M8S^-+2-VX)Y[&@!H&<$#=T.>F>U-QVQTP,=P/K2YP"25^4Y.3]WUY^E(R[5Q MUP.@'&* &M\HYSR<]!S3" J$84@8'3C..:DP#P,G/4 M< _A^(% #< =>W?/]::I(?N2,X^O4_CT'YT_J=IX(..<9_4TQO%,(X(_BX'/YG/Y@!I&2>IY/)'/7_ Q^=1L?E8XXP>/P-/S@=0V._/./\>OX_FA4C_'K0 C\ M%N_)_F_^'ZFF3=&]@?ZT_H/\^_\ A^GKP&RX49/('/'TH :WWCCGGH>_7^?3 M\J8V"#CG/IWSTIS @-GEN>_4@<_J,_@,]122C <8./\ .?3T_P ]* $7)"=2 M21C'49)_K_6F#.S(]B,#&,BGH02@!ZMD>_!_S^G/%1C'EK]T$\9X] ?_ *W^ M% 'Z0_\ !,@@_"3Q)C@?VN?_ $6M?8U?'7_!,G(^$OB3(Q_Q-^F,?\LEK[%H M \K_ &FSM^#NL')&'B_]&"OA]>C!=O49/'^.*^M/V[+J:S_9I\2RP2O#*)+< M!T."/WJU^4P\1:G@?\3&X4]2?.[\\]: /J4J%';C/93T(_H/\YI>,@$@D$#! M(KY<'B#5>?\ B970/8>:>N>A]_\ TX:_JASG4;IA@\B4T ?4(SP%8]>.G]W MT]_UHZ$8;*]NF!7S ==U3K_:-UD8_P"6C<#J?_03_GH#7M4)_P"0A<@8.OO0!].]03N'S#KQT.?ZXIQ)SG.,9QP..?\ ]1_$U\R#7=2!R=0N3C.,RGC_ M #S_ )Z*->U,XQ?W)_[:M_C_ )S^8!],M@+C<,<^F.E*Q^8Y."202<#^E?-7]MZHI&Z^NQ[8Q^E 7;DXQQGMT].M?.3:YJ&YO].GV#OYA]>>?\ M]*>-9U$;@X^G;&?Y&@J4& & SC'!_"OG=-8ORH/V MZ MO[:O_P#G\F_[[-']M7__ #^3?]]F@#Z#*D*<@\@G[J^A_P#KTI&#T/4_PKZG M_P"O7SZ-7U Y_P!,FX&<[R:@^5B: /H$%@V0#GMP*%''W3@\; M0!CIG^I_"OG\ZO?*N3=3CN SD4X:O>X8_:YP!ZL1VX/7O0![_@D#H<>PQZTN M2<9Y[\X]\_C@5X"-6OBP'VN7)Z?-U_6G1ZK>\9NYL <_/GW_ ,^Q^M 'O@5B M3G.<_-G'7\Z/*)89 &6&/N\<_P#UZ\%&JWRCF[F!]0_L*4:O?#&+N;VQ(1[_ M .>WX4 >\;1P1DDX)ZY_.CRMW!Y[8XP.<9Z\5X2-7O2?ENY\=B&.?;_&G MC5;_ #S=S8_WR./_ -6: /<]N[ YY ..,>_X\G'X4!0O(!!]L>M>'#5;_ S= MS'N3N/;@_JQ_3WP_^U;W/_'W,.</7 P/?\ (&D&5/'& M/4 ?YZ5XHNL7S, ;N;)(XWG/H?T_D??#1K%]M'^F2\@?QGTS0![=G:,X7@'' MRCFDP1C('&!P!SQU_E7B\>LWVXD7N>O*CFE!Z 8P>BY]\_TQWZ5XP=4O2I_P!+F/&,[SZTJZM> MNS 74S Y/WSR,GG^0_#\: /9>. &!(X'S>U*>A&X=&( ;C_/)_6O&SJ]Z1_Q M^2,,9Y?@_K2KJMV2H%U)@\_?)].?T/- 'L?\0P1STPU-!^9<.,9!^_C'^'?\ MZ\@&JW>P?Z3(03D?.>1Z^]2+JEY@?Z5+Z_>QF@#UE>G)7H,\]?\ /'Y429*< ML<$<#?G->2G5;P%5^U2]/[YS3_[4O,8^TRGZM0!ZF5(3H#SU!Z=:CW'GCD'I MFO+UU.[7.+B09_VJ>FI7C9QD\Q7.1@G'/X4 >AM\PZ9]BWT'X&D()/4>F[ M=U]/3UKSY;VX#*#/)DD8!8Y_*E2\GX!FG_ZLTJWU<;]JF/'FN>@ZYI1M '928&0K?8?_7H M-U,,D2-GJ,GO@X_D/U]Z .H8'+=ADC /'7_/Y"F;2>!QSCD_@/YUSB3RC< [ M$#^\>V3_ /6_R*O R/Y_YZT@F2/T_,TP@9 M/S9Y]*R%GWX$]_8U% M-_#DY/=N3@\>_K_.J?F$#) QG)R,#OFG>:QR/3MGD#_ /70!-P3_#SZGUHR M=H(&0.PZ _\ ZA41DSDM\O3DTJMGD'/;B@"3D#C/ SZBD;)4XZ>XP<#@4T,0 M1@].E*OS$ AF.> * &TG.>O'I3MH_O#IFEVYZ'<>N /SH B*D ?-R.,MWI,[ ML='!Y(]*F558?-TSZU(D:@@[A4<<9Z9]?R_PXI?(C'5?PS[_ .'^30!D8." &!]!U[^_N/\ /1G5 MB1N^O?'^36U]G3IMSSC.>_0?X]^GY/:!.,1C&>!C\O\ /O0!A@LI!)?CD\GM MU_SZU&GRJ,[N,#CT(S@>U=$+>,,!Y8;+8VGOST_'I^?I2+;Q87"J<]&(Z\<' M\?\ &@#GR2$.3M)&M,Y7("]NX],#^7]?6NP2VA9L>2AX/1?K3_ ++" M,CRERZG YQMZ%_/\ I]:[9+: Y!C3'T'/ M^>*=]D@ _P!2F?3;_3\.V>AH X4\$_+CT'H,G^5-).>5R,_W<_C^E=Z+.V(& M((?P&1V/'KQ2_8K?=A8(\^FW)'ZT >?[%H \X$9'7(/<;1G_/7]*&W8."Q] M,J>?_P!?O7I']GV8ZP(.G5,CGC'M4B:=:L2?LT>>Y"9S0!Y03@XY_*C/U_*O6&TNSY)MH^. M#A>/_P!=.&DVG(^RQ@G@_)W].G;@8^M 'D#$L,[2<<@%>*0)DXV]B,E>.?7\ MJ]@&D61P19QG/0;!_A1_95FO*VD8.,C"CM^'T/YT >.R#<-$ MX8_*< D_7_/%)M4' P"!U&?PJ(%\]"&XZ9X->W?V/9'.;2'C&2$XZ\X/XBD M72+$XQ:P[>#RH_GS0!XGT&,XXQ@$_A^7/Y_D%><8'KU/^%>V#1[(CBTCQC^Y M_L_3\OQH;1[%&.;6$ >J#C_/K0!X@ ,CGN/7_#_.!49...0"1US^>.W;BO5ZX^OU% T>Q 4?9(<\=5&>GY]Z /#2QP#\P/?;D'\*:ZDCO@ M\G /';'3V7\NU>Z_V/9,<"SBST^X#@\=A2+H]CQ_HD1!(X"!L9[=/:@#PCH< M8&?3GO1G/3KG .3Z$_X&O=AHU@] '@& Y/3MU))Q_G HVX&<8R.0&ZCO7OXT33_\ GQA!YZ1C'Y@= M,YH_L73U()LH%R02"@&!W]Z /G]E;.=P#$/ZT ?.[8*YR3GC))'!--SSGY0>IP2/2OHG M^Q-.P&^QP#G@F,8Z^GX'UI3H6GKM L802<8:,9ZGVH ^=6!*L..!_P#6I!H.G X-C#DXR-@R/7C\#0!\XY ' M!.".BD\5&&.2.0.P&?._^P9/Z4O_"/Z>>/ ML,.3G:/+P3QT_E^= 'S1@D\*3U[G_/;_ #UIF#U"GUSD]O\ (KZ9_L+3<,?L M4''?:.>*#H&G#K90YZX"\_R^M 'S-NVMC81CMD\>WZ+^7L:;(N0#M;/KST-? M39\/::"%^Q0 Y.0$_7IZ@TC>'],49-A"/8H!B@#YB(+=OKD'_#\<>O6E9<#& MTCTX/05].MX?TW)!LH-W/&P'&,^W^>:#X?TOD?8;?&0S^S+XFX)_>6_3_KJM?DTI)C49)XQ@G'%?KM^VEX: MU;Q=^SUXATS1-.GU7499("EK;)OD8"52<#O@5^9T?[.?Q29,+X!U[;GK]EQV M]": // IQS7H2_LY?%'Y1_P (#K@/'2U. M!G_.?\BGC]G/XHC!/@'7![&V/Y4 >=GOV' X^G'\\8^O3L]22W7/7G_/^>:] M"/[.GQ/'7P%KO4DC[*?0_P \#\J?^/4_7^@_*@?LZ_$ M]2 / 6N#&,?Z*3]/Y"@#S\$[@<@C] MG7XGY_Y$+7 .?^7QZ_G1_PSM\3Q_S(>MG M_P"?4_B.OUH X CYBG/V7KZT < I)8-W(X)XSQ^./I[4]%SD=%&1PN^I/V7 MK^M '!C[S=?I_7_/I3AR?2N\'[/_ ,3 2?\ A ]=Y_Z=?_KT\?L^_$LC/_"" MZV/8VIH X31\O< =OR_R*4 +O'3^?0CG_\ M77>_\* ^)>TD>!M@#@U)7 '0XRN. MO^?I3U9MW5CD=?7OC/7.1G^G.*[K_A07Q)Y'_"#ZV./^?4TX? #XDG('@?6A M\I'_ !ZGV]_K^5 '" \#G@=#T_S_ (&E7Y>AV\8!]/<_0G/'U[5WC? /XD9) M'@G6L?\ 7H?7ZT#X!?$C)'_"$ZWT(_X]".,'W[YQ^= '##.<@8/0 _PX'3], M?@#3T;Y@><9!_4?X5W(^ OQ'8Y_X0C6^0"?]$/O[T[_A0GQ')P/!.M'K_P N MA].M '"KVW<^IZ_W<_\ LWY^].[>_L.>_2N\/P"^)'/_ !0^M=_^7?Z__7_R M:?\ \*#^)&[GP1K/_@.>M ' Y&><;<]3R ,$_P#LWY<>M . .2#Q^?\ ];FN M\'P#^).W \$:R#M(_P"/?N"-:&1_S[GZ_S- '"@XSR 3W_ /KY]Z%&XX(QR20PR!GG^GMU]V?6@? /XCJ3S@$9_P / M6G!MH&3D#)^]TQQ^-=R/@-\1CC'@C6OI]FQZ>].'P&^(XS_Q1&LEEYQY'4X' M?- '#*2H([@8/)/Z4],8.#GGGZUVX^ _Q'7 _P"$(UDGL?L_Y]Z>/@1\1QU\ M$ZT?^W?_ .O0!PI^\.H'\ZE0;TQSQT&>,UVQ^ _Q&R&/@K6<>GV?I[]:D3X% M?$0?*?!6L')_Y]S0!P6*DCY!Z?E_]:NW'P*^(AY'@O6MN 2/L_/;_/X4^/X% M?$11G_A"]8 QGFW[T <0,#=@ J<\?D?7V_"E*@$# R#CH.>W^>*[@? KXA@$ M#P7K)R"<&W]?_P!5/?X%_$/!_P"*,U?.3C_1SSS]: .&7H!VXX7I^7?MP:>N M<#G@G\.G'7J,=J[9?@5\0QD?\(;JZD]#]F/7_(IX^!?Q!(X\&ZQM[?Z.?P_2 M@#B!DGC@]1GGMQ4@)!XR !C'K@8_]E'U_#%=I_PH[X@C.?!VL8[_ .C'IWIR M_ _X@@Y;P;JXZ XMCRX_X M4=\0><^#=8./^G?K1_PH_P"((V_\4?K&2>/]&/!_^MQ^7O0!Q8RNU/P1^(.XX\'ZO@GK]F/KG^II1\ M$O'Z\CP=K&<8_P"/WM_C3O^%+^/B.?!^L9]/LQ_P : M ..4@#/7@=#C)[?X4X$A1D[L'D@G)_R>U=C_ ,*8\?97_BC]9XX_X]O_ *_T MIR?!?Q\5 _X0[6!P%XM\8_6@#C0,'@ 'D!LYIZG.3D$9XQ78?\*7\?01C(([_U_W>__ ->G'Y@>.2"^>E28 8=<@/\B?QH Y)1E2I'&.GI_D5(XQ_G]/ M2NK7X/\ C=0!_P (GJOO_HYIW_"H?'! _P"*3U49 S^X]?\ #^1H Y)3\Q.[ M&/0]#W_/VIQ^X1C QTYXXS[#KCIZ5UH^#WC@AL>$]5P>WD__ %Z4_"#QP00/ M"6J$X/\ RPQV^OO0!RO)!R.%]!TZ_7FNN_X5#XW!;'A/5, MG)XA]3]?:@_"'QNR[?\ A%-4''0P9Q^M '*#(X'R[> !P ,_EZ?Y-*OW>,<$ MGK@?IVS76CX/>-RHSX6U,9)Q^XZ9)Z\_2G#X0>-^,^%M2/KF#G^= ')9(X!Q MU'()YZ_XTY6W9YR.H..U=8/A#XX P?"^IY/<0=#S[]*5?A)XVS@^%M4R><&# MI0!R@&X@<#/K3XU)R0!Z#(S75CX1>-,C/AC4P#Z0$T]?A%XT4_\ (L:ESQGR M.E '* X.X'A1P*01_GO0!RA7M@?3:/\ #UHVY#8 / &.QP#Z] >M=9_P * MF\9@'_BE]3_[\T-\)?&;9_XI?4?;]S['_P"M^5 ')K@ $8 QG@=/Q_\ KT;B MK;AD'&X-_PC&I9!S_ *DT NA21@DDD?0_B:>25; M X&3@ XYR?R_SQ75CX3>,Q@_\(OJ.>/^61Q_G@4'X2^,\8_X1C4L#H/)H Y( M';NVG8Q.0GO MFNN/PE\9E@?^$8U+KG_4T@^$WC3C_BE]2]_W)'8#_'\Z .2/\7.?7GM]?_UT MN..,9XY !Y)Z<E+M !['G)7KVSZ=L\5UH^$OC/&/\ A&-2_P"_ M)I/^%2^,\ ?\(OJ)QZPG_/8?K0!R>">.!S[8ST^G<_I1GH!D*3SMXQZGIZ9[ M5UA^$OC/_H6-2]<^3S_GI0?A-XS/'_",:GR#_P L30!R?*@-MPW'\.#G(/;' MK]>* /FP.N, Y^O^>M=;_P *F\9[B?\ A%]2YYSY)SG)-(/A+XS'3POJ7M^Y MZ4 !@,UQ_Q2^IG'_3$DGG_"D_ MX5+XSP ?#&I8&./)H Y//)&2-W5@3_=/7G_/-&,8& !UQP.W_P"OKZ5UA^$O MC0C_ )%C4LXQ_J3Z4'X2^,SN_P"*7U($DG(A- ')_?"Y.['TY[?Y.*3<#@-C M! [X[Y(QTQS[=*ZT_";QISCPOJ6?4PTO_"IO&?0>&-2 Y_Y8].: .24' ['' MXCMZ].:$S@*#@$=OP!]O_P!77I76+\)?&6/^18U+T_U)H'PE\:?]"QJ>3W$7 MOR?T% ') [MV3][E@.:,X#<+ZD9ZCCT]Q^M==_PJ;QGDG_A&-2R?^F)]Z0_" M7QF00/#&I#/_ $Q]L4 /J3Z8]:ZW_A4WC/)/_"+ZER?^>/N?Z<4G_"I?&>,?\(OJ73'^IH MY,@YP.&(Q_3KGW/Y4@"[3@?*W(&.V>GZ>]=:?A-XT((_X1C4\]CY./\ /-*? MA/XS//\ PB^I8.3_ *GG_/2@#Z+_ &/"3X&U?+%O].ZDY_@%>^5XK^RQX;U7 MPSX.U.#5M/GTZ:2]+I'<+M)7:.<5[50 A )!(Y'2EHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ BHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /_V0$! end GRAPHIC 11 dsgx-20230131xex99d1029.jpg GRAPHIC begin 644 dsgx-20230131xex99d1029.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" ^ )H# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4CTKYF^% MO[-7PP^(FC:UKWB3P3I.L:Q<^(M9$U[=1,TDFW4)U7)SV4 ?0"OID]*\R_9X M_P"1$U'_ +&/7/\ TYW%=]"K4HT9RIR:=X[.WG@L37JMJI-NS MCNV_M(Y,12IP2Y8I;]/)GI@_8T^"A_YIOH7_ 'X;_P"*I?\ AC/X*?\ 1-]" M_P"_#?\ Q5>SCI2UYGU[%?\ /V7_ ($_\SK^KT?Y%]R/%_\ AC/X*?\ 1-]" M_P"_#?\ Q5<#\=_V5_A-X0^$GB;6='\!Z/I^IV5FTUO=0Q,'B<=&!W=17U-7 ME_[3?_)"/&?_ &#Y/Z5U87&XF5>"=65KKJ^YC6P]%4Y-06SZ(X35/@YX*^+7 MQVU8>,/#=AX@^Q^&M,-O]M0MY6Z6YW8P1UP/RKH_^&,_@I_T3?0O^_#?_%5? M\'?\EX\1_P#8LZ5_Z-N:]9J:V*Q%-QC"HTK+1-]D.G1I339XO_P , M9_!3_HF^A?\ ?AO_ (JC_AC/X*?]$WT+_OPW_P 57M%%<_U[%?\ /V7_ ($_ M\S7ZO1_D7W(^:8/A-X0^$WQ:U"U\(>'K+P_!=^$;Z2=+)"HE99(@I.2>F3^= M5O@C^R=\(?$GPA\':IJ7P_T6[U"\TJVGGN)86+2.T8+,3NZD\UVWCW_DLTO_ M &)VH?\ HV*ND_9U_P"2%> O^P+:?^BQ7HU<37CAU.,VF^6[N[OXCDA2INJX MN*LK]/0YS_AC/X*?]$WT+_OPW_Q5'_#&?P4_Z)OH7_?AO_BJ]HHKSOKV*_Y^ MR_\ G_F=?U>C_(ON1XG-^QK\%$BE>9?L\?\B)J/_8QZY_Z< M[BO33TK\_;'_ (*%:#\"-6\3^"KWPCJ6J76G>(M6+W4%U&B/YE[-(,*PR,!P M/PKY#!X2OC:'CS.Z?RU[GO5Z]/#RC.J[+7]#] Z*X[X>?$:'QK\+](\:W MUF?#MI?V(U%H;V93]GA(+!G?@#Y,,?3/M7RAXK_X*K>!M%\1ZA8:3X7U77M/ MMY3'#J4<\<*7 '&]48;@I.<9Y(P<#.*SP^78K%3E"C"[COMI\]BJN*HT8J52 M5D]C[?;[I^E?)>K?\@;XK_\ 92]+_GIU>L_L\?'2^^/WA67Q'_PAE_X7T1SM MLKC4+A':\P2&9%49V#&-QX)SC.#7QC\:_P!J_2/A;XY^)_@F?0KO4KF;QC:: MR+R"X18PL2VC-'@@G/[AAGW'I7IY;@J[KSH*/O1M=7722OULK M>%X;AA&M],T=Q!&Q( W[<,%]P#]*YYY%F4(N3HO3T?Y,TCF6$D[*?YGVC7E_ M[3?_ "0CQG_V#Y/Z5I_&;XO:7\&?A?JWC:^C^W6-C$LBQ0RJIG+L%158Y'S% MA@^]?"_Q5_X*<>'_ (A_#W7?#D/@?4[.74;9H%GDOHF5">Y 7FEEN78K%5(U MJ,+Q4E=Z>0\7BJ-&+A.5FT?9G@[_ )+QXC_[%G2O_1MS7K-?*/[(/Q]LOVBO MB)XQ\1V&D7&C0VFE:=IY@N9ED9F1YVW94#CY^GM7TUXG\2Z?X/\ #^H:WJUR MEIIMA ]Q<3R' 1%&2:Y<=0J4J_L9KWDHJWG9&V'J0G3]I%Z7?YFI17P;<_\ M!6?PE'<2I%X%UB:)6(20WD*EESP<8XSZ5Z#\ ?\ @H#H_P ?OB58>#]-\&:I MITUS'+*UY-J_S,89AA9R4(SNWZ MGI'CW_DLTO\ V)VH?^C8JZ3]G7_DA7@+_L"VG_HL5RWQ&NX++XO7$]S-';P1 M^#-09Y97"*H\V+DD\ 5\E0_\%,=(^&GPN\+>&?"/AJ77M6T_2K>VGO=1D,%M M'*L8#!4'SO@\=5SV-=-+ XC'4(PP\;O3_P!N,IXFEAJCE5=M_P!#](Z*_(W4 M/^"GWQCN[R26!/#]E$QRL$>G%PH],LY)K<\$_P#!5+XC:1J*'Q)HFB:_8,PW MI!$]I,%[[6#,OYJ:ZI<+Y@HW23\K_P!(Q6'OCK\/+;Q3X$U9JUU]YQ9S*,X4Y1=T[_H M?N9XV\56G@?PAK7B&_(%EI=G->S98+\L:%B,GUQC\:_";PKI.H_&WXR6%E-) MG4?$NL#SYE 5II=TCX) 9CC/:OU$_X*5?$?\ X0K]G*ZT>&81WGB6\BT] M0"0_DJ?-E(P1QA IZC#X[U^15CJ-UID[36EQ);2LCQ%XF*DHZE67([%20?8U MW<*X64<+5KK24G9?+_@O\#GSFLG6A3>T=7\_^ ?9W[;W[9-KXTM!\+_AO<>1 MX(T]4MKN^MV.V_\ + "Q1GKY*[1S_&1_= W5?V'OV(+CXPWEMXV\;6LEOX(@ MDW6UH^5?574]!W$((PS#[WW5[D>1?L@>"/AUXY^+MO;_ !-\0VNA>'[2!KL1 MWTZV\%[(A&('F9@$!!)/=@I ()S7ZX67[0OPOZIK<\6GM M#H^IPW4D<))>1F$;DA2J%<],L!WK\OO WBZ\\!>,=&\2:?#;3WVE7<=Y!'=I MOB9T8,NY4?>EHKZ;?YMD9Q7C4JPI)Z+>WF?L-I'[!W MP3L?#=C:ZAX'L[RZ@M8X[B[>XG5Y75 &<[9 202<<%_''C#3M=\?\ C7PMX:\*64XFEM-4UJVA MNKTJ<^6(FD#*I/5F XSC-=F74,5EE.KB,PJN5]E=O^F_(PQ52CC)0I86%O.R M1[]^W/XWO?#/[+7P?\"WE[]HU/4K&VO+PKGYHX84VAN1_%(G!'.SVKX;LO!] MU>>#-2\2!MME8W<%FV5/S22B1E /KB-CBO7J6#P=%-6E4E=_]O._X+0PQ35>O4=](K\M M/S/HC_@DCU^(?TM/_:E5?^"FG[3'VNX3X4>'[K,<12XUN:)NK=8[?KVX=A_N M^XKR/]CO]H33/V>OA=\5-7DN(&U^XCM8=)L'?YYYCY@W;>NQ,[F/H,=2*\2^ M'&AI\9_B]:1>*O$UCHT&IWC7.IZUK%XD"*I):1MSD L>0!ZD"N%9Y"UO-\JU^7Y^AT/%-8.GAJ;]Z5[^EW^9S>K>"=1T3PIH^OWJK!::O),MG&^ M1)(L>T-(!C[FYMH/#_M_C_Q?XD=*+J6XGBTBYU"&*[D\N("(!-V]LDG Q]*WS2M M6KY5=1?-4LDNR;Z_+31V6 MD6QT_4989"$NG+JYC..JH57\<^E3YG#J9,AAD+_P&LLQE4R?+88?" M)N3TNE?U?^1>%4MUJBB18C@@$$9X)(&>< 5 MS_QJ_;Q^*C?%;Q0/"'CF6S\,QWSQ6$5O%:S1^4ORAEM<4/V\?C MN3C_ (6'>?\ @':__&JX>(-+\6Q6D-W>7@GB6TN1,-H0CD@<5^77Q*_Y*-XJ_P"PK=_^ MCFK]9_@[^T5X)C^$OAS_ (2[XM>$[WQ++8K+?27&NV:R>:PW%64,H4C(&,#! M%?DA\0=0M+WQ[XEN+>Z@GMYM3N9(Y8I59'4RL0P(."".IC,35KK5VZ M-)VNM+BS)4XT*4*;T5_4^F/^"IWQ&/B+XS:-X3AD+6_AW3P\J9X6XN,.W;_G MFL/.3U]J[3]G/]DB#XG?L,^(&ELT'B3Q!=RZGI%PP42(UOF.%"K7X=^ /#WA>T(>WTFPALE<#&_8@!;&3C)R?QKCS#&++LOP^'P\O>33?RU M?XLZ,+0>*Q56K56CT^_3\C\%_"/B/4?AOXXTS6;>$1ZEI%ZDP@NHLC?&W*.A MZC@J0?>OW/\ AK>>$/BAX"T+Q7I.D:$/%%[I>I:=%,+S3WL)Y7:'?Q+&0\:X4D*PQW+>M5GM2CF& M"IXRD[25KK79]/D_U)RV%3"XB5":T?Z?YGR=_P %0/&%A=?%K1O".EVMO:VV MB6/G7'D0K'NGG.<' &<(B8/^V:]>_P""6/PDM&\">*?&6IZ?#<'4+M+"U-S" MKX2)=SLNY>A9U&0>=A]*\D^-?['WQ(^*_P 6?%7BV75_#<8U34)9HHI+F?=' M$#MC0X@P2J*HS[5^AW[-WPR3X0?!/PGX8\R*:>ULUDN980=CS2$R2$9Y(W,0 M"0. .!TJ\[7_-_B5@Z4JV.G7FM%>WY+\#M?^$0T/_H#:?\ M^ D?_P 36)XTL_#'@[PGK&NWND:>EKI]I+=2L+2+.U%+'M[5V5>/_M7>"_$7 MQ&^"6N^%O#-U96.H:MY=L]Q?NRQK"7!D'RHQ)905Z?Q9SQ7PV&3K5H4Y2LFT MCZ.LU"G*26R/Q1GEO?B#XYDE6#?J&LWY<0VZ$CS)9,[54/!923R2NZ L@ :-1]X+SGCWKZ?_;D^!NM_'KX6:9H. MA7NGV5W;ZI'=M)J+NJ%1'(I *(QSEAV]:_1LPS"E+,<+3A+W8ZO?T_0^4PN% MFL)6G)>\]#\8H(7N)DBC4O(Y"JJC))/05^Q7[%_[,.F_!3X/QW7B'3;:?Q-K M"+>WYNH5D-NF,I",YQM!)..Y(["O#_V4O^">>I^"OBI9^)O&^I:/JECI(%Q: MV6GO+)YEQGY"^^-1M7EN,Y(';-?>/CRWOKKP7K<&ER)#J,EG*EO)(Y15D*D* M20"0,]P#7#Q%FJKRC@Z#TT;?Y+]3IRK!>R3Q%5:]#\*OC;XCB\9_&/Q?JMK' M EK=:I/Y"VZ;$,8X\,&1)(8%:1I MI(S+]YAG.6]:^1?#W_!-KQ\?$NG3ZEXB\.-:_:D>'=^5WZ]+6%E>&E)U9U5OI]^Y_.VZ MM#*58%74X((P0:_6W]D;]HWX4>/_ (7^'M'U>\T'1_%EA;)9W%EJBPPO,4&U M7C9P ^X $X.0'KZY)GN]+O8V%J[GEG1D M!*$]2-I!/IFO@?Q1\"-?\(W<=O=W>G2.XR##+(P_6,5[E5X/B+#1Y9N+7X/M MV9YT%7RJJ[Q33_$_4']K?XM?#KP3\$?%46EZIX9?Q'=63V]E:VMQ;FYW/\N] M%7+';G/2ORL^"7@Y_B!\6_"?AY$#_;]1AA()(&W<,Y(Z#%=WX._9%\7^-KG3 MX;/4M$A-[((D:>>8;23CG$1K[:_91_X)ZZO\$/B18^,O$OB73=1N;)9%AL-- MBE*[F7 ]K(TDJV95X-PM%>9]BV_@C0+> K".)=%T_:BA1FUC/ X_NU-_PB>BC_ )A%A_X"Q_X5K45^4\\NY]KRKL?_V0$! end GRAPHIC 12 dsgx-20230131xex99d1030.jpg GRAPHIC begin 644 dsgx-20230131xex99d1030.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" !" , # 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBD)"C).!ZF@!:**\H_:(^.UI\$?",3VUN-:\8ZO(+'P]X?B<";4+MB%4 $C" M*6#.W0*#0!ZH94$HCWKYA!8)GD@=3C\13Z\,_9M_9YNOAC'=>+O&NM7'C#XI MZY$#JNMWK[_LRL0YL[8$D1P(V!M7 .T' X R_P!H']I#6- \4V7PP^%.EV_B MWXJZFNYH99,6FB6_>ZNV . ,C"<%NV> 0#Z'HK\DOAG>?%2\_P""G^E^$W^) M^N^,;7091/K,TUT[68 M0US$D /EHGF.8U QD'J*_6V@ HHHH ***XJY^-/ M@BV\9P^$AXDLKCQ-(X3^R[1S/.A)P"ZH#L'NV * .UHHHH **K:CJ-KI%A<7 MU[<16EG;QM+-/,P5(T R68G@ #O7-?#3XK>&?B_HMSK'A+4&U;2(+I[,7ZP2 M1PSNF-QB=U E0$XWIE<@@'B@#KJ*Y?3?B?X3UCQK?>$;#Q!87GB:QB\^ZTR" M8/- F<9<#[O/K7S?_P %!OVV%_92\&6&EZ!"E_\ $#Q KC3H'7F2ZCXCUS3]#L8UW-/?W*0J!]6(S6?\//BQX. M^+6G7%_X-\2:=XDM+>3RII=/G$@C;GAL=.AZU^:GQM\+>#O#?P?M/^$BCO\ MXU?M/^/M*@2&QU'==7&D//!OD*6WW;>.(%@HVA@V,;1N(^N/^"?_ .R4_P"R MA\'FL-5N4N_%FN2+?:JT6?+A;;A(%SUV D%NY)[8H ^GZ*** "BBB@ KY$_: MP\3:M\:_BGX5_9X\(7DUO%J)CU?QGJ=A<>7)8:7'("(=P&5DE*X '/ R,$U[ M9^TE\=]'_9O^#VN^.M94SQV*+';6B$![FX<[8XUR>Y.3Z*&/:O@?]EW]M'X: M?#W1;V6TUR/Q3\;OB-JGVS5KG5\Z=IME.XQ'$]S*J[8(AQ@;BS$A>HH ^_?C M!\9M!^!'A>Q-S!;>ZE.%^6.->N.FYSPHY-'[7J+2U)[\X>48,A'IBMSX7?!>WT35I/&OBB M_3Q=X_OU!DUF09ALHR/^/:R3)$,(R>GS/G+,W&.U^('CK2/AEX*UKQ5KUR+3 M2-)M7N[F4]E49P/4GH!ZF@#P;]N;]KJV_9A^'T%MI/EWOQ"\0M]ET*P8956) M ,\F>-B9'!ZD@=,D>,^%=='[//P[B\%_#8VWQ._:<\=J;W6-0@G6X$-Q(K,] MS=3$[8X8LX1&*[L9QDG/(?LR?!7_ (;[^+/B;]H'XM:5%?>")FETOPUX8N"_ ME"-,()&&>0!DY4\R,QXV@5]3?%3Q9\(_V"_A-J?B'3O#FE>'C/B&RTS2K=8Y M]2N<82,$#)]2S< D^X!Q?P1^$?PY_X)]_##5?&GQ'\26C^,=78W.O>)[L-) M-<2,V?)@0 N5#-T498\G@#';_#?]NKX6_$SX<:OXXLKK4]-T"PU!M,B?4;(I M-J$P16VVL2%GE)# ;0-V>H%?EO\ M.W'BO6?#F@:3XYFO/'7QU\?2)#_!GA"T\/> -# M,LNNW6KH9;M8D;8%+(^R.1GPH0;^C'D*:^Y]>U_3?"^CW>K:Q?6^F:9:(9)[ MNZD$<<:CNS'@5\V_LC_!/3?V*?V7Y+CQ)#''K4=M)K/B.[M(S+([@%M@P,ML M7Y0/7/K7A/PC^.OA']O[XK7=[X\\4Z9X?\"^';Q5T3X=7FH);S:O-D;;J[5F M'G*"1MC7@-@'/.X ]>C^)/Q*_;$O[RP^'$UY\-OA(DC6MSXVFB,>J:LNT;AI M\;*#$O)'GGD8RO/3WSX1?!/P9\%- 72O">E16S#/VK4)F\Z]O)"=S//.V7D8 MDD_,>,X P*^!O&5OX]_:G_;W\1?#?PO\4-9TOX0^'K2$WI\*SBWAL@+=0UN MC+\KNTQ(+'=@$C'R8K] /A!\'_#OP1\'0^'/#:71M0YFGNK^Z>YN;J8@!I99 M'))8A1TP!@ "@#MJ1F"J22 !R2>U+7F/[1/P_\ &/Q3^&=]X6\&^*(/!UWJ M9$%WJSPM+-';G[ZPA2,.W3)Z GO@@ ^:_CGX]U;]M?XB7OP)^&6JO:^ [!@? M'/B^T&8RBG/V"!\#>S,JABAQC<"2H8%?VP/VH],_9-\&^%/@K\*FL;;QSJ,, M&E::DTJ^5H\#D11SS$\!B3D;N."QXZR_ ']@+XA?LY^*-,7PM\>=2B\&P,;B M\T9])B9;N9F&\%69E 8 #?\ >':OH[QM^S%\)_B1XCGU_P 4?#[0==UJ=!'+ M?7MFLDKJ%"C+'KA0 /3% 'G'[&'PX^'OP:\##2M)\8:/XQ\8-X)=D4YP#ZD]2:^+?@[^S;XG_;Y_:H\5_%/XK:!J6C_#RQN6M[73 M;QY[2:<*,0PQ_=<*HPSL-OS' ZG'VKX._P"">GP2^'_Q?M_B-X?\.7.E:S:R M":UL[>^D6RMY0""Z1 ]\_=)*^BBOI'&* /.OA5^SS\/?@M]JD\)>&K>POKN0 MR7.I7#O=7L['^_<3,TA'L6P/3FO1J** "BBB@ HHHH ^+_VL_P!GWXF?M&?M M)?#"S&FV+?!WPQ=VVJ:E]JNPGVZ7SLRH8QDG$:A1P,[VYYXU?VE_^"9?PI_: M%N4U2RA/@+Q$"/,U#0[=!%.NW $D'"G&!\PVGW-?7=% 'QA^S'^Q%\4?@+XI MMH=0^/.KZQX"T^42VV@6T!3[0?[LAD9Q&GJJ'GU6NS_;=_9]^(?[3FA^&O W MAW7=/\/>")[U;CQ'%OB#K]WIJ_#7PS%; MM:6,DKO-,T;"1E\L<*6D8G.<80 YK[;HH 9-#',^-?V,/@C\0M474=<^&N@W-Z'#F:*V$)<@YPVS&1Z@]:]IHH Y?P!\+_"7P MKT@Z7X0\.:=X.WA7[TDKA M5'U)KRWQ=^U9\)/!-S]DU'QYH\U_DK]BTZ?[;< CJ#'#N8'Z@4 >L45XD/VH M8-8@\SPO\.?'GB<^L6C&R3GI\UTT0Q[C-5U\=_'KQ7&ZZ/\ #+P[X/5@?+N_ M%7B W#+QQF"UB;)SV,@X[T >ZT5X=IGP]^.FJWIE\1?%C0],M"O-KX9\,A6S M[2W$TF /]TY]JMW?[.%QK:H-;^*7CW4P.66'5([)28VG[)7PZ5V?4;35_$#%MP.LZY>70 M4^P:7'?TK5LOV8/A%I]QY\'PU\+B;;L\Q]*ACCU2*5Q_P%"2>O85'\./VP_@[\7/&2>%/!_C>UUW7W1Y%L[>VN = MJC+'!_#FCG-AX?TNQ. ,VUE''P.G11TJ#2_AUX7T3Q9J/B?3 M_#^FV?B+48UBO-4@MD6XG4= [@9(X'Y#TH Z*BBB@ HHHH **** "BFRR)#& MTDC!$4%F9C@ >M>3^(OVB;"&^;3?!WA?Q#\1=4QRN@6JK9Q_[]Y.T< ^BNS? M[.: /6J0G R>!7C<"_'3Q; WGGPC\/H9.5$+3:O=QC/0Y$40..XW"LRZ_97D M\:0QK\1/B7XR\8A'+?8[6_\ ['LR#C*M%9B,N/\ ?8T >A^-OC5X"^'"D^)O M&&C:*V<>5=WL:R9QG[F=WZ5P,O[7?A;5@4\%Z!XJ^(4Y_P!7_8&CR>0_./\ MCXF\N+'?.X\8KO/"OP0^'W@B&)-#\%Z'IS1C GCL(S,Q[EI2"[L>[,23W-=I M'$D*!(T5$'15& * /#3XT^//C1$_L3X>^'O =JYS]J\6:R;NYVYZBVM4*@X[ M--UX[9-J#X.?$G7W+^+/C%?K&2Q^R>$],BTR, CA=[F:0XYY##Z5[710!XG> M?L=_##Q#-;7'B[2K[Q_=6W,4WB[4[C4MA[[4E@:7X>L5&%M=*LX[:(?144"MNB@ HHHH **** "BBB@ HHHH **** "BBB M@ HHHH 1E#*58 @C!![TD<:0QJD:JB*,!5& !]*** '4444 %%%% !1110 4 6444 %%%% !1110 4444 %%%% '__V0$! end GRAPHIC 13 dsgx-20230131xex99d1033.jpg GRAPHIC begin 644 dsgx-20230131xex99d1033.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" !S CX# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ MHHHH **** "BD)Q7B'C[]M;X+?"_Q9?^&?$_CNPTG7+%@MQ9S*Y:,E0PSA<= M"#0![A17S?\ \/%?V=_^BF:7_P!\R?\ Q-36?_!0G]GR_N%AB^)FD[VX&[>H M_,K0!]%45RO@CXJ>$/B3;?:/"_B33->B W'[#L45\W_\ M#Q7]G?\ Z*9I?_?,G_Q-'_#Q7]G?_HIFE_\ ?,G_ ,30!](45\Y0?\%#OV>[ MF>.&+XE:8\DC!%4+)R2< ?=KZ(MKB.[@CFB8/%(H=&'<$9!H EHHHH **0G% M>6_%C]I_X7_! E/&7C'3M(N0,_9&DWS^WR+D_I0!ZG17QY)_P5A_9TCN3#_P MDVI-@XWKI$Y3\]M>H?#/]MOX*_%J[BM/#WCS39+V0X2UNW-O(Q] 'QDT >YT M4U7#@$$$$9!!R*=0 4444 %%(3BO)/BM^UC\)_@H[Q>+O&NFZ==IULTD\V?Z M;%R0?K0!ZY17Q?<_\%H+HQ+K&LS(#CS4TF7;_+->E_#?]OSX%?%.YBM= M'\=V=O>2D!;?4E:UGT +11 M10 4444 %(6 I'=8T9G8*JC)). !7Y\^,_VZQ\4/VX/AW\*_ U_O\*6.JD:K M?PGY;Z=8W_=J>\:'OW/TH _0>EI ,4M !117D?Q7_:O^%7P/\1PZ#XW\86>@ M:K-;K=I;7 ,JP_"@#URBOF_P#X>*_L[_\ 13-+_P"^9/\ XFI; M7_@H7^SW>3+%%\3-*WL<#<'4?F5H ^BZ*YKP/\2?"WQ*TW[?X6U_3]>M!UEL M;A9 OUQT_&ND!S0 M%%% !17AGCG]MWX)_#?Q7J/AOQ'X\T_2];TZ3RKJTE5 M]T38!P<+Z&L+_AXK^SO_ -%,TO\ [YD_^)H ^D**^;_^'BO[._\ T4S2_P#O MF3_XFC_AXK^SO_T4S2_^^9/_ (F@#Z0HKYO_ .'BO[/'_13-,_[YD_\ B:]R M\"^.M#^)7A33_$OAO4(]4T34(_-MKN+.V1*_L[_\ 13-+_P"^9/\ XFC_ (>*_L[_ /13-,_[YD_^)H ^ MD**YCX;_ !+\-?%WPC:>)_"6JQ:SH5VSK#>0 A7*,5;&0#PP(_"NGH ***2@ M!:*P?&/CKP_\/M&EU;Q+K%GHFFQ?>N;V98U^@SU/M7S7XC_X*C_L[^&KU[:3 MQC/?LIP7T_3YIT_,+0!]945\M>$O^"F7[/7C"[2W@\;C3Y'.%_M.TEMP3]6& M*^D/#?BG2/&.DPZIH>IVNK:?,,IFVWBNXO;+7 MK*#PP%.IR3Z5*HB+!"JCCYB0ZD =C70V7QJ\*:EXP\/>&;6^>XU77M,;5[)8 MXF*-; *=S-T4G<, \GGTH [JBBB@ HHHH 3&:_GU_P""E(_XS1^(W_7Q#_Z( MCK^@NOY]/^"E1_XS2^(W_7Q#_P"B(Z .X^#?_!*WXC_&GX8^'O&^DZ_H=KIV MM6_VF"&Y=Q(J[BN&P.O%;^O_ /!'#XS:59/-8ZCH&JR*,^1%<,C-[#@88!-?>GQ@^#?A3XZ^"+[PKXPTN+4]+NE(&X#S('QQ)&W57'8C^5?SV?M-? M C5_V8?C3JW@^[F=_L4BW%A>CY3- 3F.0>AXY]Q0!_24#FEKYH_X)[_'V;]H M+]F_0]4U&;S]>THG3-0<]7DC'RN?]Y2I^N:^EZ "OQ@_X+5?\G&^$?\ L68_ M_2F>OV?K\7_^"U?_ "<;X1_[%F/_ -*9Z /(?V8_^">/CG]J7X>S>+_#NLZ3 M86$5[)8F*]9P^]%5B> >/F%>O?\ #EWXL?\ 0S>'/^_DG_Q-?6'_ 1M_P"3 M5=0_[&&Y_P#1<5?>% 'XTZ5_P1G^*UCJ=IVLK@X)M8P/GF /\0R /'9K[28CSJNC$W$ M4?/!;:-R_4C%?T-@Y QC'M0\:RH4=0ZD8*L,@T ?-G_!/CP!XU\ ?LU^'HO' M6N:CJ^K7Z_;(K?49#(UA P'EP GG '.">,X%?2M(JA0 !@#H!2T %-9@H))P M!R2:=7R;_P %+OC]=? O]FW5%TBY-IX@\1-_95I,AP\2N#YKJ>Q"9 /8G- ' MR9_P4"_X*::J^LZG\.?A+J9T^UMG-OJ/B2T?][*PX:.!A]T9X+CGT(KXT^!G M[(WQ:_:FOIK[P[I%Q=V)D(GUS5)"D&\]?WC M2+185;4-6N$^\ELA&0#_ 'F9E4?[V>U?T+>$/"&C^ _#6G:!H-A#IFDV$*P6 M]K NU44# _'W[T ?D?9_\$3?B#-8B6?Q[X?M[DC/D"&9@#Z;@*\6^-G_ 3+ M^-/P6TV?5ETJ+Q5I5N"\ESH;&5XU'5C'C=CZ U^^.*"H/:@#X*_X)*>"?B;H MWP=O-;\9:[J3^&=1DQH>AZ@2YAC'WIE+?,BL> HXX)QS7WJ*;'$D2!$544=% M48 I] !1110 4E+7R+_P4$_;7L?V7? 9TC1KF*X^(.L1$6-J.3:QG@W#CL/[ MH/4CVH \8_X*@?MW)X TJ\^$W@740?$=[$8]9O[:3FQB8?ZD$=)&!Y] ?>O@ M3_@GJQ?]LKX9ECDG46))_P"N3UX!K.L7OB#5KS4]1N9+R_O)FGGGF8L\CL26 M8D]22:]^_P"">7_)Y/PR_P"P@W_HIZ /Z':*** "OQ0_X+/,_#NLZ1 M8:>M]+8&*]9Q)OC5"3P",?.*]*UG_@C7\8M/L)9[/6/#^HS(I80).Z,Y'8$K MC-?9/_!',9_9$F/_ %,E[_Z+@K[E/2@#^;?X??$KXD_L>?&&26PFN_#_ (AT M:Z,%_I5P2(I@#\T4J=&4CO\ 0CM7]!7P&^+VF_';X2^&_'&EKY4&JVJRR0$Y M,$O22,G_ &6!'Y5^+O\ P5C.GG]LO7OL.SSAIUE]LV=?.\OO[[/+_2OT*_X) M&1WJ?LD69NMWD-J=R;?/39D9Q^.: /M>BBB@#\L_VH_^"6?Q&^-OQ\\8^-]( MU[1+73=9O/M$,-R[B11M4'?\ OY)_\37[/TO6@#^9 M/XX_!_4_@/\ %#6_ VLW-O=ZEI,BQS36I)C8E0W&<'H:^F?@Y_P2M^(_QI^& M7A_QMI.OZ':Z=K-O]IABN7<2*NXC!PN.U<+_ ,%)N/VT/B-_U\Q?^B4K]B?^ M"?W_ "9Q\+?^P4/_ $8] 'YQ_P##E[XL#_F9O#G_ '\D_P#B:_4G]ECX4ZE\ M$/@'X0\$:O<076HZ/:^1--;$F-CN)XSSWKU;&:6@ HHHH ^%O^"Q0Q^R=#_V M';7^3U^4G[+_ .S!XA_:I\;7OAGPW?65A>6MH;MI+XD(5# 8& >>:_5O_@L7 M_P FG0_]AVU_D]?(7_!&+_DXSQ%_V G_ /1BT 3?\.7?BQ_T,WAS_OY)_P#$ MT?\ #EWXK@_\C-X<_P"_DG_Q-?M!10!X=^Q=\#M8_9S_ &>O#_@37;JVO=3T M^6Y>2:S),;"2=Y!C(ST85[C110 5S_C_ ,:Z;\./!&N^*=8E\G2]'LY;VX8= M=J*6P/-M!^(OANR\0>&]4MM9T>]C$ ML%W:N'1@?Y'V/(H _$WXD_\ !)3XV^!=.GOM-BTWQ9#$"QBTRB,!GZ5 MZI_P21^$?Q-L_C!X@U2_OM<\,^%=!4VVHZ3/OBCO+IA\L31-Q\H^8G&1Q@\U M^O6*:D21ERJ*I<[F(&-QQC)]> /RH \O\0_!&/7[?X@0OJ91?%EY9W3 P@^1 MY"0KMQGYMWD^V-U8/PW_ &9K?X>^.K;Q$-=FU%K1[F&TAEA ^SV;@>5;*<_= MC._GON'3%>X8S1B@!:*** "BBB@ K^?/_@I5_P GI?$;_KXA_P#1$=?T&5_/ MG_P4J_Y/2^(W_7Q#_P"B(Z /V)_X)_?\F;?"O_L%?^U7KZ#KY\_X)_?\F;?" MO_L%?^U7KZ#H *_)3_@MQX9M+?Q/\-]>1%6\N;6YM)& Y94967/_ 'V:_6K- M?BM_P6+^+-KXR^/.C^$[&99H?#-ALN"IR!/*=S#ZA0M 'L?_ 1!UN>71OB? MI+,3;13V=RH/0,RR*]+7L!=][*H/((XP MHKU3_A\?\:_^?#P]_P" K?\ Q5>[_P#!+;]F/X8_%_\ 9TO=;\8>#]/UW5$U MNXMUN;I"6$8CC(7KT!)_.OL3_A@[X#?]$UT?_OV?\: /$/\ @G!^VKXY_:N\ M0>,;+Q?;Z;!%I%M#-!]AB*$EW(.=_"[]G[X??!:YOKCP5X7LO#\U M\JIB4 %%%% 'EO[1W[/?AK]I;X:7_@_Q)$524>9:WL8'FVDP M'RR+_4=Q7X5?M-_L6?$?]EGQ!(-9T^74?#YD_P!#\0Z>C-;R#/R[B.8W]C^! M-?T3U3U72;+7-/GL=1M(;ZRG4I+;W$8>-U/8J>#0!^&7[,__ 5"^)OP,2TT MCQ!*WCGPQ#M06VH2G[3"@[1R\G@= V:_6G]FS]L+X<_M0Z-]H\*:J(=6B3=< MZ)?$1W<'OMS\R_[2Y'TKYQ_:8_X))>!/B7%?:S\.YSX*\1$-(MF!OL)VZX*] M8\^JG'L:_)?5--\<_LR?%N2UG:Y\->,?#]S]^)RK*PZ$$?>5A^!!H _IFHKQ MG]D+XX_\-#_ #PMXSF5$U&YA,%_&G1;B,[7Q[$C/XU[-0 5^47_!;S69_P"T M_AEI6XBV,5U<[>V[*K_*OU=K\Q/^"V?@>XO/"OP_\5Q1EH;.YFL9G X7> R_ MJIH YS_@B)HENVH_$S5RH-VL=K:JQ'(0EF/ZXK]7J_&K_@C!\3;3P_\ &CQ1 MX-O)EA;7M-$]F'.-\T+99![E&)_X :_92@!:*** "BBB@ HI*Y#XK_%/P]\& M/ >J^+O%%_'I^D:=$9'=S\SM_"BCNS'@"@#AOVL/VF_#_P"RW\*[[Q/JTJ3: MG*#!I>F!@)+NX(X ']T=6/8?A7\^'Q9^*7B#XS^/M7\7^)[U[[5M1E,CNYR$ M7HJ*.RJ, "NX_:M_:;\0?M2_%&\\3:P[0:?$6@TS3@Q*6L&> !_>/!8]S]*\ M7H *^B_^">7_ ">3\,O^P@W_ **>OG2OHO\ X)Y?\GD_#+_L(-_Z*>@#^AVB MBB@ K\4/^"S_ /R=)H/_ &+%M_Z47%?M?7XH?\%G_P#DZ/0O^Q8MO_2BXH H M_L8_\%*;+]E#X//X(N/ \_B%VU.?4/MD=^(!B18QMVE#TV=<]Z]5\;_\%M=5 MO]'G@\+?#N'2]0D0JEU?WWGK&<<$*%7./>L7_@G]_P $^/AI^TY\ I?%_BN? M6(M6&KW-B/L-T(XPB)&5."IY^7SM/O'7 MY+RV)S'(/PX([$$4 :'PX^&/Q(_;7^-TZ6PGU?7=9NC'?!.C#-EI%JD'FD8:9\9>0^[-D_C7AW_!.OXJ M^ _BI\ ].NO"6AZ7X9U>R MM:TS3XECVW"C'F>I5Q\P)]2.U?5% !1110 44 M44 ?SY?\%)O^3T/B-_U\Q?\ HE*_8G_@G]_R9Q\+/^P4/_1CU^.W_!2;_D]# MXC?]?,7_ *)2OV)_X)_?\FOR<_9M_:7\4?LN^,;SQ+X4ALIK^ZM3:.M[&7382#P 1SQ7ZQ_\ M%B_^33H?^P[:_P GKX3_ ."5WPD\(_&+XY:WI/C'0[;7M.ATAIX[>Z7*J^]1 MG\C0!N_\/C_C6/\ EP\/?^ K?_%5Z=^S+_P5(^+'Q>^/?@?P;K-GHD>EZUJ4 M=I<-;V[+($;KM.>#7W;_ ,,'? ;_ *)KH_\ W[/^-:WA3]CGX-^!_$>GZ]H? M@+2].U>PE$]M=0H0\3CHPYH ]F%+24M !4<\*7$$D4B+)&ZE61AD,#P01Z5) M10!^//[. M8AX'\3S%8X[B5]UA,"0_ZLD]FX]Z^[(9H[B))8G62-QN5T.01Z@U_/C^V M3^P]XL_9%UZVDNI_[<\):@Y6QUN%-HWCGRI5_@?'/H1TZ''V?_P2#_:KUSQ7 M=:G\(O$U\^H)96AOM%N)W+2(BD"2 D]0 0P],-0!^H5%(*6@ HHHH **** " MOY\_^"E7_)Z7Q&_Z^(?_ $1'7]!=?AY_P4!_9P^*/C?]K7QYK6@> M>U?2;J M>(PWEI9/)%(!"@)# <\@B@#]0?\ @G]_R9M\*_\ L%?^U7KWR[O;>PA:6YGB MMXEY+RN%4?B:_G1M?V<_VAK&WCM[;P3XWMX(QA(HH)U51Z #@5*/V:_VBM58 M0MX)\;3%N-LL4V#_ -]'% 'ZZ_M<_P#!1+P#^S[X6U"TT#5+/Q5XXEC:.ST^ MRE$L4,A'#S,IP%'7 .3T]Z_%WP/X-\:?M3?&B#3+,3ZWXH\17IEN;IQD+N.9 M)7/\*J,GT &*]Y^%O_!+3XZ_$:_A.K:+'X0L7(,EUK$PWJ/78I))K]8?V2?V M+O!G[)GAE[?1\ZOXCNU'V_7;J,"67_80?P(/3\\T >C_ .^$^F? _X5^'/! M6DJ/LNDVJPM(!@RR=7<^[,2:[RDQS2T %?B__P %J_\ DXWPC_V+,?\ Z4SU M^T%?DQ_P5P^!OQ ^)WQZ\,:CX3\'ZQXAL8?#T<$EQI]JTJ)(+B8[20.N"#^- M 'N__!&T_P#&*NH?]C#<_P#HN*OO"OYQM._9K_: TB#R;'P)XTLX=V[R[>VF M1<^N!5G_ (9^_:-_Z$_QW_WZN/\ &@#^C"D!S7\Z2?L_?M&[U_XH_P =]?\ MGE.<'S%D$2A@V>E?#+XR M^"_C%HD.J^#_ !%8ZY:2+N_T:8%T_P!Y.J_B*^'/^"@G_!.#Q/\ 'KQC=_$7 MP7XAEU'6GA6.30=3<"-508 MW_A'^R>Y)S7YC^(_@K\8_@AJKKJ'ACQ/X:N8 M6_X^;>&54^HD3Y3^= '])5S=0V=O)/<2I!!&I9Y)&"JH'4DGH*_ C_@IC\3_ M Y\5?VK->U+PQ<17NGVEM!8O>0$%)I8UP[ CJ >,^U>17'BKXP^/D72IM3\ M9:\C_*+-IKJ<'VVY-?2?[*__ 2Z^(WQ<\0V&I^.].N/!?A!)!)5STRV,4 ??W_!)SPQ?>&_V/=%DO4:,:EJ%U?0!O^>3,%4_0["?QK[(K M*\*^&--\%^'--T+1[5+/2].MTMK:",8"(HP!6K0 5Y-^U)\";']HWX(^)?!% MTR0W-[ 7L;IQG[/=+S$_TW<'V)KUFD(R: /YEY(O&?[-GQ?4,)] \8>&K\,# M@@I(AZ_[2L/P(-?MM^R;_P %#?A[^T/X=L;75=3MO"_C5(UCN],OI1&DLF,% MX6/#*3VZCI6C^V-^P7X._:PTM;UI/^$=\:6J8MM;MXPWF =(YE_C7WZCMZ'\ MD_B]_P $\_CC\&K^9G\)WFOZ?$3LU+05-PI /!VK\P_*@#^@N.5)8U=&#HPR M&4Y!%9/B;QEH7@O3WOM>UBRT>S0$F:]G6)<#ZGFOYO;;Q%\7_"8_L^#4/&6D MA3C[,DEU%CVVUN^'/@3\=OC=?HEGX8\6:^TI'^D7L3>6S;D?:Q5L'V((_"MVOD_P#X)Q? 3XA_LZ?! M6]\+^/9;3][J#7UC:6\ID>U5U'F(QQC&Y=P [EO6OJ\D*"2< =S0!2UK6++P M]I-YJFI74=EI]G"T]Q<3,%2.-02S$]@ *_![_@H+^VK>_M0?$!])T:XE@^'V MC3%;"WSC[5(.#<./?G:#T'UKV?\ X*A?MV?\+$U*Z^$_@74=WAJSEQK%_;2< M7LRG_5*1UC4CGU(]J_. *6. ,GT% "45T>B?#?Q9XE.-)\,ZOJ?_ %Z6,LO_ M *"IKIT_9G^+7_)Y/PR_["#?^BGKR M#6_A'XX\-H6U;P=KVFJ.IN]-FC _-17L/_!/>)X/VS/AFDB-&XU%LJPP1^Z? MM0!_0W12 TM !7XH?\%G_P#DZ/0O^Q8MO_2BXK]KZ_(O_@K-\"?B%\3/VC=& MU3PIX-UCQ!IT?AVW@>ZT^T:6-9!/.2I('7# _C0!]'?\$<_^30YO^QDO?_1< M%=A_P46_9+B_:4^#\]]I-JC>-?#T;W.G.!\TZ 9>#/\ M 9 ]0/6L_\ X)4^ M /$?PV_9>ETCQ3HE[H&IG7[N<6E_"8I/+9(0&P>QP?RK[%/(H _G<_8S_:T[7-'NX[ M[2]1@2YMKB)LK)&PRI'X&OR<_P""F'[!>OCXG#X@?#/PW=ZO9^(&+:EINF0% MS;W..9 HZ*_4^^?6O7_^"67BKXK>!+*[^&'Q#\%^(-,T1%:YT?4[^SD6. ]7 M@9B. >J^^10!^C%%(*6@ HHHH _GR_X*3?\ )Z'Q&_Z^8O\ T2E?L3_P3^_Y M,X^%G_8*'_HQZ_+W]O[]F_XH^-OVM/'NLZ!X"U[5]*NKB(PWEI9/)'(!$@)# M <\BOU4_8A\-ZIX0_93^'&CZU83Z7JMIIHCN+.Z0I)$V]CAE/0\T >Y4444 M%%%% 'PM_P %B_\ DT^'_L.VO\GKY"_X(Q?\G&>(O^P&_P#Z,6OMW_@JIX \ M2?$C]F>+2O"VB7NOZD-9MI3:V$)EDV /EL#L,U^0^G?LM_'?2)3+8?#OQ?92 MD;2]O9RH2/3(H _I!HK^<_\ X9^_:-_Z$_QW_P!^KC_&C_AG[]HW_H3_ !W_ M -^KC_&@#^B\G%+7QS_P2T\)>,?!G[.-[8^.-/U73-8.NW$BPZNKB8QF.+:1 MNYVY!_6OL6@!:YOXB_$'1/A9X)UCQ5XBO%L='TNW:XN)6ZX Z =V)X [DUTE M>%_M@_LQK^U5\*9/"7_"27GAN:.874,L W0RR ':LR=63GL01UYH Q/V'T76'2*<'_9.=KCZ'\*^C@P8 @@@]Q7\]'QA_8)^-OP M.U25I_"=_K%A$V8]5T)&N(R!W^0;E_$5Y[:^/OC#H$!TRWU[QC8Q+\AM4N;I M /;;F@#]4O\ @L-\7/"EA\!K?P(][;W?BK4=2@N8K*-@TEO%'N+2-C[O4 9Z MY-?(?_!'WPO?:Q^UBNJP(QL](T>ZEN9!T'F*(U!/N6_0UXK\,/V0OC5^T#KT M1L/"FLRQSN/-U?6$>*%0?XC))RWX9K]I?V+/V0-%_9)^'#:9#,NJ>)M299M6 MU79M\Q@/EC0=D7)P.Y)/>@#Z)HHHH **** "BBB@ I,4M% !28I:* $Q2T44 M %%%% !24M% !1110 4@&*6B@ HHHH 2FO"DHPZJP]&&:?10!!'86T1REO$A MZY5 *FQBEHH **** "BBB@!,48%+10!"UI YRT,9/NHJ18U0850H] ,4ZB@! M#QS7Q/\ MO?';QUXKN;KX)_ [3;O6?&M[&$UK4K+B/2H''W&EZ([ ^N0#[U] MK31^;$Z;F3<"-RG!'TK&\*>"M$\$V4MKHNG0V*32M//)&O[RXE8Y:21_O.Y/ M)9B2: /S.^!__!%^#RX+_P"*OBB224X:32]".![@S,/Y"OM_X8?L5?!/X10Q M#P[\/=(6YC'_ !^W\/VRX8^IDEW'\L"O;<4M %:TTZTL(EBMK6&WB485(HPH M'T JQBEHH BEMHIU*R1)(IX(900:Y&?X,> [CQ+8>(6\'Z*-=L)/-MM22QC2 M>)L$9#@ YP379T4 (!BEHHH *3%+10 F*",TM% "8HQ2T4 (!BEHHH *0\TM M% "8S1BEHH **** "BBB@!,4M%% !1110 F*6BB@ I#S2T4 -*@_3TJ%M/M7 M<.UO$7'\1C&?Y58HH :J!!@ >@%+TI:* "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B )BB@ HHHH __9 end GRAPHIC 14 dsgx-20230131xex99d2001.jpg GRAPHIC begin 644 dsgx-20230131xex99d2001.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" "< RT# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBB@ HHHH **** "BN&^+WQ@T+X*>&8M>\0I=O8R7*6BBRB$C[V5F'!(XPA[U MYI;?MR?#C[7!#J4&OZ%%,VU;G4M,9(@?A!'6O/?C!^T-X9^"=_H]GKUOJ=S<:J)#;1Z;;"8G85!!& MX'/S#IF@#T^BO&O /[4_ACXB^*[+P_IVB^)+2\N]^R;4--\F%=J%CN;<<<*< M<=<5[#)*(HR[850,DD]!0!)17SOK?[Q?#KXAZ-\4_"5GXCT":6;3+HL$::)HV!4X8$,.Q!&1D<< M$T =-16#XV\*8M(+8&KOIH^S8SUR'W8_#/M0!])450T+6[3Q)H]GJEA)YUC>0I/!(5*[T M894X(!&0>XJ\3@4 !.* +;27-Y*K<0;0-J>['. M3Z#'K78Z[K5OX7VBM=77HSE MH8FEB>;V4K\K<7ZK=?*YH45\XP?MX_#N:V6[.G>)HK$GF\;2\PJ,X)+!SP/: MO>O#7B;3/&&A66LZ/=QWVFWL8E@N(C\KJ?U'T/(/!K$ZC4HKQ[XB_M0>&?AE MXINM!U/1_$5U=6Z)(TVGZ=YT)#*&&&W#L>:Y*R_;M\ ZE!YUIHOBNZBSMWPZ M4'7/ID/0!]'45%:W"W=M%,H*K(HXT5YY\)_C=HOQBCU)](T[6+ 6!C63^U;/ M[.6WYQMY.?NG/X5U?BWQ;I7@;P_?:WK=VEAI=E'YDUQ)T4>P')). .230!L M45\VQ?MZ?#]IXVFTGQ-:Z7(^U-6FTT?9FYZY#EL?\!S[5[-;?$**ZUVVTU-' MU395>^1^X*F/S Q;.5&"!@@')QC@T =91110 4444 %%%% !1110 4444 M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1 M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%% M% 'S'_P4&_Y(KI/_ &,%K_Z+FKW_ %KPOI7BSPW)I>L6$&HZ?(?B'\*;#3?#.E2ZQJ,6L07+6\+*#Y:QR@G+$#JRC\:P= M3^*_QZ\1Z2^E:-\(U\/7TR>4NIZAJD4D<&1C?MP,D=>_T/2@"M^P_<7&BWOQ M1\$IB^&];\K3Y)#G"L\JLH/_ &R!QZL3WK+_ &PM=G\,?'+X,ZK:Z7<_A7HNNZ8NM:/ M>Z>[M&EU \#.GWE#*5R/?FO(/ ?Q>^)GB/Q98:?KOPBNO#>E3LPFU.34XY5@ M 4D$J%!.2 /QKU[6Y-131;Q])CAFU,0N;:.Y%I-2\#FZ>2V\3Z1'NVAS_ ,M5[_0D$=!N&*^M_!.M:)XC M\+V&I^');>;1;I/-MY+50J$$G/&!@YSD=J3)-J,/F37 C;< MD;R.7**>X&<9[G- 'CG[0EI%\0_VL/AAX&UK]YX:CMGU.2T<_N[B7]Z<,.X_ M+?M*_ W6/B)-H'BSP= M>QZ=XX\-R^;9/*<)<)D$QL>W(XSQRP/7(YFT^/WQM2!=-N/@A<2ZT!L-VE^% MM"W][E2 /;?^- 'TO#"EO&J(H1% 51@ >E>-?M(?'JW^$WAXV=C(DOB.^0B MVCZ^2O0RL/;L.Y]@:WOB5\8HOA7\.H-;URV5-;N(D2'2(G#M+= M<3-/<365S))+(VYF8[223W-?9?Q6_P"28^+O^P/=_P#HEJ^/_P!DOX8>-/ _ MQMAG\0^&M1TNU.GSK]HGA/E;CMP-XRN?;-?9/Q%T^XU;P!XEL;.(SW=SIES# M#$O5W:)@H_$D57%%6G5QZE2::Y5MMU,N"3UT>R[GPW\,/VD M+/PS^SCI7PZB\':SJFNZK!=Z?8R20(EG=232R ;'+9?:9%! '7CBOK']F+X; M:G\*?@UH/A_6'!U*(233QJVY8FD#]IQ7B?[&G@77OAY\'FTGQ'ILNE:C_:=Q-] MGF*EMC;=IX)'.#0![H!BOB:T^).I_#?]KKXL7.F^#M6\8OZ\6Z7K:P0PRI>1P+A43+#.2>01 MC H ^C/A;XWOOB!X8_M74/#6H>%+@S/%_9^IKB8!<8;H.#GCZ5@?M&_"JZ^, MOPIU;PS8W26=]*8YK>27/EF1&#!7QV.,9[=>U/\ A'X_\9^-)=27Q7X!F\$K M;B,V[37J7'V@DMNQM QMP/SK4^+VI>-])\'RW7@'3+'5M('+ MA>1EB.!DCJ3V H \(\!?M%MX,&F?#KXQ^$SX7NTC2SM[]H1)IUVJ@*I/4#H. M1E?7;TKZL0@HI!R,<$5\8_%6Z^+'[3.@6?@NY^%$GA*-KR*:ZUC4;H/'"%SD MQY53W[%B1QWK[$T>P&E:3960D:46T"0B1NK;5 R?E &*6B@!",]: M3:/04ZB@#&?PIIL^NIK$]I%<:C&GE17$J[FB3N$S]W/?&,]^E:^Q1V%.HIMM M[LE1C&]EN-V#TI< TM%(H3 QC'% 4 ]*6B@ I ,4M% !28%+10 F!01FEHH M3:/2EHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ MHHHH **** "BBB@ HKY>_P"&W[3_ *%.?_P-'_Q%'_#;]I_T*<__ (&C_P"( MKZO_ %5SG_GP_OC_ )GPW^N_#_\ T$K_ ,!E_D?4-%?+W_#;]I_T*<__ (&C M_P"(H_X;?M/^A3G_ / T?_$4?ZJYS_SX?WQ_S#_7?A__ *"5_P" R_R/J&BO ME[_AM^T_Z%.?_P #1_\ $4?\-OVG_0IS_P#@:/\ XBC_ %5SG_GP_OC_ )A_ MKOP__P!!*_\ 9?Y'U#17R]_PV_:?]"G/_X&C_XBC_AM^T_Z%.?_ ,#1_P#$ M4?ZJYS_SX?WQ_P P_P!=^'_^@E?^ R_R/J&BOE[_ (;?M/\ H4Y__ T?_$4? M\-OVG_0IS_\ @:/_ (BC_57.?^?#^^/^8?Z[\/\ _02O_ 9?Y'U#17R]_P - MOVG_ $*<_P#X&C_XBC_AM^T_Z%.?_P #1_\ $4?ZJYS_ ,^']\?\P_UWX?\ M^@E?^ R_R/J&BOE[_AM^T_Z%.?\ \#1_\11_PV_:?]"G/_X&C_XBC_57.?\ MGP_OC_F'^N_#_P#T$K_P&7^1]0T5\O?\-OVG_0IS_P#@:/\ XBC_ (;?M/\ MH4Y__ T?_$4?ZJYS_P ^']\?\P_UWX?_ .@E?^ R_P CZAHKY>_X;?M/^A3G M_P# T?\ Q%'_ V_:?\ 0IS_ /@:/_B*/]5_X;?M/^A3G_\ T?_ !%'_#;]I_T*<_\ MX&C_ .(H_P!5_P"&W[3_ *%.?_P-'_Q%'_#;]I_T*<__ (&C_P"(H_U5SG_GP_OC_F'^ MN_#_ /T$K_P&7^1]0T5\O?\ #;]I_P!"G/\ ^!H_^(H_X;?M/^A3G_\ T?_ M !%'^JN<_P#/A_?'_,/]=^'_ /H)7_@,O\CZAHKY>_X;?M/^A3G_ / T?_$4 M?\-OVG_0IS_^!H_^(H_U5SG_ )\/[X_YA_KOP_\ ]!*_\!E_D?4-%?+Q_;@L MP/\ D4Y__ U?_B*/^&X;/_H4I_\ P-7_ .(H_P!5/_ (W1_JOG'_/A_?'_ #'_ *YY#_T$K[I?Y'U917RC_P -Y6?_ $)\ M_P#X'C_XW1_PWE9_]"?/_P"!Z_\ QNC_ %7SC_GP_OC_ )C_ -/_C='^J^O\ \;I#^WS9?]"=O_ ,;I?ZKYQ_SX?WQ_S#_7'(_^@A?=+_(^LZ*^2S^WU9C_ )DVX_\ ]?_ M (W2?\-]V7_0FW'_ (,%_P#C='^J^;_\^']\?\Q_ZX9'_P!!'X2_R/K6BODD M_M^V7_0FW'_@P7_XW2?\-_67_0FW'_@P7_XW1_JOF_\ SX?WQ_S#_7#)/^@A M?=+_ "/K>BOD<_\ !0"R'_,FW'_@P7_XW2'_ (* V0_YDRX_\&"__&Z/]5\W M_P"?#^^/^8_];\D_Z"%]TO\ (^N:*^1O^'@5C_T)MS_X,%_^-TW_ (>"67_0 MF7/_ (,%_P#B*/\ 5C-_^?#^^/\ F/\ UNR3_H(7W2_R/KNBOD3_ (>#6/\ MT)=S_P"#!?\ XW33_P %!['_ *$NY_\ !@O_ ,;I?ZL9O_SX?WQ_S'_K;DO_ M $$+[I?Y'U[17R"?^"A-B/\ F2KG_P &"_\ QNFG_@H79#_F2KG_ ,&"_P#Q MNC_5C-_^?#^^/^8_];,E_P"?Z^Z7^1]@45\?_P##PNQ_Z$JY_P#!@O\ \;I/ M^'AMC_T)5S_X,%_^-T?ZLYO_ ,^']\?\P_ULR;_G_P#A+_(^P:*^/?\ AX=8 M_P#0E7/_ (,%_P#C=(?^"B%B#_R)5S_X,5_^-T?ZLYO_ ,^']\?\Q_ZUY-_S M_7W2_P C[#HKX[/_ 41L1_S)5S_ .#!?_C=-_X>*6/_ $)-Q_X,5_\ C=+_ M %9S;_GP_OC_ )A_K5D__/\ 7W2_R/L:BOC@_P#!12Q'_,DW/_@Q7_XW2?\ M#Q:Q'_,DW/\ X,5_^-T?ZLYM_P ^']\?\RO]:LG_ .?Z^Z7^1]D45\;?\/%[ M'_H2+K_P8K_\;I#_ ,%&+$?\R1<_^#%?_C='^K.;?\^?QC_F'^M.3_\ /_\ M"7^1]E45\:_\/&[#_H2+G_P8K_\ &Z0_\%&[#_H1[G_P8K_\;H_U:S;_ )\? MC'_,?^M&4?\ /_\ "7^1]ET5\9'_ (*.V _YD>Y_\&*__&Z3_AX_8#_F1[K_ M ,&*_P#QNE_JUFW_ #X_&/\ F/\ UGRC_G^ONE_D?9U%?&/_ \@L/\ H1[K M_P &*_\ QNFG_@I#8#_F1KK_ ,&2_P#QNC_5K-O^?/XQ_P P_P!9\H_Y_K[I M?Y'VA17Q=_P\DL!_S(MS_P"#)?\ XW2?\/)+#_H1;K_P9+_\;H_U:S;_ )\/ M[X_YC_UFRG_G]^#_ ,C[2HKXL_X>3V'_ $(MS_X,E_\ C=)_P\HL/^A$N?\ MP9+_ /&Z7^K>:_\ /E_?'_,?^LN4_P#/[\'_ )'VI17Q4?\ @I3IX_YD2Z_\ M&2__ !ND/_!2O3Q_S(EU_P"#-?\ XW1_JWFO_/E_?'_,?^LN5?\ /[\'_D?: MU%?%'_#RS3Q_S(EU_P"#-?\ XW2'_@I=IX_YD.Z_\&:__&Z/]6\U_P"?+^^/ M^8?ZR95_S^_!_P"1]L45\2G_ (*86 _YD.Z_\&:__&J/^'F&G_\ 0AW7_@S7 M_P"-4?ZMYK_SY_&/^8_]8\K_ .?WX/\ R/MJBOB0_P#!3+3Q_P R'=?^#-?_ M (U2?\/,]/\ ^A"NO_!FO_QJC_5O-?\ GS^,?\Q_ZQY7_P _OP?^1]N45\1' M_@IKIX'_ "(5U_X,U_\ C5-/_!3;3P/^1"NO_!FO_P :I?ZN9K_SY_&/^8_] M8LK_ .?WX/\ R/M[.*,BOB _\%.-.'_,@W7_ (,U_P#C=)_P\YT__H0KK_P9 MK_\ &J/]7,U_Y\_BO\P_UARS_G[^#_R/N&BOAT_\%.M/'_,@W7_@S7_XU1_P M\]TX?\R!=?\ @S7_ .-T?ZN9K_SY_&/^8_\ 6'+/^?OX/_(^XJ*^'#_P4]T[ M_H0;K_P9K_\ &J0_\%/]-'_,@7?_ (,U_P#C5+_5W-/^?/XK_,?^L&6_\_?P M?^1]R45\,G_@J!IW_0@7?_@T7_XU2?\ #T+3O^A N_\ P:+_ /&J/]7RW_ )^_@_\ (^Z:*^%C_P %1].'_-/K MK_P:+_\ &J:?^"I.FC_FGUW_ .#1/_C5'^KV:?\ /E_>O\Q_V]EW_/W\'_D> M-4445_31_%(4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4 M444 %%%% !1110 4444 %%%% #6Z4@Z4K=*0=*I#0C5&>M2-49ZTRD,/6@]* M#UH/2LNILB-J2E:DIO13+OP/XCL+:2XNO#^J6UO$NYY9K*140> MI)7 %<_MZ-[M,/2GGK3#TK4R0WTIAZT_TIAZT%H:U M)6];^!/$M[;17%OX>U6XMY5#I+%92LCJ>A!"X(]ZR;_3KO2[@V][:S6M/;K3#UI,M"'I3#TIYZ4P]*DM#::W6G4Z"VFO; MB."WB>>>0A4BB4LS'T ')-&Q:(&ZTP]:ZN_^%GC33;0W=YX0UZUM0-QGGTR9 M$QZ[BN*Y0]36,*L*EW"2?H[G1.E4I6]I%KU5A#TIAZ4\]*8>E:$H;2-2TC5+ M-$1GK0>E!ZT'I2+1&:8U/-,:DRT)36ZTZFMUJ2D,-(>E=!X?^'_BCQ="TVA> M&]7UJ)#AI-/L)9U!]"44U0USPYJWAFZ^RZQI=[I5SC/DWUN\+X_W6 -9JK3< MN125^U]3I]E44?:.+Y>]M#*/3\:2E/3\:2K8D(W6F'K3VZTP]:1:&'K36Z4X M]::W2@M#&I*5JT-%\.:MXDGD@TC2[W5)HUWO'96[S,JYQDA0<#)ZUFVHJ[>A MI%.3LC,/6F'K70ZMX!\3Z'927FI>'-6T^SCP'N+JQEBC7)P,LR@#).*YX]:F M,XS5XNYK*$H:25A#TIC=*>>E,;I38(8U)2M24C1#3UIAZT\]:8>M!2&MTIC4 M]NE,:I-$)3*?3*"QC=Z;3F[TVI9:V$;I3&ZT]NE,;K2+1]/T445]*?AX4444 M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 M4444 %%%% #6Z4@Z4K=*0=*I#0C5&>M2-49ZTRD,/6@]*#UH/2LNILB-J2E: MDIO>'_ C?7D#Z M)%:/$L2VZ*VV.$[/F S_ BLS]I7X[>+K+QMXM\%Q7D T!E6W,)MT+['B1F& M_&>K&N%_93+%&I,3 99B ,GBL[]HS5K'7/ MC1XEOM.O+?4+*:6(QW-K*LD;@0H#AE)!Y!''I7P2RO#+/W^Y7)[.^VG-S[^O MXGZ9'.,8N&'_ +1+G]MR_$[\GL]N_+?Y7._^-_[.[:58^$Y_ WAC4[T7=D9; MYK59;D!R$(SUV]6XIWQ9^"GAGP?XN^%6F6FG36J:X\::G%)/(6"8O!?C%5 T\K>)I%\K[7 C $FPG!^]U]ZE^-?CK0]>\< M?!B]@\0:=?BSDB>_GBO(Y! ?,@+&4@_)T8G=CH?2O-PE?,W'"NK)\K]K_-=V M4K.P^416,5&*YU&C;2/*KN%^2VMVK\WS-;QQ\'?A[X.UN:PA^%/B MW788HU?[=ILLTD!R,D!M_4=Z^/+HQM*[F M^\._'7P_H&D21(BV UB/ (7#'A\+J5"E64<-3487E9I02>UK ]8T">*"]>"QMRTL0D!0P,2,'W456\%Z[!^UI\&M?MO$NG6L>OZ M7N6&]MTV[7*%HY%SDKD@AES@@>_$>I0^"OBG^SUX,\+WOQ%T'PY=6MM:32^= M=P22(R0E2C1F5"#\W?ICI7/WOQ$\ ?L[?"S5/#?@O7E\4^(]3#;[R AT5F7; MO++\H"CHH).>OK7QD*$9TI4\/2?UKVK<9*+5ES;N5K6M?J?=+$3IU:%7$5H_ M4U1BIQBC>_->W3R.>^!OP>\'^(_@K?^*M:\+ZGXFU2VOW@6TTJ:032 M)^[ "HK '&XD^PK*O/A-X6\9_%/P?X6T[PIX@^'\-]Y\EV=9+>9.B+N'E;V; MGY6&?]H=<5UWP"\1V _9TU70K?QYI/@SQ%/J3R07%[J$<$D:_NB6VE@V"%89 MKCO$'AM[KXB>&1XA^->GZH[Q3FWURQOQ+_9LB -'O8-\H9B.XZ'FO>C6Q'U[ M$\]64;.?+\;LN71J*7*TGK;?33H?-.AA?[,PKA1C)M0YG^[6OM+-.3?.FUI= M:)/72YT?COP3\,? .MW6DZW\*_$]EH\#>4/%$5W-(C]O,QG9COQS_L]JY?X5 M_!_P98?"W4?B7X^^V7NBI,T-CIMI(8VGP^P$D$$DMD @#!)]OO,? 'B_P=\5_@KJG MPVU/6;;PA>Q7TEUIDM\P2$H93(B[B0,C<5(SG&",UQ4L3C50E'FFXJ4%*<93 ME[NO,X\RNGMS6V71'J5L+E[Q$)N,$VJG)3E&$?>27*I.+M*+Z"]%U+PWKD=TJ2V-U^>/9?$W[3/P]TSXTZ!7;CZ]>I2AA\JE4E\4F];Z:)7E9N+ MD]=W9:7//RZAAZ5>>*SB%*-E&*C96]YW;M"Z4E%.VB5VKVW/%_V5/A3H'Q)\ M;:]IGBJPEN8;&P:985F>%ED$BJ52\>[=MW;@YVYS@BL33_B_IO[0GPCE:-_B]S:79]MSNP6" MP&&HK#5N24^:JM5&\[)#O@_\7KFU\.S^%=477K;3A<7E M[)?.L,KJ45RH63C);(X%9'A[PY\)?B)\9O#7A30O"^J:=;_:KJ+4?M=Z["<) M$Y380Y(PRY[53_8TU_2?!GQ=U.77=7T_2;==,F@^T7=W''"S^;'PKEMK9P2, M$Y R*P/@)KVF:-^TOI^J:AJ-I8Z8E[>.U[E;F:EMKKTLNAY&'KT98+"JI2I\TJO++W8WY5R[Z7[W?74] M.^)_PP^'W@^V\26]M\(_&)%A%,L6M+)*UF"%.V;<7P4!P>>PJEX!^ ?AG2?@ MCI7C?4?".K?$G4]3.[^S-+N7B6VCRPS^[^3C QFMWXQP:CXCD\67MC M\>_#[:#KHY>+:3Y 4/@D],#UK#^$%MXC\/\ @W2+OP%\8O#NG1SQ M++?Z!XBN406LI^^%4JQ )YX"_4UY,*N(> 35=J5XWNZG9WBY6O&[ZQTTM<]R MK1PL!9%U+2 M=5=W:%P5V;2V2006Z\\=!W]P_P""?Z: VO\ B_\+6NEWMCK.MZ?;.NI:GIHS [,$PB-SN 8.1R<;NN MXC?3+J>81HZ[3N!W%03G&,,"/>O9J_[7 MD35?GAS;[RDO>W_F^&7A+X[>!_&&GQV M+:?\2K,R7EK(;E]LZ%MP4H3MX/R'CC%K'6[5C\2_$DR$&6X=4T^) MF&2Z @?*"%Y'WBW]VN^^(/P-\ _!>'3[&Z^%WB;Q[ UN)+SQ#9WUHIQU7+LHO=W9&&IX)XROAJ=%.-/EA&5H2>C=Y-2TES M/=_95DK'AG@,_ [5/'*18UV2@."2LA?)P>, M)_CC?W^ MC:G9ZM8M:6ZKQ MY]2M1I83%J,:_%#QM\2(]8\.W^E:3I$D M;"^N MI(9[('S!(LA#=04[DXQ7J'Q*\0)XTT?PG_PB/QS\.>#19Z>L5W!_;42F5RJ8 MR%?J,$<^M>7?!OQ!I7@NW^/-CK?C?2-3U&\L"L&IF_C U*4Q3DM$2W[P[G ^ M7/)KYZC6Q<\#6;JR]IZSNOWB5]?=V[:V^9]#4H8-8S#Q5*/L[J[M"S_=MVT] M[?>^E_D/^"_[(&GWWQ5\9Z;XS@EFT#1IQ9V8\UH3=22?/&P92"<18) [L/2J M_P -_P!F+PGXL^+OQ.M[JWO+G0_"EP8[30[./OAII7B 6GAW3](:634M5NKY5CO)1:/&DCEE4)U/!)R6'/ K'TU M8M?^-/Q)U[PG\5]+\%Z__:A_L^2YNX_L6I0-DL-W*L 0I'##V[UV5)YK&I5C MB:C@W35K7:34E&^E]96;NM8I^1RTXY3.E2EAJ:FO:W:=DVG"4N6[MI'1=I-> M9QOQ7L?AQIWA;5+7_A6'B7X;^*DVG3_M]Q/-!<8=0X)E_P!DL>!CCKZ^;_!# MP/;_ !(^+7ACPY>,19WMV!/M."8U!=P#V)52,^]?5WQE^*T%O^SOK7ASX@>* MO#'C+QG>R!;%/#C"41 %2LCD !67#'.%SD 9YKX^^&OC>?X;^/M"\36T?G2: M;=+.8LX\Q.CKGME21^->WE=3$5L'6234M5%N4I)NVCBY:VOWZW/"S>GAZ.*H MNZ<6DVE&,6E?:2CI>WX'VS\>?B]XY\+?$#2_A3\'M+M[&YM;!9RMO;0LVW!( M2-9/D50HR3C))]N?%_VBO%7Q=UOX::+IWQ/\*I8K#JBO!K*F-&E8QN#&T:$C M)!)R-H^7IWKUWQU:^$?CQK^F?$7X??%6P\%>*X[06T\5[.L$NS!X92P96 )4 MD!E(Q@\9/._ME_$3P[K'PD\'^&[;Q;IOB7Q#8WENU[)8W(GW%('1Y&9<@98] MSGFOE\LY*5;"T503G?WVXRYU+6[YMK=MSZ_,>:K3Q5;V[5/E]Q1E'D<;*T>7 M?FO?HO(M>/?@[\$O /Q#\'^#;OP3K%Y=^(TC\N[L]3E(A+OLR4+<@'D^@S7F MUU^R587W[4D_PZTS59QH$-NNHW%PVUIX("H)CSC!;+* 2.C D'O[Y\0?VNM$ M\"?%CP?:VFJZ1KWA&ZL1'J-SITT=Q):2%L!]Z$D8&"5]">^*\KTOQGX:^ 7[ M54_B8>+[/Q9X3\20RQRZC::@E]/9[V5L2[&9OE95 )ZJ>,D$56"K9E&GS-RY MI4YN-VY$(D:Q(8T\PGA2RG=R< C&:TG6Q3I5?J4ZDE[--M\UU/F5TKZWY; MW2T'"EA(UJ;QL*\+_ !3T3XC7/B.QDO)M M&T]+BS,=P\7EN5F))VD9^XO7TKI_AE\,/A7IO[,,?Q(\;>'-0UJX2^>VE%A> MR1.P,NQ<+O5>,UUOP]TSPI^RE\//B')Q.)J5:F&E)P#/"/P[\'?$'P.=0L=(\0%5_LS4GW21[HRZL"'/4A^;>]_>TOHGI[U MN]CY[$U:=?&QE@%R[*Z]V\NK2O[MWYGT7_P48^(WB+2M4TGP?:ZCY7AS4]/6 MYN[+R8SYLB3$JV\KO&-J\ @<4_QS^QEX1U?X%:=JG@VUEM_'']D6^K&W-U)( M;Q?+4RJ$8D#);C ZX'>J/[=MKX/^(MM;>,=$^(GAO4;G2;5+0:+97\-Q<7&Z M;EEV2$X4-D\'@&F?%']H>Q^'NM_ S7_#>M6.M#3-%^R:O96%W',?*9( \4@4 MG:WRD@-C#(/2OC\%'$+ X6E@KPGS2YM&DVDY)2VNGHK_ .1]ICYX?^T,35QB M4Z?)'EU3LFXQ?+O9J\G;OKUN>??$G]GO18OA_P#! ^&K%[7Q'XR"0WDTT[NK M2,L7S;22% +L3@"NI^)/A+]GC]GK6+3P=XB\,ZYXSUU((Y+_ %&&^>'R2XR, M(LB+G'(7' (RQ-=A^U7\$M6TO6H-&U%K^6PTZYC>2*,^4VUT M4YC)&X88#!SZ5A_&[X4^!/VC_&"_$'PW\5O#.C6M_;Q?VA:ZSDD]&WI?=H^2/B1%X:A\;:LO@Z:XG\,^:&L7NP?-V%0<-D Y!)'X= M^MM!Z4'K0>E9=39$;4E*U)3>Y2&GK4=2'K4=0RT(W2F M-TI[=*8W2D6MQA[4E*>U)29H-/6F'I3SUIAZ5):&^E,/6G^E,/6@M#6I*5J2 MDS08>E-IQZ4VD4AK]*:U.?I36H+0VF'I3Z8>E0:(;3*?3*"Q&ZTP]:>W6F'K M29:$/2F'I3STIAZ5):&TUNM.IK=:"T,;K3#UI[=:8>M26(>E,/2GGI3#TH+0 MVD:EI&J6:(C/6@]*#UH/2D6B,TQJ>:8U)EH2FMUIU-;K4E(8:0]*^@?V&;>* MZ_:"TV.:))4-E.C(4 M^6TFOANE:*E>4K^ZM;;/4_.L]/QI*^SO#_[*W@;5K7P3:7&B^*MNO:$FIW?B M2VN4^Q6$GE;B)-T>T D< MGD?6L#X3?LU>%O%?PKF\0MI&L>+]036;C3U32= M3M[)'A3[LH\[ YXXSGYAZ4Y9]A$I-WT:73JVN]EJGO84,AQC6U^VY\GMUIAZU]5_#?]F[P]XLTSQOJ\.@:MK^HZ1J[Z?!X0@U>WM[B"-< M9>6;!5R#D#;P=IQGM'\/_P!G'PMXT\<^-;9=%\1V\^A6<$UMX-U"\AM;ZXF< M'>#,R[?*! PP'(93GL;EG>%CSWO[B3>W6WG?JM?A\PCDF*ER6M[S:6_1M/I; MH]/B\CY5/6FMTKTWX[^#-.\$>([*RLO#&O\ A&X>WWW6G:Y,DX#[B T,JJ Z M$=_4&OKGX5Z=XWF_9-^'[?#JWTHZ]+>2K.^I1PE6@\V?/^L'/.WISC.*>+S6 M.'PU/$1BFIRY=6DE=/5MS4E M?:GQN\%>!_B1^UCX*\'BVAMKJ>W\CQ$VD)Y"F?RV=0#C&X #)P>" >G',_$3 M]G3PSX;\8>$='7PCXAT.TU7Q%#ICZC>ZS:7*7$)8AMB19=&(PP+#CH>:PHYW M1J1I<\7&4US6TVNUU:OM=66VIT5\EK4G5Y)*4:;LWKO9/9)VML[O1Z7/D\]: M8>M>OZQ\+M%LOVGSX!C-S_87_"01Z9EI!YWDM(JGYL=<$\XKT+]I;]G_ ,._ M"CPYJ5QI7A#Q!9K%>I;6^M7NLVD]O*"?^>*'S1D XR!CO76\TH*=&&MZJ36V MSMW?GLKLYUE>(:K/3]TVI;O57[+R>KLCY=/2F-TKZC^(O[+FA>%O@/\ VQ8W M5W+X^TFSLM3URQ>0&.*WN2X "XR"N!GGHI]:W-&_9=\,VOPP\*^($\*>)?B% M#JUBMYJ.I^'=3@C:P8C)CCMBI:0KR#GNIZ=!SRSK"*'.F_BY>BUM?JTK-:K7 M7H=$,GQ4I1C9:QYNKTO:UDF[I[JVF[T/CUJ2OK_X5_LQ>$_%OP:TOQ5_PC'B M/Q/J5WJ%U;/;6.K6UB8HDD=49O.P,X4 @'.3TKY6\6V4&F^*M8M+6UFLK>WO M)8H[:YE622)5<@*SK\K$8P2.#VKJPV84<55G1I[PT>W^=_P,:^ K8:E"M/:6 MV_YVM^)CGK3#UIYZTP]:](\]#6Z4QJ>W2F-4FB$IE/IE!8QN]-IS=Z;29:V$ M;I3&ZT]NE,;K4EH^GZ***^E/P\**** "BBB@ HHHH **** "BBB@ HHHH ** M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@!K=*0=*5NE(.E4AH1JC/ M6I&J,]:92&'K0>E!ZT'I674V1&U)2M24WN4AIZU'4AZU'4,M"-TIC=*>W2F- MTI%K<8>U)2GM24F:#3UIAZ4\]:8>E26AOI3#UI_I3#UH+0UJ2E:DI,T&'I3: M<>E-I%(:_2FM3GZ4UJ"T-IAZ4^F'I4&B&TRGTR@L1NM,/6GMUIAZTF6A#TIA MZ4\]*8>E26AM-;K3J:W6@M#&ZTP]:>W6F'K4EB'I3#TIYZ4P]*"T-I&I:1JE MFB(SUH/2@]:#TI%HC-,:GFF-29:$IK=:=36ZU)2._P#@3\6O^%)_$.V\4?V5 M_;/DP2P_9/M'D9WKC._8W3Z5RGBWQ+<>+/$&I:G,9%6[N9;A())3)Y0=RVT$ MXZ9QT'2L@TAZ5SK#TE6>(M[[5K^2N_3J=OUBK['ZM?W+\UO.R5^^R7D?0=C^ MV'J>G7WA18]#$NA:5HBZ%J.BW%Z7@U.,+@N1Y>(VX&.&QTR02*S]*_:"\&0? M#Z;P5J?PTGU7P^-6EU6U@/B%X6@+#"IN2#+!02,G&<\CC->$'I^-)7G/*<'T MA;KI*2UNW?1[W;UWZ;'I1S;&*R<[VTU47IRJ-M4]&DKKK:[UU/7O"WQ7\!:# M+/O&VK: M_P",/!+WDDX@33YM+U:2TNM/2)6&!*$/F;MV22!R.E>$-UIAZUVF:9HMF+*SAGNFNYV7C+RS, 78X'..WXUHZA^T7>/\ !?P?X&T_3)-, MOO#>H_VC!K<5YEF<-*PQ'L&W!DZ[C]WIS7D!ZTUNE:+ 894X4E#W8.ZU>^NO MGN][[@\?B95)UG+WIKE>BVT5MM-$MCZ+UK]KFRU[XB^"O'EWX%C7Q5H*[+RZ MM]2\M-27RV3YD\D[""V0YF? MQ!+UKMZ;'1/, M\553522=[7O&-[I6O>U[VZ[GO7B;]HCP5K/CNW\:67POETWQ.FK0:K+>GQ%+ M,LI20.Z>680J[@,9QQUP:I^.OCG\/O&OBEO$;?"F6UUN;4HM0N[@^)))5G"N M&>/RS#M4.!MSCC/2O#SUIAZT0RS#4W%P4ERZ+WY[::?%MHM-BJF9XFJIJ;3Y MM_N_F?2TO[*-UVH/M0@ M+N5&?O#!ST'&,SX??M,^%OAE)9:OH/@&\L/$=M;"%S!XAE33[F01[#-+;!,$ MGJ5!QGG@\U\]GI3&Z5E_8^"473C"R:2:3:NEWL]=]6]7UV1O_:^-E)3G/F:; M:ND[-VVNM-E9+1=-V>]V/[2OAS5/AM9>$O&WP[;Q6MMJ5SJ@N8=<>P!FF=V; MY$B. -Y&-QKPS6KJSO=8O;C3K$Z;82S.]O9F8S&",DE4WD M@8&XCG%5&I*Z MZ&$HX:4I4DU?5ZNWW-V7R1SUL76Q,5&JT[=;*_WVN_FQIZTP]:>>M,/6NPY4 M-;I3&I[=*8U2:(2F4^F4%C&[TVG-WIM2RUL(W2F-UI[=*8W6D6CZ?HKB_P#A M;6A>MS_WZ_\ KTO_ MG0O6Y_P"_7_UZ]_VU/^8_(O[,QG_/I_<=G17&#XL: M$>]S_P!^O_KTH^*VAGOVI_S!_9F,_Y]/[CLJ*X[_A:FB>MQ_P!^ MO_KTO_"U-$/>X_[]?_7I^VI]Q?V;C/\ GT_N.PHKC_\ A:6B^MQ_WZ_^O2_\ M+0T7UN/^_7_UZ/;4^XO[-Q?_ #[?W'7T5R'_ L_13WN/^_7_P!>G#XG:+ZW M'_?K_P"O1[6'/^_?\ ]>C_ (69H_\ TW_[ M]_\ UZ/:P[B_L_%_\^W]QUM%E_X6-I![S_\ ?O\ ^O1[6'<7 MU#%?\^W]QU-%G?\+#TGUG_ ._?_P!>CVL.X?4,5_S[ M?W'3T5S'_"P]*]9O^_?_ ->C_A86E'_GM_W[_P#KT_:P[B^HXG_GV_N.GHKF M?^%@Z7_TV_[]_P#UZ7_A/]+_ .FW_?O_ .O1[6'<7U'$_P C.EHKF_\ A/\ M2_\ IM_WQ_\ 7H'CS2SWF_[XH]K#N'U+$_R,Z2BN<_X3O3/6;_OB@>.M,/>; M_OBCVD.X?4L1_(SHZ*YX>.=-/>7_ +XI?^$WTT]Y?^^*/:0[B^I8C^1G045S M_P#PFVF^LO\ WQ2CQKIV>LO_ 'Q3]I'N'U/$?R,W6Z4@Z5AGQGIQ'67_ +XH M'C#3ST,O_?%-5(]QK"5_Y&;;5&>M9!\76![R_P#?%-/BRP)X,O\ WQ3]I#N- M86M_*S6/6@]*R/\ A*;(G_EI_P!\T?\ "3V1_P">@_X#6?/'N6L/67V6:;4E M99\269[R?]\T?\)%:?[?_?-/GBWN5]7JK[)I'K4=4/[?M3_?_P"^:0:Y;'N_ M_?-2Y(I4:G\I?;I3&Z53.M6Y_O\ _?-(=7MR.K?E2YD4J-3L6CVI*J_VI ?[ MWY4G]I0^K?E1S(KV<^Q9/6F'I4/]H1'U_*F_;8C_ 'ORJ;HKDEV)O2F'K3/M M49'&?RI#<(?6BY?*UT'-24PS*<8S0),T,JS ]*;2YS1M)I#0Q^E-:I&0D=*0 MPN?2@M-$5,/2K'V:0],4GV.0^E38KF7Y M4;K3#UJZ=,G/]W\Z0Z3<$_P_G2LRE4AW*1Z4P]*T3HUQ_L?G3?[$N3_=_P"^ MO_K4N5]BE5I_S&=36ZUI?V%='^Y^=!\/79Y_=_G1ROL4JU/^9&4W6F'K6L?# MMX?[GYT?\(S>G_GG_P!]4N278OV]+^9&0>E,/2MK_A%[W_IG_P!]4G_"*7Q' M_+/_ +ZID7_ 'W_ /6H/@O4O2+_ +[_ /K4>SEV*6*H M?SHYXTQJZ(^"=2/:+_OO_P"M2'P/J1_YY?\ ??\ ]:DZ'_ )U]YSM- M;K71'P-J>>/)_P"^_P#ZU(? NIG_ )X_]]__ %JGV<^Q2Q>'_G7WG-FD/2NB M/@35/2'_ +[_ /K4?\()JGI#_P!]_P#UJ/9S[&GUS#_SK[SF3T_&DKI3X!U3 M'_+'_OO_ .M2?\(#JG_3'_OO_P"M2=.?8I8S#_\ /Q?>SGV+6-PW_/Q?>(/^_G_ -:CV4^Q2QV%_P"?B^\Y0]*8W2NL_P"%:ZQ_TP_[^?\ MUJ0_#36#_P \/^_G_P!:I=*?8I8_"_\ /Q?>M,7J:>O M2J)8]>E+2+TI:9#'CK3J:.M.H1FQRT\=*8M/'2J(8M/'6F4\=:"!XZTZFCK3 MJLS8J]*>.E,7I3QTH(8HZT\'I3!UIX[4UN0QU.7I3:.E,'2GCI M2(%'6GKUI@ZT\=:I$#J5:2E6F0QZ]*6D7I2T&;'BGJ.:8*>O6K)8ZG+TIM.7 MI00Q]*.M)2CK5(S'KUIU-7K3J9#'#I3ATIHZ4X=*:,V/'2G+UIHZ4Y>M,ACE MZTZFKUIU!+'*>*>.E,'2GCI5D,4=:>O6F#K3UZT&;'K2TBTM-$,<.U25&.U2 M51#%7K3UIB]:>M!FQ:?3*?30F.3M3N]-3M3N],R8]>AIR]*:OW33EZ4T0Q:< M.HIM.'451#)!UIV*:.M.H,V.6GCI3%IXZ52(8M/'6F4\=:9+'4Y>E-IR]*<= MS-CQTI],'2GUH9@/O4^F#[U/I,EA1114B"BBB@ HHHH **** "BBB@ HHHH F**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH _]D! end XML 15 R1.htm IDEA: XBRL DOCUMENT v3.22.4
Document And Entity Information
12 Months Ended
Jan. 31, 2023
Document Information [Line Items]  
Document Type 6-K
Document Period End Date Jan. 31, 2023
Entity Registrant Name DESCARTES SYSTEMS GROUP INC
Entity Central Index Key 0001050140
Current Fiscal Year End Date --01-31
Document Fiscal Year Focus 2023
Document Fiscal Period Focus FY
Amendment Flag false
XML 16 R2.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
CURRENT ASSETS    
Cash $ 276,385 $ 213,437
Accounts receivable (net)    
Trade 45,173 41,705
Other 11,658 14,075
Prepaid expenses and other 24,676 21,974
Inventory 759 868
TOTAL CURRENT ASSETS 358,651 292,059
OTHER LONG-TERM ASSETS 22,247 18,652
PROPERTY AND EQUIPMENT, NET 11,434 10,817
RIGHT-OF-USE ASSETS 6,774 10,571
DEFERRED INCOME TAXES 11,483 14,962
INTANGIBLE ASSETS, NET 229,808 229,609
GOODWILL 675,647 608,761
TOTAL ASSETS 1,316,044 1,185,431
CURRENT LIABILITIES    
Accounts payable 10,569 10,566
Accrued liabilities 80,309 56,442
Lease obligations 3,397 4,029
Income taxes payable 7,536 5,616
Deferred revenue 67,784 56,780
TOTAL CURRENT LIABILITIES 169,595 133,433
LEASE OBLIGATIONS 3,923 7,382
DEFERRED REVENUE 1,615 1,920
INCOME TAXES PAYABLE 6,120 7,354
DEFERRED INCOME TAXES 35,400 35,523
TOTAL LIABILITIES 216,653 185,612
COMMITMENTS, CONTINGENCIES AND GUARANTEES
SHAREHOLDERS' EQUITY    
Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,820,100 at January 31, 2023 (January 31, 2022 - 84,756,210) 538,448 536,297
Additional paid-in capital 486,551 473,303
Accumulated other comprehensive loss (30,456) (12,393)
Retained earnings 104,848 2,612
TOTAL SHAREHOLDERS' EQUITY 1,099,391 999,819
TOTAL LIABILITIES AND SHAREHOLDERS' EQUITY $ 1,316,044 $ 1,185,431
XML 17 R3.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED BALANCE SHEETS (Parentheticals) - shares
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
CONSOLIDATED BALANCE SHEETS    
Common shares - unlimited shares authorized Unlimited Unlimited
Common shares - Shares issued (in shares) 84,820,100 84,756,210
Common shares - Shares outstanding (in shares) 84,820,100 84,756,210
XML 18 R4.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)
shares in Thousands, $ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
CONSOLIDATED STATEMENTS OF OPERATIONS      
REVENUES $ 486,014 $ 424,690 $ 348,664
COST OF REVENUES 113,326 101,810 89,910
GROSS MARGIN 372,688 322,880 258,754
EXPENSES      
Sales and marketing 56,573 46,895 38,785
Research and development 70,353 62,570 54,066
General and administrative 49,710 44,454 36,267
Other charges 5,441 6,428 2,335
Amortization of intangible assets 60,177 59,099 55,905
TOTAL EXPENSES 242,254 219,446 187,358
INCOME FROM OPERATIONS 130,434 103,434 71,396
INTEREST EXPENSE (1,167) (1,123) (1,186)
INVESTMENT AND OTHER INCOME 4,461 299 159
INCOME BEFORE INCOME TAXES 133,728 102,610 70,369
INCOME TAX EXPENSE      
Current 28,248 14,814 3,746
Deferred 3,244 1,514 14,523
TOTAL INCOME TAX EXPENSE 31,492 16,328 18,269
NET INCOME $ 102,236 $ 86,282 $ 52,100
EARNINGS PER SHARE      
Basic $ 1.21 $ 1.02 $ 0.62
Diluted $ 1.18 $ 1.00 $ 0.61
WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)      
Basic 84,791 84,591 84,360
Diluted 86,451 86,200 85,756
XML 19 R5.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME      
Net Income $ 102,236 $ 86,282 $ 52,100
Other comprehensive income (loss):      
Foreign currency translation adjustment, net of income tax (recovery) expense of ($58) for the year ended January 31, 2023 (January 31, 2022 - ($348); January 31, 2021 - $290) (18,063) (11,204) 24,755
Total other comprehensive income (loss) (18,063) (11,204) 24,755
COMPREHENSIVE INCOME $ 84,173 $ 75,078 $ 76,855
XML 20 R6.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME      
Foreign currency translation adjustment, income tax expense (recovery) $ (58) $ (348) $ 290
XML 21 R7.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY - USD ($)
$ in Thousands
Common shares
Additional paid-in capital
Accumulated other comprehensive income (loss)
Retained earnings (accumulated deficit)
Total
Balance, beginning of year at Jan. 31, 2020 $ 524,154 $ 459,269 $ (25,944) $ (135,770)  
Stock-based compensation expense   6,313      
Stock options and share units exercised 7,671 (1,480)      
Other comprehensive income (loss), net of income taxes     24,755    
Net income       52,100 $ 52,100
Balance, end of year at Jan. 31, 2021 531,825 464,102 (1,189) (83,670) 911,068
Stock-based compensation expense   11,017      
Stock options and share units exercised 4,472 (1,816)      
Other comprehensive income (loss), net of income taxes     (11,204)    
Net income       86,282 86,282
Balance, end of year at Jan. 31, 2022 536,297 473,303 (12,393) 2,612 999,819
Stock-based compensation expense   13,667      
Stock options and share units exercised 2,151 (419)      
Other comprehensive income (loss), net of income taxes     (18,063)    
Net income       102,236 102,236
Balance, end of year at Jan. 31, 2023 $ 538,448 $ 486,551 $ (30,456) $ 104,848 $ 1,099,391
XML 22 R8.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
OPERATING ACTIVITIES      
Net income $ 102,236 $ 86,282 $ 52,100
Adjustments to reconcile net income to cash provided by operating activities:      
Depreciation 5,225 5,129 5,757
Amortization of intangible assets 60,177 59,099 55,905
Stock-based compensation expense 13,667 11,017 6,313
Other non-cash operating activities 53 308 207
Deferred tax expense 3,244 1,514 14,523
Changes in operating assets and liabilities 7,793 12,789 (3,575)
Cash provided by operating activities 192,395 176,138 131,230
INVESTING ACTIVITIES      
Additions to property and equipment (6,071) (4,829) (3,759)
Acquisition of subsidiaries, net of cash acquired (115,561) (90,278) (48,403)
Cash used in investing activities (121,632) (95,107) (52,162)
FINANCING ACTIVITIES      
Proceeds from borrowings on the credit facility     10,196
Credit facility and other debt repayments   (1,068) (10,793)
Payment of debt issuance costs (1,118) (72) (40)
Issuance of common shares for cash, net of issuance costs 1,730 2,656 6,194
Payment of contingent consideration (5,215)    
Cash (used in) provided by financing activities (4,603) 1,516 5,557
Effect of foreign exchange rate changes on cash (3,212) (2,771) 4,633
Increase in cash 62,948 79,776 89,258
Cash, beginning of year 213,437 133,661 44,403
Cash, end of year 276,385 213,437 133,661
Supplemental disclosure of cash flow information:      
Cash paid during the year for interest     89
Cash paid during the year for income taxes $ 23,791 $ 12,575 $ 8,214
XML 23 R9.htm IDEA: XBRL DOCUMENT v3.22.4
Description of the Business
12 Months Ended
Jan. 31, 2023
Description of the Business  
Description of the Business

Note 1 - Description of the Business

The Descartes Systems Group Inc. (“Descartes”, “Company”, “our” or “we”) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (“SaaS”) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.

XML 24 R10.htm IDEA: XBRL DOCUMENT v3.22.4
Basis of Presentation
12 Months Ended
Jan. 31, 2023
Basis of Presentation  
Basis of Presentation

Note 2 –Basis of Presentation

The accompanying consolidated financial statements are presented in United States (“US”) dollars and are prepared in accordance with generally accepted accounting principles in the US (“GAAP”) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (“SEC”) for the preparation of consolidated financial statements.

Our fiscal year commences on February 1st of each year and ends on January 31st of the following year. Our fiscal year, which ends on January 31, 2023, is referred to as the “current fiscal year”, “fiscal 2023”, “2023” or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the “previous fiscal year”, “fiscal 2022”, “2022” or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, “2024” refers to the annual period ending January 31, 2024 and the “fourth quarter of 2024” refers to the quarter ending January 31, 2024.

Basis of consolidation

The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.

Foreign currency translation

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.

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 January 31, 2023, foreign currency re-measurement loss of $1.2 million was included in net income (January 31, 2022 – loss of $0.3 million; January 31, 2021 – loss of $0.8 million).

Use of estimates

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 may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.

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 (“SSP”) of performance obligations in contracts with customers.

Cash

Cash included highly liquid short-term deposits with original maturities of three months or less.

Financial instruments

Fair value of financial instruments

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.

Derivative instruments

We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 “Derivatives and Hedging” (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.

Foreign exchange risk

We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.

Interest rate risk

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) Canadian Dollar Offered Rate (CDOR); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.

Credit risk

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.

We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.

Equity risk

We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.

Provision for Credit Losses

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.

Inventory

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.

The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.

Impairment of long-lived assets

We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.

Goodwill and intangible assets

Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.

We test for impairment of goodwill at least annually on October 31st of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our 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 third quarter of 2023 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2023 (no impairments were recorded for fiscal 2022 or fiscal 2021).

Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.

Amortization of our intangible assets is generally recorded at the following rates:

Customer agreements and relationships

Straight-line over two to twenty years

Existing technologies

Straight-line over four to twelve years

Trade names

Straight-line over three to fifteen years

Non-compete covenants

Straight-line over two to twelve years

Property and equipment

Property and equipment is recorded at cost.

Effective February 1, 2020, we changed our accounting method for property & 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 was applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.

Depreciation of our property and equipment is generally recorded at the following rates:

Computer equipment and software

Straight-line over 1 to 13 years

Furniture and fixtures

Straight-line over 3 to 14 years

Leasehold improvements

Straight-line over lesser of useful life or term of lease

Equipment installed with customers

Straight-line over 3 years

Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.

Leases

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.

We recognize a right-of-use (“ROU”) 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.

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 not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.

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.

We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.

Revenue recognition

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.

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.

License

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.

Services

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.

Professional Services & Other

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.

Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.

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 our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.

Costs to obtain a contract with a customer

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 four to six years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.

Contract assets and liabilities

The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.

Research and development costs

To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.

Stock-based compensation plans

Stock Options

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.  

Employee stock options generally vest over a five-year period starting from the grant date and expire seven years from the grant date. Non-employee directors’ and officers’ stock options generally have quarterly vesting over a three to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.

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.

Performance & Restricted Share Units

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 (“PSUs”) and restricted share units (“RSUs”).

PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (“TSR”) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten years from the grant date. New shares are issued from treasury upon the redemption of a PSU.

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.

RSUs vest annually over a three-year period starting from the grant date and expire ten years from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.

Deferred Share Unit Plan

Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (“DSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none 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 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.

Cash-Settled Restricted Share Unit Plan

Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (“CRSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over three to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31st 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.

Business combinations

We apply the provisions of ASC Topic 805, “Business Combinations” (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.

Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.

While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.

Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, “Exit or Disposal Cost Obligations” (Topic 420) and are accounted for separately from the business combination.

For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.

Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.

Income taxes

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 not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.

We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.

Earnings per share

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.

Recently issued accounting pronouncements

In October 2021, the FASB issued Accounting Standards Update 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers” (“ASU 2021-08”). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.

XML 25 R11.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions
12 Months Ended
Jan. 31, 2023
Acquisitions  
Acquisitions

Note 3 – Acquisitions

Fiscal 2023 Acquisitions

On February 9, 2022, Descartes acquired all of the shares of NetCHB, LLC (“NetCHB”), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately $38.7 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $60.0 million based on NetCHB achieving revenue-based targets over the first two years post-acquisition. The fair value of the contingent considerations was valued at $13.9 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.1 million with a fair value of $0.1 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2023 with no adjustments.

On April 21, 2022, Descartes acquired substantially all of the assets of Foxtrot, Inc. (“Foxtrot”), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately $4.2 million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.7 million with a fair value of $0.7 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April 21, 2023.

On June 3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (“XPS”), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately $61.1 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $75.0 million based on XPS achieving revenue-based targets over the first two years post-acquisition. The fair value of the contingent consideration was valued at $9.4 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.5 million with a fair value of $1.5 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June 3, 2023.

On January 5, 2023, Descartes acquired all of the shares of Tran-Soft, LLC, doing business as Supply Vision (“Supply Vision”), a provider of shipment management solutions for North American Logistics Services Providers. The purchase price for the acquisition was approximately $12.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $3.0 million based on Supply Vision achieving revenue-based targets over the first two years post-acquisition. The fair value of the contingent consideration was valued at $2.7 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.3 million with a fair value of $0.3 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before January 5, 2024.

For the businesses acquired during fiscal 2023, we incurred acquisition-related costs of $1.9 million for the year ended January 31, 2023. 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 January 31, 2023, we have recognized revenues of $20.8 million, and net income of $6.6 million, respectively, from NetCHB, Foxtrot, XPS and Supply Vision since the date of acquisition in our consolidated statements of operations.

The final purchase price allocation for NetCHB and the preliminary purchase price allocations for Foxtrot, XPS and Supply Vision, which have not been finalized, are as follows:

    

    

    

    

Supply

    

NetCHB

Foxtrot

XPS

Vision

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil), XPS ($3,932) and Supply Vision ($413)

 

38,664

 

4,228

 

61,096

 

11,573

115,561

Contingent consideration

 

13,948

 

 

9,425

 

2,670

26,043

Net working capital adjustments payable (receivable)

 

51

 

66

 

978

 

(137)

958

 

52,663

 

4,294

 

71,499

 

14,106

142,562

Allocated to:

 

  

 

  

 

 

Current assets, excluding cash acquired

 

469

 

835

 

2,449

 

703

4,456

Current liabilities

 

(367)

 

(22)

 

(1,483)

 

(658)

(2,530)

Deferred revenue

 

 

(336)

 

(2,196)

 

(132)

(2,664)

Net tangible assets (liabilities) assumed

 

102

 

477

 

(1,230)

 

(87)

(738)

 

  

 

  

 

 

Finite life intangible assets acquired:

Customer agreements and relationships

 

10,900

 

650

 

8,100

 

2,500

22,150

Existing technology

 

14,100

 

1,640

 

20,000

 

4,700

40,440

Trade names

 

64

 

 

100

 

30

194

Non-compete covenants

 

700

 

 

1,000

 

200

1,900

Goodwill

 

26,797

 

1,527

 

43,529

 

6,763

78,616

 

52,663

 

4,294

 

71,499

 

14,106

142,562

The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, “Business Combinations”. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one year from the acquisition dates.

The acquired intangible assets are being amortized over their estimated useful lives as follows:

    

    

    

    

Supply

NetCHB

Foxtrot

XPS

Vision

Customer agreements and relationships

 

13 years

 

13 years

 

11 years

11 years

Existing technology

 

6 years

 

6 years

 

6 years

6 years

Trade names

 

2 years

 

N/A

 

2 years

9 years

Non-compete covenants

 

5 years

 

N/A

 

5 years

5 years

The goodwill on the NetCHB, Foxtrot, XPS and Supply Vision acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot, XPS and Supply Vision acquisitions are deductible for tax purposes.

Fiscal 2022 Acquisitions

On February 26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (“QuestaWeb”), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately $35.9 million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.6 million with a fair value of $0.5 million at the date of acquisition. Our acquisition date estimate of contractual cash

flows not expected to be collected was $0.1 million. The purchase price was finalized in the three month period ended January 31, 2022 with no adjustments.

On May 7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (“Portrix”), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately $25.2 million (EUR 20.7 million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was $0.7 million with a fair value of $0.7 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended April 30, 2022 with no adjustments.

On July 8, 2021, Descartes acquired all of the shares of GreenMile, LLC (“GreenMile”), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately $29.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $10.0 million in cash is payable if certain revenue performance targets are met by GreenMile in the two years following the acquisition. The fair value of the contingent consideration was valued at $3.3 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.1 million with a fair value of $1.0 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was $0.1 million. The purchase price was finalized in the three month period ended July 31, 2022 with no adjustments.

The final purchase price allocations for businesses we acquired during 2022 are as follows:

    

    

    

Green

    

QuestaWeb

Portrix

Mile

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)

 

35,860

25,188

 

29,230

 

90,278

Contingent consideration

 

 

 

3,339

 

3,339

Net working capital adjustments payable / (receivable)

 

17

 

(54)

 

(308)

 

(345)

 

35,877

 

25,134

 

32,261

 

93,272

Allocated to:

 

  

 

  

 

  

 

  

Current assets, excluding cash acquired

 

714

 

810

 

2,186

 

3,710

Property and equipment

 

78

 

 

89

 

167

Right-of-use assets

 

123

 

374

 

 

497

Other long-term assets

 

 

 

242

 

242

Current liabilities

 

(170)

 

(871)

 

(1,498)

 

(2,539)

Deferred revenue

 

(736)

 

(499)

 

(909)

 

(2,144)

Lease obligations

 

(123)

 

(374)

 

 

(497)

Deferred income tax liability

 

 

(5,185)

 

(752)

 

(5,937)

Long-term income taxes payable

 

 

 

(365)

 

(365)

Debt

 

 

(1,062)

 

 

(1,062)

Net tangible assets (liabilities) assumed

 

(114)

 

(6,807)

 

(1,007)

 

(7,928)

 

  

 

  

 

  

 

  

Finite life intangible assets acquired:

Customer agreements and relationships

 

4,800

 

4,014

 

5,700

 

14,514

Existing technology

 

8,900

 

12,286

 

14,000

 

35,186

Trade names

 

100

 

122

 

100

 

322

Non-compete covenants

 

500

 

487

 

500

 

1,487

Goodwill

 

21,691

 

15,032

 

12,968

 

49,691

 

35,877

 

25,134

 

32,261

 

93,272

The acquired intangible assets are being amortized over their estimated useful lives as follows:

    

QuestaWeb

    

Portrix

    

GreenMile

Customer agreements and relationships

 

13 years

 

13 years

 

13 years

Existing technology

 

6 years

 

6 years

 

6 years

Trade names

 

3 years

 

3 years

 

3 years

Non-compete covenants

 

5 years

 

2 years

 

5 years

The goodwill on the QuestaWeb, Portrix and GreenMile acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the QuestaWeb and GreenMile acquisition is deductible for tax purposes. The goodwill arising from the Portrix acquisition is not deductible for tax purposes.

Fiscal 2021 Acquisitions

On February 21, 2020, Descartes acquired all of the shares of Peoplevox Limited (“Peoplevox”), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately $24.1 million, net of cash acquired, which was funded from a combination of cash on hand and drawing on Descartes’ existing credit facility. The gross contractual amount of trade receivables acquired was $0.4 million with a fair value of $0.4 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2021 with no adjustments.

On June 10, 2020 Descartes acquired all of the shares of Cracking Logistics Limited (“Kontainers”), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately $5.2 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to $6.0 million in cash is payable if certain revenue performance targets are met by Kontainers in the two years following the acquisition. The fair value of the contingent consideration was valued at $1.4 million at the acquisition date. The gross contractual amount of trade receivables acquired was $0.2 million with a fair value of $0.2 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended July 31, 2021 with no adjustments.

On November 6, 2020, Descartes acquired all of the shares of ShipTrack Inc. (“ShipTrack”), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately $19.0 million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD 25.0 million in cash is payable if certain revenue performance targets are met by ShipTrack in the two years following the acquisition. The fair value of the contingent consideration was valued at $2.8 million at the acquisition date. The gross contractual amount of trade receivables acquired was $1.7 million with a fair value of $1.7 million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended October 31, 2021 with no adjustments.

The final purchase price allocations for businesses we acquired during 2021 are as follows:

    

Peoplevox

    

Kontainers

    

ShipTrack

    

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)

 

24,137

 

5,237

 

19,029

 

48,403

Consideration payable

 

 

100

 

 

100

Contingent consideration

 

 

1,414

 

2,825

 

4,239

Net working capital adjustments (receivable) / payable

 

(42)

 

(87)

64

 

(65)

 

 

24,095

 

6,664

 

21,918

 

52,677

Allocated to:

 

  

 

  

 

  

 

  

Current assets, excluding cash acquired

 

485

 

469

 

1,853

 

2,807

Right-of-use assets

 

 

 

151

 

151

Current liabilities

 

(776)

 

(1,074)

 

(693)

 

(2,543)

Deferred revenue

 

(748)

 

(102)

 

(204)

 

(1,054)

Lease obligations

 

 

 

(151)

 

(151)

Deferred income tax liability

 

(1,615)

 

 

(4,012)

 

(5,627)

Debt

 

 

 

(728)

 

(728)

Net tangible assets (liabilities) assumed

 

(2,654)

 

(707)

 

(3,784)

 

(7,145)

 

  

 

  

 

  

 

  

Finite life intangible assets acquired:

Customer agreements and relationships

 

3,631

 

800

 

3,905

 

8,336

Existing technology

 

7,651

 

3,000

 

11,102

 

21,753

Trade names

 

 

30

 

77

 

107

Non-compete covenants

 

285

 

80

 

291

 

656

Goodwill

 

15,182

 

3,461

 

10,327

 

28,970

 

24,095

 

6,664

 

21,918

 

52,677

The acquired intangible assets are being amortized over their estimated useful lives as follows:

    

Peoplevox

    

Kontainers

    

ShipTrack

Customer agreements and relationships

 

10 years

 

12 years

 

13 years

Existing technology

 

6 years

 

5 years

 

6 years

Trade names

 

N/A

 

3 years

 

3 years

Non-compete covenants

 

5 years

 

5 years

 

5 years

The goodwill on the Peoplevox, Kontainers and ShipTrack acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Peoplevox, Kontainers and ShipTrack acquisitions are not deductible for tax purposes.

Pro Forma Results of Operations (Unaudited)

The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired Supply Vision, XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb as of February 1, 2020.

This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of Supply Vision,

XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb occurred at February 1, 2020, or to project our results of operations for any future period.

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Revenues

 

495,874

461,864

 

393,322

Net income

 

103,700

91,398

 

49,315

Earnings per share

 

 

Basic

 

1.22

1.08

 

0.58

Diluted

 

1.20

1.06

 

0.58

XML 26 R12.htm IDEA: XBRL DOCUMENT v3.22.4
Fair Value Measurements
12 Months Ended
Jan. 31, 2023
Fair Value Measurements  
Fair Value Measurements

Note 4 – Fair Value Measurements

ASC Topic 820 “Fair Value Measurements and Disclosures” (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.

Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:

Level 1—inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.
Level 2—inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.
Level 3—inputs 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.

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 2 measurement) due to their short maturities.

The following table shows the Company’s financial instruments measured at fair value on a recurring basis as of January 31, 2023:

    

Level 1

    

Level 2

    

Level 3

    

Total

Assets:

 

  

 

  

 

  

 

  

Equity derivative contracts

 

 

11,610

 

 

11,610

Liabilities:

 

  

 

  

 

  

 

  

Contingent consideration

 

 

 

30,949

 

30,949

The following table shows the Company’s financial instruments measured at fair value on a recurring basis as of January 31, 2022:

    

Level 1

    

Level 2

    

Level 3

    

Total

Assets:

 

  

 

  

 

  

 

  

Equity derivative contracts

 

 

10,863

 

 

10,863

Liabilities:

 

  

 

  

 

  

 

  

Contingent consideration

 

 

 

12,990

 

12,990

The Company enters into equity derivative contracts including floating-rate equity forwards to substantially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at January 31, 2023, we had equity derivatives for 281,768 Descartes common shares with a weighted average price of $31.35.

The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and administrative expenses in the consolidated financial statements. For the years ended January 31, 2023, 2022 and 2021, we recognized an expense (recovery) in general and administrative expenses of ($1.3) million, ($2.9) million and ($3.4) million, respectively.

Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include revenue growth rates and the discount rates applied (10% to 13%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.The following table presents the changes in the fair value measurements of the contingent consideration in Level 3 of the fair value hierarchy:

    

Level 3

Balance at January 31, 2021

4,671

Increase from acquisitions

3,339

Charges through profit or loss

5,070

Effect of movements in foreign exchange

(90)

Balance at January 31, 2022

 

12,990

Increase from acquisitions

 

26,043

Cash payments

 

(10,782)

Charges through profit or loss

 

2,804

Effect of movements in foreign exchange

 

(106)

Balance at January 31, 2023

 

30,949

XML 27 R13.htm IDEA: XBRL DOCUMENT v3.22.4
Trade Accounts Receivable
12 Months Ended
Jan. 31, 2023
Trade Accounts Receivable  
Trade Accounts Receivable

Note 5 – Trade Accounts Receivable

    

January 31,

    

January 31,

2023

2022

Trade accounts receivable

 

46,718

 

43,565

Less: Provision for credit losses

 

(1,545)

 

(1,860)

 

45,173

 

41,705

Included in accounts receivable are unbilled receivables in the amount of $0.3 million as at January 31, 2023 ($0.5 million as at January 31, 2022). No single customer accounted for more than 10% of the accounts receivable balance as of January 31, 2023 and 2022.

The following table presents the changes in the provision for credit losses as follows:

    

Provision

for Credit

Losses

Balance at January 31, 2021

2,330

Current period provision for expected losses

1,007

Write-offs charged against the provision

(1,456)

Effect of movements in foreign exchange

(21)

Balance at January 31, 2022

 

1,860

Current period provision for expected losses

 

1,068

Write-offs charged against the provision

 

(1,341)

Effect of movements in foreign exchange

 

(42)

Balance at January 31, 2023

 

1,545

XML 28 R14.htm IDEA: XBRL DOCUMENT v3.22.4
Other Receivables
12 Months Ended
Jan. 31, 2023
Other Receivables  
Other Receivables

Note 6 – Other Receivables

    

January 31,

    

January 31,

2023

2022

Net working capital adjustments receivable from acquisitions

 

384

 

309

Other receivables

 

11,274

 

13,766

 

11,658

 

14,075

Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January 31, 2023, $0.4 million ($0.3 million as at January 31, 2022) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.

XML 29 R15.htm IDEA: XBRL DOCUMENT v3.22.4
Inventory
12 Months Ended
Jan. 31, 2023
Inventory  
Inventory

Note 7 – Inventory

At January 31, 2023 and January 31, 2022, inventory is entirely comprised of finished goods inventory. Finished goods inventory primarily consists of hardware and related parts for mobile asset units held for sale. For the years ended January 31, 2023, 2022 and 2021, a nominal provision for excess or obsolete inventories has been recorded in cost of revenues.

XML 30 R16.htm IDEA: XBRL DOCUMENT v3.22.4
Property and Equipment
12 Months Ended
Jan. 31, 2023
Property and Equipment  
Property and Equipment

Note 8 – Property and Equipment

    

January 31,

    

January 31,

2023

2022

Cost

 

  

 

  

Computer equipment and software

 

44,304

 

40,937

Furniture and fixtures

 

1,533

 

1,553

Leasehold improvements

 

1,076

 

822

Equipment installed with customers

 

1,936

 

1,635

Assets under construction

 

358

 

524

 

49,207

 

45,471

Accumulated depreciation

 

  

 

  

Computer equipment and software

 

34,275

 

31,660

Furniture and fixtures

 

1,283

 

1,257

Leasehold improvements

 

660

 

531

Equipment installed with customers

 

1,555

 

1,206

 

37,773

 

34,654

Net

 

11,434

 

10,817

XML 31 R17.htm IDEA: XBRL DOCUMENT v3.22.4
Intangible Assets
12 Months Ended
Jan. 31, 2023
Intangible Assets  
Intangible Assets

Note 9 - Intangible Assets

    

January 31,

    

January 31,

2023

2022

Cost

 

  

 

  

Customer agreements and relationships

 

268,712

 

251,402

Existing technology

 

355,695

 

326,411

Trade names

 

9,026

 

9,038

Non-compete covenants

 

13,893

 

12,306

 

647,326

 

599,157

Accumulated amortization

 

  

 

  

Customer agreements and relationships

 

151,016

 

135,380

Existing technology

 

248,867

 

218,953

Trade names

 

7,318

 

6,677

Non-compete covenants

 

10,317

 

8,538

 

417,518

 

369,548

Net

 

229,808

 

229,609

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 January 31, 2023 is primarily due to the acquisitions of NetCHB, Foxtrot, XPS and Supply Vision offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.

Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be $229.8 million over the following periods: $49.4 million for 2024, $46.5 million for 2025, $42.3 million for 2026, $27.7 million for 2027, $20.6 million for 2028 and $43.3 million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.

XML 32 R18.htm IDEA: XBRL DOCUMENT v3.22.4
Goodwill
12 Months Ended
Jan. 31, 2023
Goodwill  
Goodwill

Note 10 – Goodwill

Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January 31, 2021:

    

January 31,

    

January 31,

2023

2022

Balance at beginning of period

 

608,761

 

565,177

Acquisition of QuestaWeb

 

 

21,691

Acquisition of Portrix

 

 

15,032

Acquisition of GreenMile

 

 

12,968

Acquisition of NetCHB

 

26,797

 

Acquisition of Foxtrot

 

1,527

 

Acquisition of XPS

 

43,529

 

Acquisition of Supply Vision

 

6,763

 

Adjustments on account of foreign exchange

 

(11,730)

 

(6,107)

Balance at end of period

675,647

608,761

XML 33 R19.htm IDEA: XBRL DOCUMENT v3.22.4
Accrued Liabilities
12 Months Ended
Jan. 31, 2023
Accrued Liabilities  
Accrued Liabilities

Note 11 - Accrued Liabilities

    

January 31,

    

January 31,

2023

2022

Accrued compensation and benefits

 

35,536

 

32,169

Accrued contingent acquisition consideration

30,949

12,990

Accrued professional fees

 

1,619

 

1,318

Other accrued liabilities

 

12,205

 

9,965

 

80,309

 

56,442

Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, and accrued restructuring charges.

XML 34 R20.htm IDEA: XBRL DOCUMENT v3.22.4
Long-term Debt
12 Months Ended
Jan. 31, 2023
Long-Term Debt  
Long-Term Debt

Note 12 – Long-Term Debt

We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a $350.0 million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. On December 7, 2022, we amended our credit facility to extend the maturity date from January 2024 to December 2027. The credit facility has a five-year maturity with no fixed repayment dates prior to the end of the term. The total available amount under the facility of $350.0 million remains unchanged and with the approval of the lenders, the credit facility can be expanded to a total of $500.0 million. Borrowings under the credit facility are secured by a first 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, Canadian Dollar Offered Rate (CDOR) or the Secured Overnight Financing Rate (SOFR) plus an additional 0 to 250 basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. There were no other significant changes to the terms of the credit facility. A standby fee of between 20 to 40 basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.

No amounts were drawn on the credit facility as of January 31, 2023 and the balance of $350.0 million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2023.

As at January 31, 2023, we had outstanding letters of credit of approximately $0.2 million ($0.2 million as at January 31, 2022), which were not related to our credit facility.

XML 35 R21.htm IDEA: XBRL DOCUMENT v3.22.4
Leases
12 Months Ended
Jan. 31, 2023
Leases  
Leases

Note 13 – Leases

We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to 6 years, some of which include options to extend the leases for up to 5 years.

The components of operating lease expense were as follows:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Operating lease cost

 

4,182

 

4,466

 

4,590

Short-term lease cost

 

636

 

432

 

502

Total operating lease cost

 

4,818

 

4,898

 

5,092

Supplemental cash flow information related to operating leases was as follows:

January 31,

January 31,

    

January 31,

Year Ended

2023

2022

2021

Operating cash outflows from operating leases included in measurement of lease liabilities

 

4,240

 

4,857

 

4,831

New ROU assets obtained in exchange for lease obligations

 

864

 

2,548

 

2,337

Supplemental information related to operating leases was as follows:

    

January 31,

    

January 31,

2023

2022

Weighted average remaining lease term (years)

 

2.6

 

3.3

Weighted average discount rate (%)

 

2.4

 

2.1

Maturities of operating lease liabilities were as follows as of January 31, 2023:

    

Operating

Years Ended January 31,

Leases

2024

 

3,569

2025

 

2,498

2026

 

994

2027

 

347

2028

 

120

2029 and thereafter

59

Total lease payments

 

7,587

Less: imputed interest

 

(267)

Total lease obligations

 

7,320

Current

 

3,397

Long-term

 

3,923

XML 36 R22.htm IDEA: XBRL DOCUMENT v3.22.4
Commitments, Contingencies and Guarantees
12 Months Ended
Jan. 31, 2023
Commitments, Contingencies and Guarantees  
Commitments, Contingencies and Guarantees

Note 14 - Commitments, Contingencies and Guarantees

Commitments

As described in Note 2 to these consolidated financial statements, we maintain deferred share unit (“DSU”) and cash-settled restricted share unit (“CRSU”) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of nil and $0.7 million, respectively, at January 31, 2023. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2023, we had equity derivatives for 281,768 Descartes common shares and a DSU liability for 283,338 Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.

Contingencies

We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.

Product Warranties

In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.

Business combination agreements

In respect of our acquisitions of GreenMile, NetCHB, XPS and Supply Vision, up to $148.0 million in cash may become payable if certain revenue performance targets are met in the two years following the acquisition. A balance of $30.9 million is accrued related to the fair value of this contingent consideration as at January 31, 2023.

Guarantees

In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, “Guarantees”. The following lists our significant guarantees:

Intellectual property indemnification obligations

We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.

Other indemnification agreements

In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.

In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.

XML 37 R23.htm IDEA: XBRL DOCUMENT v3.22.4
Share Capital
12 Months Ended
Jan. 31, 2023
Share Capital  
Share Capital

Note 15 – Share Capital

On July 16, 2020, we filed a final short-form base shelf prospectus (the “2020 Base Shelf Prospectus”), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities,

subscription receipts and/ or warrants offered together as a unit. No securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July 2022.

On July 15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the 25-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. No securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.

On June 7, 2022, Descartes announced a normal course issuer bid (“NCIB”), commencing June 10, 2022, to purchase up to approximately 7.4 million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to 10% of the “public float” (calculated in accordance with the rules of the TSX) of Descartes’ issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. No common shares have yet been purchased pursuant to the NCIB.

The following table sets forth the common shares outstanding (number of shares in thousands):

    

January 31,

    

January 31,

    

January 31,

(thousands of shares)

2023

2022

2021

Balance, beginning of year

 

84,756

 

84,494

 

84,156

Shares issued:

 

  

 

  

 

  

Stock options and share units exercised

 

64

 

262

 

338

Issuance of common shares

 

 

 

Acquisitions (Note 3)

 

 

 

Balance, end of year

 

84,820

 

84,756

 

84,494

Cash flows provided from stock options and share units exercised during 2023, 2022 and 2021 were approximately $1.7 million, $2.7 million and $6.2 million, respectively.

XML 38 R24.htm IDEA: XBRL DOCUMENT v3.22.4
Earnings Per Share
12 Months Ended
Jan. 31, 2023
Earnings Per Share [Abstract]  
Earnings Per Share

Note 16 - Earnings Per Share

The following table sets forth the computation of basic and diluted earnings per share (“EPS”) (number of shares in thousands):

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Net income for purposes of calculating basic and diluted earnings per share

 

102,236

 

86,282

 

52,100

Weighted average shares outstanding

 

84,791

 

84,591

 

84,360

Dilutive effect of employee stock options

 

455

 

482

 

358

Dilutive effect of restricted and performance share units

 

1,205

 

1,127

 

1,038

Weighted average common and common equivalent shares outstanding

 

86,451

 

86,200

 

85,756

Earnings per share

 

 

  

 

  

Basic

 

1.21

 

1.02

 

0.62

Diluted

 

1.18

 

1.00

 

0.61

For the years ended January 31, 2023, 2022 and 2021, the application of the treasury stock method excluded 589,658, 267,236 and 1,750 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.

For the years ended January 31, 2023, 2022 and 2021, 1,315, 1,000 and 71,161 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.

Additionally, for the years ended January 31, 2023, 2022 and 2021, the application of the treasury stock method excluded PSUs and RSUs of nil, nil and 43,002, 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.

XML 39 R25.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans
12 Months Ended
Jan. 31, 2023
Stock-Based Compensation Plans  
Stock-Based Compensation Plans

Note 17 - Stock-Based Compensation Plans

Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Cost of revenues

 

940

 

732

 

319

Sales and marketing

 

2,468

 

3,060

 

896

Research and development

 

1,788

 

1,419

 

404

General and administrative

 

8,471

 

5,806

 

4,694

Effect on net income

 

13,667

 

11,017

 

6,313

Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for $0.8 million ($0.7 million at January 31, 2022) recognized in the United States. The tax benefit realized in connection with stock options exercised during 2023,2022 and 2021 was nominal, $0.1 million and nominal, respectively.

Stock Options

As of January 31, 2023, we had 1,593,433 stock options granted and outstanding under our shareholder-approved stock option plan and 2,703,675 remained available for grant.

As of January 31, 2023, $7.7 million of total unrecognized compensation costs, net of forfeitures, related to non-vested stock option awards is expected to be recognized over a weighted average period of 2.6 years. The total fair value of stock options vested during 2023 was $4.2 million. The total number of options granted during the years ended January 31, 2023,2022 and 2021 was 356,014, 271,025 and 381,859, respectively.

The weighted average grant-date fair value of options granted during the years ended January 31, 2023, 2022 and 2021 was $18.47, $16.77 and $10.19 per option, respectively.

The weighted-average assumptions were as follows:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Expected dividend yield (%)

 

 

Expected volatility (%)

 

29.2

 

27.8

26.4

Risk-free rate (%)

 

2.4

 

0.7

0.7

Expected option life (years)

 

5

 

5

5

A summary of option activity under all of our plans is presented as follows:

    

    

    

Weighted-

    

Number of

Weighted-

Average

Aggregate

Stock

Average

Remaining

Intrinsic

Options

Exercise

Contractual

Value

Outstanding

Price

Life (years)

(in millions)

Balance at January 31, 2021

1,147,720

$

33.77

4.9

$

28.1

Granted

271,025

$

65.03

Exercised

(90,166)

$

29.38

Forfeited

(9,300)

$

53.94

Balance at January 31, 2022

 

1,319,279

$

42.35

 

4.4

$

41.5

Granted

 

356,014

$

61.09

 

  

 

  

Exercised

 

(63,890)

$

27.34

 

  

 

  

Forfeited

 

(17,970)

$

52.98

 

  

 

  

Balance at January 31, 2023

 

1,593,433

$

45.54

 

4.1

$

45.7

Vested or expected to vest at January 31, 2023

 

1,593,433

$

45.54

 

4.1

$

45.7

Exercisable at January 31, 2023

 

1,104,612

$

40.35

 

3.5

$

37.4

The total intrinsic value of options exercised during the years ended January 31, 2023, 2022 and 2021 was approximately $2.5 million, $3.7 million and $10.8 million, respectively.

Options outstanding and options exercisable as at January 31, 2023 by range of exercise price are as follows:

Options Outstanding

    Options Exercisable

Weighted

Weighted

Average

Weighted

Average

Number of

Remaining

Average

Number of

Exercise

Stock

Contractual

Exercise

Stock

Range of Exercise Prices

    

Price

    

Options

    

Life (years)

    

Price

    

Options

$18.95$22.86

$

21.75

 

148,153

 

0.9

$

21.75

 

148,153

$26.24$27.85

$

27.85

 

166,350

 

2.2

$

27.85

 

166,350

$38.53$54.25

$

39.53

 

625,310

 

3.7

$

39.12

 

525,872

$56.31$68.49

$

61.19

 

653,620

 

5.7

$

61.11

 

264,237

$

45.54

 

1,593,433

 

4.1

$

40.35

 

1,104,612

A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January 31, 2023 is presented as follows:

    

    

Weighted-

Average 

Number of 

Grant-Date 

Stock Options 

Fair Value per 

Outstanding

Share

Balance at January 31, 2021

 

501,655

$

9.52

Granted

 

271,025

$

16.77

Vested

 

(300,527)

$

11.42

Forfeited

 

(9,300)

$

13.54

Balance at January 31, 2022

 

462,853

$

13.16

Granted

 

356,014

$

18.47

Vested

 

(313,186)

$

13.72

Forfeited

 

(16,860)

$

3.71

Balance at January 31, 2023

 

488,821

$

16.11

Performance Share Units

A summary of PSU activity is as follows:

    

    

Weighted-

    

Weighted-

    

Average

Average

Aggregate

Number of

Granted

Remaining

Intrinsic

PSUs

Date Fair

Contractual

Value

Outstanding

Value

Life (years)

(in millions)

Balance at January 31, 2021

 

755,873

$

25.17

 

4.7

$

44.0

Granted

 

77,441

$

88.11

 

  

 

  

Performance units issued

 

44,296

$

36.63

 

  

 

  

Exercised

(100,072)

$

9.66

Balance at January 31, 2022

 

777,538

$

35.76

 

4.8

$

57.4

Granted

97,991

$

64.98

Performance units issued

39,704

$

54.34

Exercised

Balance at January 31, 2023

915,233

$

38.41

4.5

$

67.9

Vested or expected to vest at January 31, 2023

 

915,233

$

38.41

 

4.5

$

67.9

Exercisable at January 31, 2023

 

654,467

$

26.77

 

3.1

$

48.6

The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2023) that would have been received by PSU holders if all PSUs had been vested on January 31, 2023.

As of January 31, 2023, $6.6 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.0 years. The total fair value of PSUs vested during 2023 was $5.2 million.

Restricted Share Units

A summary of RSU activity is as follows:

    

    

Weighted-

    

Weighted-

    

Aggregate

Average

Average

Intrinsic

Number of

Granted

Remaining

Value

RSUs

Date Fair

Contractual

(in

Outstanding

Value

Life (years)

 millions)

Balance at January 31, 2021

432,195

$

19.98

4.7

$

25.2

Granted

50,099

$

65.33

Exercised

(71,314)

$

7.14

Balance at January 31, 2022

 

410,980

$

29.17

 

5.0

$

30.3

Granted

 

63,651

$

61.53

 

  

 

  

Exercised

Balance at January 31, 2023

 

474,631

$

32.44

 

4.7

$

35.2

Vested or expected to vest at January 31, 2023

 

474,631

$

32.44

 

4.7

$

35.2

Exercisable at January 31, 2023

 

415,496

$

28.26

 

4.1

$

30.8

The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2023) that would have been received by RSU holders if all RSUs had been vested on January 31, 2023.

As of January 31, 2023, $3.5 million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of 1.7 years. The total fair value of RSUs vested during 2023 was $3.3 million.

Deferred Share Unit Plan

As at January 31, 2023, the total number of DSUs held by participating directors was 283,338 (252,011 at January 31, 2022), representing an aggregate accrued liability of $20.6 million ($18.3 million at January 31, 2022). During 2023, 31,327 DSUs were granted and nil DSUs were redeemed and settled in cash. As at January 31, 2023, the unrecognized aggregate liability for the unvested DSUs was nil (nil at January 31, 2022). 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 $3.2 million, $4.5 million and $4.6 million for the years ended January 31, 2023, 2022 and 2021, respectively.

Cash-Settled Restricted Share Unit Plan

A summary of activity under our CRSU plan is as follows:

    

    

Weighted-

Average

Number of

Remaining

CRSUs

Contractual

Outstanding

Life (years)

Balance at January 31, 2021

 

38,628

 

1.5

Granted

 

12,776

 

  

Vested and settled in cash

 

(26,755)

 

  

Forfeited

 

(221)

 

  

Balance at January 31, 2022

 

24,428

 

1.4

Granted

7,948

Vested and settled in cash

(17,719)

Forfeited

(74)

Balance at January 31, 2023

14,583

1.4

Non-vested at January 31, 2023

 

14,583

 

1.4

We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of $0.4 million at January 31, 2023 ($0.8 million at January 31, 2022). As at January 31, 2023, the unrecognized aggregate liability for the unvested CRSUs was $0.7 million ($1.0 million at January 31, 2022). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized in our consolidated statements of operations was approximately $0.8 million, $1.3 million and $1.1 million for the years ended January 31, 2023, 2022 and 2021, respectively.

XML 40 R26.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes
12 Months Ended
Jan. 31, 2023
Income Taxes.  
Income Taxes

Note 18 - Income Taxes

Income before income taxes is earned in the following tax jurisdictions:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Canada

 

49,158

 

36,312

 

31,307

United States

 

51,268

 

32,338

 

26,072

Other countries

 

33,302

 

33,960

 

12,990

 

133,728

 

102,610

 

70,369

Income tax expense is incurred in the following jurisdictions:

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Current income tax expense

 

  

 

  

 

  

Canada

 

9,673

 

1,817

 

1,875

United States

 

13,085

 

8,689

 

(3,050)

Other countries

 

5,490

 

4,308

 

4,921

 

28,248

 

14,814

 

3,746

Deferred income tax expense (recovery)

 

  

 

  

 

  

Canada

 

5,059

 

8,381

 

7,047

United States

 

(1,888)

 

1,941

 

9,537

Other countries

 

73

 

(8,808)

 

(2,061)

 

3,244

 

1,514

 

14,523

 

31,492

 

16,328

 

18,269

Income tax expense for 2023, 2022 and 2021 was 24%, 16% and 26% of income before income taxes, respectively, with current income tax expense being 21%, 14% and 5% of income before income taxes, respectively.

Current income tax expense increased in 2023 compared to 2022 primarily due to the impact of the loss restriction rules in the UK and lower tax attributes available in Canada and US to deduct against income, in 2023.

Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company.

Deferred income tax expense increased in 2023 compared to 2022 primarily due to a release in valuation allowances on tax losses carried forward in the comparative period, partially offset against a recovery of certain deferred tax attributes in the US recorded in 2023, as well as normal course changes in timing differences in Canada.

Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.

The components of the deferred income tax assets and liabilities are as follows:

    

January 31,

    

January 31,

2023

2022

Assets

 

  

 

  

Accrued liabilities not currently deductible

 

5,506

 

5,408

Accumulated net operating losses

 

7,577

 

10,594

Corporate minimum taxes

 

 

2,346

Difference between tax and accounting basis of property and equipment

 

7,400

 

12,021

Research and development expenditures and tax credits

 

3,339

 

1,172

Total deferred income tax assets

 

23,822

 

31,541

Liabilities

 

 

  

Difference between tax and accounting basis of intangible assets

 

(42,958)

 

(47,255)

Temporary difference on equity derivative

 

(3,077)

 

(2,886)

Total deferred income tax liabilities

 

(46,035)

 

(50,141)

Net deferred income taxes

 

(22,213)

 

(18,600)

Valuation allowance

 

(1,704)

 

(1,961)

Net deferred income taxes, net of valuation allowance

 

(23,917)

 

(20,561)

As at January 31, 2023, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $755.0 million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.

The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:

    

January 31,

    

January 31,

    

January 31,

 

Year Ended

2023

2022

2021

 

Income before income taxes

 

133,728

 

102,610

 

70,369

Combined basic Canadian statutory rates

 

26.5

%  

26.5

%  

26.5

%

Income tax expense based on the above rates

 

35,438

 

27,192

 

18,648

Increase (decrease) in income taxes resulting from:

 

  

 

  

 

  

Permanent differences

 

590

 

3,467

 

875

Effect of differences between Canadian and foreign tax rates

 

(1,859)

 

(1,855)

 

(600)

Effect of rate changes on current year timing differences

 

(219)

 

(1,085)

 

(1,063)

Adjustments relating to previous periods

 

(972)

 

(569)

 

(1,034)

Increase (decrease) in accruals for uncertain tax positions

 

(1,181)

 

(849)

 

1,289

Valuation allowance

 

(155)

 

(9,102)

 

254

Stock based compensation

 

 

 

100

Other, including foreign exchange

 

(150)

 

(871)

 

(200)

Income tax expense

 

31,492

 

16,328

 

18,269

We have income tax loss carry forwards which expire as follows:

United

Expiry year

    

Canada

    

States

    

EMEA

    

Asia Pacific

    

Total

2024

175

175

2025

 

 

 

 

63

 

63

2026

 

 

 

 

 

2027

 

 

279

 

34

 

449

 

762

2028

 

 

138

 

 

85

 

223

Thereafter

 

8,128

 

882

 

19,504

 

385

 

28,899

 

8,128

 

1,299

 

19,538

 

1,157

 

30,122

The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:

    

January 31,

    

January 31,

2023

2022

Liability, beginning of year

 

7,354

 

8,393

Gross increases – current period

 

640

 

333

Lapsing due to statutes of limitations

 

(1,874)

 

(1,372)

Liability, end of year

 

6,120

 

7,354

We have identified accruals of $6.1 million with respect to uncertain tax positions as at January 31, 2023. It is possible that these accruals for uncertain tax positions will not be required in which case up to $6.1 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 $1.9 million of the uncertain tax positions could decrease tax expense in the next 12 months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.

We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January 31, 2023 and January 31, 2022, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.

Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:

Years No Longer Subject to

    

Audit

Tax Jurisdiction

  

United States Federal

 

2019 and prior

Canada

 

2017 and prior

United Kingdom

 

2019 and prior

Sweden

 

2020 and prior

Norway

 

2016 and prior

Netherlands

 

2015 and prior

Belgium

 

2020 and prior

Germany

 

2017 and prior

Switzerland

 

2018 and prior

Brazil

 

2018 and prior

XML 41 R27.htm IDEA: XBRL DOCUMENT v3.22.4
Contract Balances, Performance Obligations and Contract Costs
12 Months Ended
Jan. 31, 2023
Contract Balances, Performance Obligations and Contract Costs  
Contract Balances, Performance Obligations and Contract Costs.

Note 19 – Contract Balances, Performance Obligations and Contract Costs

Deferred Revenue

The following table presents the changes in the deferred revenue balance as follows:

    

Deferred

Revenue

Balance at January 31, 2021

 

51,291

Recognition of previously deferred revenue

 

(38,065)

Deferral of revenue

 

45,234

Increases from business combinations, net

 

729

Effect of movements in foreign exchange

 

(489)

Balance at January 31, 2022

 

58,700

Recognition of previously deferred revenue

 

(48,253)

Deferral of revenue

 

57,605

Increases from business combinations, net

2,188

Effect of movements in foreign exchange

(841)

Balance at January 31, 2023

69,399

Current

67,784

Long-term

1,615

Performance Obligations

As of January 31, 2023, approximately $343.8 million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately 80% of these remaining performance obligations over the next 24 months with the balance recognized thereafter.

Contract Assets

The following table presents the changes in the contract assets balance as follows:

    

Contract

Assets

Balance at January 31, 2021

 

1,353

Transfers to trade receivables from contract assets

 

(730)

Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables

 

815

Effect of movements in foreign exchange

 

5

Balance at January 31, 2022

 

1,443

Transfers to trade receivables from contract assets

(824)

Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables

2,618

Effect of movements in foreign exchange

(15)

Balance at January 31, 2023

3,222

Contract Costs

Capitalized contract costs net of accumulated amortization is $18.4 million at January 31, 2023 ($16.6 million at January 31, 2022). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates. The total contract cost amortization included in sales and marketing expenses was approximately $5.8 million, $4.7 million and $3.3 million for the years ended January 31, 2023, 2022 and 2021, respectively.

XML 42 R28.htm IDEA: XBRL DOCUMENT v3.22.4
Other Charges
12 Months Ended
Jan. 31, 2023
Other Charges.  
Other Charges

Note 20 - Other Charges

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.

The following tables shows the components of other charges as follows:

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Acquisition-related costs

 

2,560

 

1,292

 

1,694

Contingent consideration accretion and adjustments

 

2,804

 

5,070

 

(1,659)

Restructuring plans

 

77

 

66

 

2,300

 

5,441

 

6,428

 

2,335

XML 43 R29.htm IDEA: XBRL DOCUMENT v3.22.4
Supplemental Cash Flow Information
12 Months Ended
Jan. 31, 2023
Supplemental Cash Flow Information  
Supplemental Cash Flow Information

Note 21 – Supplemental Cash Flow Information

The following tables presents the cash flow changes in operating asset and liabilities:

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Trade accounts receivable

 

151

 

(2,884)

 

143

Other accounts receivable

 

2,589

 

2,042

 

(7,098)

Prepaid expenses and other

 

(5,663)

 

(8,276)

 

(5,029)

Inventory

 

103

 

(498)

 

99

Accounts payable

 

(620)

 

2,336

 

(686)

Accrued liabilities

 

2,433

 

13,760

 

(999)

Income taxes payable

 

753

 

426

 

3,835

Operating leases

 

(95)

 

(259)

 

283

Deferred revenue

 

8,142

 

6,142

 

5,877

 

7,793

 

12,789

 

(3,575)

XML 44 R30.htm IDEA: XBRL DOCUMENT v3.22.4
Segmented Information
12 Months Ended
Jan. 31, 2023
Segmented Information.  
Segmented Information

Note 22 - Segmented Information

We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in one reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Revenues

 

  

 

  

 

  

United States

 

307,102

 

242,086

 

211,232

Europe, Middle-East and Africa

 

126,942

 

128,990

 

94,163

Canada

 

34,547

 

36,116

 

29,388

Asia Pacific

 

17,423

 

17,498

 

13,881

 

486,014

 

424,690

 

348,664

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Revenues

 

  

 

  

 

  

License

 

8,385

 

5,060

 

5,054

Services

 

435,734

 

378,494

 

309,731

Professional services and other

 

41,895

 

41,136

 

33,879

 

486,014

 

424,690

 

348,664

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.

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.

    

January 31,

    

January 31,

2023

2022

Total long-lived assets

 

  

 

  

United States

 

138,007

 

102,649

Europe, Middle-East and Africa

 

32,921

 

43,922

Canada

 

63,414

 

84,943

Asia Pacific

 

6,900

 

8,912

 

241,242

 

240,426

XML 45 R31.htm IDEA: XBRL DOCUMENT v3.22.4
Subsequent Event
12 Months Ended
Jan. 31, 2023
Subsequent Event  
Subsequent Event

Note 23 - Subsequent Event

On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (“GroundCloud”), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately $138.0 million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to $80.0 million based on GroundCloud achieving revenue-based targets over the first two years post-acquisition. The major classes of assets acquired include: current assets, intangible technology assets, intangible customer assets, as well as certain liabilities assumed. Due to the limited time since the acquisition date and the size of the transaction, the accounting for the business combination is not yet complete and the fair value of the acquired assets and liabilities has not been determined.

XML 46 R32.htm IDEA: XBRL DOCUMENT v3.22.4
Basis of Presentation (Policies)
12 Months Ended
Jan. 31, 2023
Basis of Presentation  
Basis of Presentation

The accompanying consolidated financial statements are presented in United States (“US”) dollars and are prepared in accordance with generally accepted accounting principles in the US (“GAAP”) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (“SEC”) for the preparation of consolidated financial statements.

Our fiscal year commences on February 1st of each year and ends on January 31st of the following year. Our fiscal year, which ends on January 31, 2023, is referred to as the “current fiscal year”, “fiscal 2023”, “2023” or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the “previous fiscal year”, “fiscal 2022”, “2022” or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, “2024” refers to the annual period ending January 31, 2024 and the “fourth quarter of 2024” refers to the quarter ending January 31, 2024.

Basis of consolidation

Basis of consolidation

The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.

Foreign currency translation

Foreign currency translation

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.

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 January 31, 2023, foreign currency re-measurement loss of $1.2 million was included in net income (January 31, 2022 – loss of $0.3 million; January 31, 2021 – loss of $0.8 million).

Use of estimates

Use of estimates

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 may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.

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 (“SSP”) of performance obligations in contracts with customers.

Cash

Cash

Cash included highly liquid short-term deposits with original maturities of three months or less.

Financial instruments

Financial instruments

Fair value of financial instruments

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.

Derivative instruments

We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 “Derivatives and Hedging” (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.

Foreign exchange risk

We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.

Interest rate risk

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) Canadian Dollar Offered Rate (CDOR); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility.

Credit risk

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.

We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes.

Equity risk

We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.

Provision for Credit Losses

Provision for Credit Losses

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.

Inventory

Inventory

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.

The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.

Impairment of long-lived assets

Impairment of long-lived assets

We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.

Goodwill and intangible assets

Goodwill and intangible assets

Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization.

We test for impairment of goodwill at least annually on October 31st of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our 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 third quarter of 2023 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, no impairment of goodwill was recorded in fiscal 2023 (no impairments were recorded for fiscal 2022 or fiscal 2021).

Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.

Amortization of our intangible assets is generally recorded at the following rates:

Customer agreements and relationships

Straight-line over two to twenty years

Existing technologies

Straight-line over four to twelve years

Trade names

Straight-line over three to fifteen years

Non-compete covenants

Straight-line over two to twelve years

Property and equipment

Property and equipment

Property and equipment is recorded at cost.

Effective February 1, 2020, we changed our accounting method for property & 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 was applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.

Depreciation of our property and equipment is generally recorded at the following rates:

Computer equipment and software

Straight-line over 1 to 13 years

Furniture and fixtures

Straight-line over 3 to 14 years

Leasehold improvements

Straight-line over lesser of useful life or term of lease

Equipment installed with customers

Straight-line over 3 years

Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.

Leases

Leases

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.

We recognize a right-of-use (“ROU”) 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.

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 not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.

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.

We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.

Revenue recognition

Revenue recognition

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.

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.

License

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.

Services

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.

Professional Services & Other

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.

Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.

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 our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.

Costs to obtain a contract with a customer

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 four to six years, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.

Contract assets and liabilities

The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.

Research and development costs

Research and development costs

To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.

Stock-based compensation plans

Stock-based compensation plans

Stock Options

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.  

Employee stock options generally vest over a five-year period starting from the grant date and expire seven years from the grant date. Non-employee directors’ and officers’ stock options generally have quarterly vesting over a three to five-year period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur.

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.

Performance & Restricted Share Units

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 (“PSUs”) and restricted share units (“RSUs”).

PSUs vest at the end of a three-year performance period. The ultimate number of PSUs that vest is based on the total shareholder return (“TSR”) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire ten years from the grant date. New shares are issued from treasury upon the redemption of a PSU.

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.

RSUs vest annually over a three-year period starting from the grant date and expire ten years from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period.

Deferred Share Unit Plan

Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (“DSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none 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 50% of the base annual fee for serving as a director in the form of DSUs. Each DSU fully vests upon award but is distributed only when the director ceases to be a member of the board of directors. Vested units are settled in cash based on our common share price when conversion takes place. Fair value of the liability is based on the closing price of our common shares at the balance sheet date.

Cash-Settled Restricted Share Unit Plan

Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (“CRSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over three to five-year periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31st 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.

Business combinations

Business combinations

We apply the provisions of ASC Topic 805, “Business Combinations” (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.

Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.

While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations.

Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, “Exit or Disposal Cost Obligations” (Topic 420) and are accounted for separately from the business combination.

For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.

Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.

Income taxes

Income taxes

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 not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.

We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.

Earnings per share

Earnings per share

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.

Recently issued accounting pronouncements

Recently issued accounting pronouncements

In October 2021, the FASB issued Accounting Standards Update 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers” (“ASU 2021-08”). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures.

XML 47 R33.htm IDEA: XBRL DOCUMENT v3.22.4
Basis of Presentation (Tables)
12 Months Ended
Jan. 31, 2023
Notes Tables  
Schedule of amortization of intangible assets

Customer agreements and relationships

Straight-line over two to twenty years

Existing technologies

Straight-line over four to twelve years

Trade names

Straight-line over three to fifteen years

Non-compete covenants

Straight-line over two to twelve years

Schedule of depreciation of property, plant and equipment

Computer equipment and software

Straight-line over 1 to 13 years

Furniture and fixtures

Straight-line over 3 to 14 years

Leasehold improvements

Straight-line over lesser of useful life or term of lease

Equipment installed with customers

Straight-line over 3 years

XML 48 R34.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions (Tables)
12 Months Ended
Jan. 31, 2023
Acquisitions  
Schedule of preliminary purchase price allocation for businesses acquired

    

    

    

    

Supply

    

NetCHB

Foxtrot

XPS

Vision

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to NetCHB ($658), Foxtrot (Nil), XPS ($3,932) and Supply Vision ($413)

 

38,664

 

4,228

 

61,096

 

11,573

115,561

Contingent consideration

 

13,948

 

 

9,425

 

2,670

26,043

Net working capital adjustments payable (receivable)

 

51

 

66

 

978

 

(137)

958

 

52,663

 

4,294

 

71,499

 

14,106

142,562

Allocated to:

 

  

 

  

 

 

Current assets, excluding cash acquired

 

469

 

835

 

2,449

 

703

4,456

Current liabilities

 

(367)

 

(22)

 

(1,483)

 

(658)

(2,530)

Deferred revenue

 

 

(336)

 

(2,196)

 

(132)

(2,664)

Net tangible assets (liabilities) assumed

 

102

 

477

 

(1,230)

 

(87)

(738)

 

  

 

  

 

 

Finite life intangible assets acquired:

Customer agreements and relationships

 

10,900

 

650

 

8,100

 

2,500

22,150

Existing technology

 

14,100

 

1,640

 

20,000

 

4,700

40,440

Trade names

 

64

 

 

100

 

30

194

Non-compete covenants

 

700

 

 

1,000

 

200

1,900

Goodwill

 

26,797

 

1,527

 

43,529

 

6,763

78,616

 

52,663

 

4,294

 

71,499

 

14,106

142,562

    

    

    

Green

    

QuestaWeb

Portrix

Mile

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to QuestaWeb ($2,097), Portrix ($200) and GreenMile ($1,552)

 

35,860

25,188

 

29,230

 

90,278

Contingent consideration

 

 

 

3,339

 

3,339

Net working capital adjustments payable / (receivable)

 

17

 

(54)

 

(308)

 

(345)

 

35,877

 

25,134

 

32,261

 

93,272

Allocated to:

 

  

 

  

 

  

 

  

Current assets, excluding cash acquired

 

714

 

810

 

2,186

 

3,710

Property and equipment

 

78

 

 

89

 

167

Right-of-use assets

 

123

 

374

 

 

497

Other long-term assets

 

 

 

242

 

242

Current liabilities

 

(170)

 

(871)

 

(1,498)

 

(2,539)

Deferred revenue

 

(736)

 

(499)

 

(909)

 

(2,144)

Lease obligations

 

(123)

 

(374)

 

 

(497)

Deferred income tax liability

 

 

(5,185)

 

(752)

 

(5,937)

Long-term income taxes payable

 

 

 

(365)

 

(365)

Debt

 

 

(1,062)

 

 

(1,062)

Net tangible assets (liabilities) assumed

 

(114)

 

(6,807)

 

(1,007)

 

(7,928)

 

  

 

  

 

  

 

  

Finite life intangible assets acquired:

Customer agreements and relationships

 

4,800

 

4,014

 

5,700

 

14,514

Existing technology

 

8,900

 

12,286

 

14,000

 

35,186

Trade names

 

100

 

122

 

100

 

322

Non-compete covenants

 

500

 

487

 

500

 

1,487

Goodwill

 

21,691

 

15,032

 

12,968

 

49,691

 

35,877

 

25,134

 

32,261

 

93,272

    

Peoplevox

    

Kontainers

    

ShipTrack

    

Total

Purchase price consideration:

 

  

 

  

 

  

 

  

Cash, less cash acquired related to Peoplevox ($1,634), Kontainers (overdraft of $13) and ShipTrack ($529)

 

24,137

 

5,237

 

19,029

 

48,403

Consideration payable

 

 

100

 

 

100

Contingent consideration

 

 

1,414

 

2,825

 

4,239

Net working capital adjustments (receivable) / payable

 

(42)

 

(87)

64

 

(65)

 

 

24,095

 

6,664

 

21,918

 

52,677

Allocated to:

 

  

 

  

 

  

 

  

Current assets, excluding cash acquired

 

485

 

469

 

1,853

 

2,807

Right-of-use assets

 

 

 

151

 

151

Current liabilities

 

(776)

 

(1,074)

 

(693)

 

(2,543)

Deferred revenue

 

(748)

 

(102)

 

(204)

 

(1,054)

Lease obligations

 

 

 

(151)

 

(151)

Deferred income tax liability

 

(1,615)

 

 

(4,012)

 

(5,627)

Debt

 

 

 

(728)

 

(728)

Net tangible assets (liabilities) assumed

 

(2,654)

 

(707)

 

(3,784)

 

(7,145)

 

  

 

  

 

  

 

  

Finite life intangible assets acquired:

Customer agreements and relationships

 

3,631

 

800

 

3,905

 

8,336

Existing technology

 

7,651

 

3,000

 

11,102

 

21,753

Trade names

 

 

30

 

77

 

107

Non-compete covenants

 

285

 

80

 

291

 

656

Goodwill

 

15,182

 

3,461

 

10,327

 

28,970

 

24,095

 

6,664

 

21,918

 

52,677

Schedule of acquired intangible assets are being amortized over their estimated useful lives

    

    

    

    

Supply

NetCHB

Foxtrot

XPS

Vision

Customer agreements and relationships

 

13 years

 

13 years

 

11 years

11 years

Existing technology

 

6 years

 

6 years

 

6 years

6 years

Trade names

 

2 years

 

N/A

 

2 years

9 years

Non-compete covenants

 

5 years

 

N/A

 

5 years

5 years

    

QuestaWeb

    

Portrix

    

GreenMile

Customer agreements and relationships

 

13 years

 

13 years

 

13 years

Existing technology

 

6 years

 

6 years

 

6 years

Trade names

 

3 years

 

3 years

 

3 years

Non-compete covenants

 

5 years

 

2 years

 

5 years

    

Peoplevox

    

Kontainers

    

ShipTrack

Customer agreements and relationships

 

10 years

 

12 years

 

13 years

Existing technology

 

6 years

 

5 years

 

6 years

Trade names

 

N/A

 

3 years

 

3 years

Non-compete covenants

 

5 years

 

5 years

 

5 years

Business acquisition on pro forma information

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Revenues

 

495,874

461,864

 

393,322

Net income

 

103,700

91,398

 

49,315

Earnings per share

 

 

Basic

 

1.22

1.08

 

0.58

Diluted

 

1.20

1.06

 

0.58

XML 49 R35.htm IDEA: XBRL DOCUMENT v3.22.4
Fair Value Measurements (Tables)
12 Months Ended
Jan. 31, 2023
Fair Value Measurements  
Schedule of financial instruments measured at fair value on recurring basis

    

Level 1

    

Level 2

    

Level 3

    

Total

Assets:

 

  

 

  

 

  

 

  

Equity derivative contracts

 

 

11,610

 

 

11,610

Liabilities:

 

  

 

  

 

  

 

  

Contingent consideration

 

 

 

30,949

 

30,949

    

Level 1

    

Level 2

    

Level 3

    

Total

Assets:

 

  

 

  

 

  

 

  

Equity derivative contracts

 

 

10,863

 

 

10,863

Liabilities:

 

  

 

  

 

  

 

  

Contingent consideration

 

 

 

12,990

 

12,990

Schedule of changes in fair value measurements

    

Level 3

Balance at January 31, 2021

4,671

Increase from acquisitions

3,339

Charges through profit or loss

5,070

Effect of movements in foreign exchange

(90)

Balance at January 31, 2022

 

12,990

Increase from acquisitions

 

26,043

Cash payments

 

(10,782)

Charges through profit or loss

 

2,804

Effect of movements in foreign exchange

 

(106)

Balance at January 31, 2023

 

30,949

XML 50 R36.htm IDEA: XBRL DOCUMENT v3.22.4
Trade Accounts Receivable (Tables)
12 Months Ended
Jan. 31, 2023
Trade Accounts Receivable  
Schedule of trade accounts receivable

    

January 31,

    

January 31,

2023

2022

Trade accounts receivable

 

46,718

 

43,565

Less: Provision for credit losses

 

(1,545)

 

(1,860)

 

45,173

 

41,705

Schedule of changes in provision for credit losses

    

Provision

for Credit

Losses

Balance at January 31, 2021

2,330

Current period provision for expected losses

1,007

Write-offs charged against the provision

(1,456)

Effect of movements in foreign exchange

(21)

Balance at January 31, 2022

 

1,860

Current period provision for expected losses

 

1,068

Write-offs charged against the provision

 

(1,341)

Effect of movements in foreign exchange

 

(42)

Balance at January 31, 2023

 

1,545

XML 51 R37.htm IDEA: XBRL DOCUMENT v3.22.4
Other Receivables (Tables)
12 Months Ended
Jan. 31, 2023
Other Receivables  
Schedule of other receivables

    

January 31,

    

January 31,

2023

2022

Net working capital adjustments receivable from acquisitions

 

384

 

309

Other receivables

 

11,274

 

13,766

 

11,658

 

14,075

XML 52 R38.htm IDEA: XBRL DOCUMENT v3.22.4
Property and Equipment (Tables)
12 Months Ended
Jan. 31, 2023
Property and Equipment  
Schedule of property and equipment

    

January 31,

    

January 31,

2023

2022

Cost

 

  

 

  

Computer equipment and software

 

44,304

 

40,937

Furniture and fixtures

 

1,533

 

1,553

Leasehold improvements

 

1,076

 

822

Equipment installed with customers

 

1,936

 

1,635

Assets under construction

 

358

 

524

 

49,207

 

45,471

Accumulated depreciation

 

  

 

  

Computer equipment and software

 

34,275

 

31,660

Furniture and fixtures

 

1,283

 

1,257

Leasehold improvements

 

660

 

531

Equipment installed with customers

 

1,555

 

1,206

 

37,773

 

34,654

Net

 

11,434

 

10,817

XML 53 R39.htm IDEA: XBRL DOCUMENT v3.22.4
Intangible Assets (Tables)
12 Months Ended
Jan. 31, 2023
Intangible Assets  
Schedule of intangible asset

    

January 31,

    

January 31,

2023

2022

Cost

 

  

 

  

Customer agreements and relationships

 

268,712

 

251,402

Existing technology

 

355,695

 

326,411

Trade names

 

9,026

 

9,038

Non-compete covenants

 

13,893

 

12,306

 

647,326

 

599,157

Accumulated amortization

 

  

 

  

Customer agreements and relationships

 

151,016

 

135,380

Existing technology

 

248,867

 

218,953

Trade names

 

7,318

 

6,677

Non-compete covenants

 

10,317

 

8,538

 

417,518

 

369,548

Net

 

229,808

 

229,609

XML 54 R40.htm IDEA: XBRL DOCUMENT v3.22.4
Goodwill (Tables)
12 Months Ended
Jan. 31, 2023
Goodwill  
Schedule of goodwill

    

January 31,

    

January 31,

2023

2022

Balance at beginning of period

 

608,761

 

565,177

Acquisition of QuestaWeb

 

 

21,691

Acquisition of Portrix

 

 

15,032

Acquisition of GreenMile

 

 

12,968

Acquisition of NetCHB

 

26,797

 

Acquisition of Foxtrot

 

1,527

 

Acquisition of XPS

 

43,529

 

Acquisition of Supply Vision

 

6,763

 

Adjustments on account of foreign exchange

 

(11,730)

 

(6,107)

Balance at end of period

675,647

608,761

XML 55 R41.htm IDEA: XBRL DOCUMENT v3.22.4
Accrued Liabilities (Tables)
12 Months Ended
Jan. 31, 2023
Accrued Liabilities  
Schedule of accrued liabilities

    

January 31,

    

January 31,

2023

2022

Accrued compensation and benefits

 

35,536

 

32,169

Accrued contingent acquisition consideration

30,949

12,990

Accrued professional fees

 

1,619

 

1,318

Other accrued liabilities

 

12,205

 

9,965

 

80,309

 

56,442

XML 56 R42.htm IDEA: XBRL DOCUMENT v3.22.4
Leases (Tables)
12 Months Ended
Jan. 31, 2023
Leases  
Schedule of components of operating lease expense

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Operating lease cost

 

4,182

 

4,466

 

4,590

Short-term lease cost

 

636

 

432

 

502

Total operating lease cost

 

4,818

 

4,898

 

5,092

January 31,

January 31,

    

January 31,

Year Ended

2023

2022

2021

Operating cash outflows from operating leases included in measurement of lease liabilities

 

4,240

 

4,857

 

4,831

New ROU assets obtained in exchange for lease obligations

 

864

 

2,548

 

2,337

    

January 31,

    

January 31,

2023

2022

Weighted average remaining lease term (years)

 

2.6

 

3.3

Weighted average discount rate (%)

 

2.4

 

2.1

Schedule of maturities for operating lease liabilities

    

Operating

Years Ended January 31,

Leases

2024

 

3,569

2025

 

2,498

2026

 

994

2027

 

347

2028

 

120

2029 and thereafter

59

Total lease payments

 

7,587

Less: imputed interest

 

(267)

Total lease obligations

 

7,320

Current

 

3,397

Long-term

 

3,923

XML 57 R43.htm IDEA: XBRL DOCUMENT v3.22.4
Share Capital (Tables)
12 Months Ended
Jan. 31, 2023
Share Capital  
Schedule of common shares outstanding

    

January 31,

    

January 31,

    

January 31,

(thousands of shares)

2023

2022

2021

Balance, beginning of year

 

84,756

 

84,494

 

84,156

Shares issued:

 

  

 

  

 

  

Stock options and share units exercised

 

64

 

262

 

338

Issuance of common shares

 

 

 

Acquisitions (Note 3)

 

 

 

Balance, end of year

 

84,820

 

84,756

 

84,494

XML 58 R44.htm IDEA: XBRL DOCUMENT v3.22.4
Earnings Per Share (Tables)
12 Months Ended
Jan. 31, 2023
Earnings Per Share [Abstract]  
Schedule of computation of basic and diluted earnings per share

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Net income for purposes of calculating basic and diluted earnings per share

 

102,236

 

86,282

 

52,100

Weighted average shares outstanding

 

84,791

 

84,591

 

84,360

Dilutive effect of employee stock options

 

455

 

482

 

358

Dilutive effect of restricted and performance share units

 

1,205

 

1,127

 

1,038

Weighted average common and common equivalent shares outstanding

 

86,451

 

86,200

 

85,756

Earnings per share

 

 

  

 

  

Basic

 

1.21

 

1.02

 

0.62

Diluted

 

1.18

 

1.00

 

0.61

XML 59 R45.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans (Tables)
12 Months Ended
Jan. 31, 2023
Stock-Based Compensation Plans  
Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Cost of revenues

 

940

 

732

 

319

Sales and marketing

 

2,468

 

3,060

 

896

Research and development

 

1,788

 

1,419

 

404

General and administrative

 

8,471

 

5,806

 

4,694

Effect on net income

 

13,667

 

11,017

 

6,313

Schedule of weighted-average assumptions

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Expected dividend yield (%)

 

 

Expected volatility (%)

 

29.2

 

27.8

26.4

Risk-free rate (%)

 

2.4

 

0.7

0.7

Expected option life (years)

 

5

 

5

5

Schedule of stock option activity

    

    

    

Weighted-

    

Number of

Weighted-

Average

Aggregate

Stock

Average

Remaining

Intrinsic

Options

Exercise

Contractual

Value

Outstanding

Price

Life (years)

(in millions)

Balance at January 31, 2021

1,147,720

$

33.77

4.9

$

28.1

Granted

271,025

$

65.03

Exercised

(90,166)

$

29.38

Forfeited

(9,300)

$

53.94

Balance at January 31, 2022

 

1,319,279

$

42.35

 

4.4

$

41.5

Granted

 

356,014

$

61.09

 

  

 

  

Exercised

 

(63,890)

$

27.34

 

  

 

  

Forfeited

 

(17,970)

$

52.98

 

  

 

  

Balance at January 31, 2023

 

1,593,433

$

45.54

 

4.1

$

45.7

Vested or expected to vest at January 31, 2023

 

1,593,433

$

45.54

 

4.1

$

45.7

Exercisable at January 31, 2023

 

1,104,612

$

40.35

 

3.5

$

37.4

Summary of performance share units activity

Options Outstanding

    Options Exercisable

Weighted

Weighted

Average

Weighted

Average

Number of

Remaining

Average

Number of

Exercise

Stock

Contractual

Exercise

Stock

Range of Exercise Prices

    

Price

    

Options

    

Life (years)

    

Price

    

Options

$18.95$22.86

$

21.75

 

148,153

 

0.9

$

21.75

 

148,153

$26.24$27.85

$

27.85

 

166,350

 

2.2

$

27.85

 

166,350

$38.53$54.25

$

39.53

 

625,310

 

3.7

$

39.12

 

525,872

$56.31$68.49

$

61.19

 

653,620

 

5.7

$

61.11

 

264,237

$

45.54

 

1,593,433

 

4.1

$

40.35

 

1,104,612

Schedule of Non vested share activity

    

    

Weighted-

Average 

Number of 

Grant-Date 

Stock Options 

Fair Value per 

Outstanding

Share

Balance at January 31, 2021

 

501,655

$

9.52

Granted

 

271,025

$

16.77

Vested

 

(300,527)

$

11.42

Forfeited

 

(9,300)

$

13.54

Balance at January 31, 2022

 

462,853

$

13.16

Granted

 

356,014

$

18.47

Vested

 

(313,186)

$

13.72

Forfeited

 

(16,860)

$

3.71

Balance at January 31, 2023

 

488,821

$

16.11

Schedule of performance share units activity

    

    

Weighted-

    

Weighted-

    

Average

Average

Aggregate

Number of

Granted

Remaining

Intrinsic

PSUs

Date Fair

Contractual

Value

Outstanding

Value

Life (years)

(in millions)

Balance at January 31, 2021

 

755,873

$

25.17

 

4.7

$

44.0

Granted

 

77,441

$

88.11

 

  

 

  

Performance units issued

 

44,296

$

36.63

 

  

 

  

Exercised

(100,072)

$

9.66

Balance at January 31, 2022

 

777,538

$

35.76

 

4.8

$

57.4

Granted

97,991

$

64.98

Performance units issued

39,704

$

54.34

Exercised

Balance at January 31, 2023

915,233

$

38.41

4.5

$

67.9

Vested or expected to vest at January 31, 2023

 

915,233

$

38.41

 

4.5

$

67.9

Exercisable at January 31, 2023

 

654,467

$

26.77

 

3.1

$

48.6

Schedule of restricted share units activity

    

    

Weighted-

    

Weighted-

    

Aggregate

Average

Average

Intrinsic

Number of

Granted

Remaining

Value

RSUs

Date Fair

Contractual

(in

Outstanding

Value

Life (years)

 millions)

Balance at January 31, 2021

432,195

$

19.98

4.7

$

25.2

Granted

50,099

$

65.33

Exercised

(71,314)

$

7.14

Balance at January 31, 2022

 

410,980

$

29.17

 

5.0

$

30.3

Granted

 

63,651

$

61.53

 

  

 

  

Exercised

Balance at January 31, 2023

 

474,631

$

32.44

 

4.7

$

35.2

Vested or expected to vest at January 31, 2023

 

474,631

$

32.44

 

4.7

$

35.2

Exercisable at January 31, 2023

 

415,496

$

28.26

 

4.1

$

30.8

Schedule of cash settled restricted share unit plan activity

    

    

Weighted-

Average

Number of

Remaining

CRSUs

Contractual

Outstanding

Life (years)

Balance at January 31, 2021

 

38,628

 

1.5

Granted

 

12,776

 

  

Vested and settled in cash

 

(26,755)

 

  

Forfeited

 

(221)

 

  

Balance at January 31, 2022

 

24,428

 

1.4

Granted

7,948

Vested and settled in cash

(17,719)

Forfeited

(74)

Balance at January 31, 2023

14,583

1.4

Non-vested at January 31, 2023

 

14,583

 

1.4

XML 60 R46.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes (Tables)
12 Months Ended
Jan. 31, 2023
Note 18 - Income Taxes  
Schedule of Income before Income Tax, Domestic and Foreign

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Canada

 

49,158

 

36,312

 

31,307

United States

 

51,268

 

32,338

 

26,072

Other countries

 

33,302

 

33,960

 

12,990

 

133,728

 

102,610

 

70,369

Schedule of components of Income Tax Expense (Benefit)

    

January 31,

    

January 31,

    

January 31,

Year Ended

2023

2022

2021

Current income tax expense

 

  

 

  

 

  

Canada

 

9,673

 

1,817

 

1,875

United States

 

13,085

 

8,689

 

(3,050)

Other countries

 

5,490

 

4,308

 

4,921

 

28,248

 

14,814

 

3,746

Deferred income tax expense (recovery)

 

  

 

  

 

  

Canada

 

5,059

 

8,381

 

7,047

United States

 

(1,888)

 

1,941

 

9,537

Other countries

 

73

 

(8,808)

 

(2,061)

 

3,244

 

1,514

 

14,523

 

31,492

 

16,328

 

18,269

Schedule of deferred tax assets and liabilities

    

January 31,

    

January 31,

2023

2022

Assets

 

  

 

  

Accrued liabilities not currently deductible

 

5,506

 

5,408

Accumulated net operating losses

 

7,577

 

10,594

Corporate minimum taxes

 

 

2,346

Difference between tax and accounting basis of property and equipment

 

7,400

 

12,021

Research and development expenditures and tax credits

 

3,339

 

1,172

Total deferred income tax assets

 

23,822

 

31,541

Liabilities

 

 

  

Difference between tax and accounting basis of intangible assets

 

(42,958)

 

(47,255)

Temporary difference on equity derivative

 

(3,077)

 

(2,886)

Total deferred income tax liabilities

 

(46,035)

 

(50,141)

Net deferred income taxes

 

(22,213)

 

(18,600)

Valuation allowance

 

(1,704)

 

(1,961)

Net deferred income taxes, net of valuation allowance

 

(23,917)

 

(20,561)

Schedule of effective income tax rate reconciliation

    

January 31,

    

January 31,

    

January 31,

 

Year Ended

2023

2022

2021

 

Income before income taxes

 

133,728

 

102,610

 

70,369

Combined basic Canadian statutory rates

 

26.5

%  

26.5

%  

26.5

%

Income tax expense based on the above rates

 

35,438

 

27,192

 

18,648

Increase (decrease) in income taxes resulting from:

 

  

 

  

 

  

Permanent differences

 

590

 

3,467

 

875

Effect of differences between Canadian and foreign tax rates

 

(1,859)

 

(1,855)

 

(600)

Effect of rate changes on current year timing differences

 

(219)

 

(1,085)

 

(1,063)

Adjustments relating to previous periods

 

(972)

 

(569)

 

(1,034)

Increase (decrease) in accruals for uncertain tax positions

 

(1,181)

 

(849)

 

1,289

Valuation allowance

 

(155)

 

(9,102)

 

254

Stock based compensation

 

 

 

100

Other, including foreign exchange

 

(150)

 

(871)

 

(200)

Income tax expense

 

31,492

 

16,328

 

18,269

Schedule of operating loss carryforwards

United

Expiry year

    

Canada

    

States

    

EMEA

    

Asia Pacific

    

Total

2024

175

175

2025

 

 

 

 

63

 

63

2026

 

 

 

 

 

2027

 

 

279

 

34

 

449

 

762

2028

 

 

138

 

 

85

 

223

Thereafter

 

8,128

 

882

 

19,504

 

385

 

28,899

 

8,128

 

1,299

 

19,538

 

1,157

 

30,122

Schedule of unrecognized tax benefits roll forward

    

January 31,

    

January 31,

2023

2022

Liability, beginning of year

 

7,354

 

8,393

Gross increases – current period

 

640

 

333

Lapsing due to statutes of limitations

 

(1,874)

 

(1,372)

Liability, end of year

 

6,120

 

7,354

XML 61 R47.htm IDEA: XBRL DOCUMENT v3.22.4
Contract Balances, Performance Obligations and Contract Costs (Tables)
12 Months Ended
Jan. 31, 2023
Contract Balances, Performance Obligations and Contract Costs  
Schedule of the changes in the contract assets balance

    

Deferred

Revenue

Balance at January 31, 2021

 

51,291

Recognition of previously deferred revenue

 

(38,065)

Deferral of revenue

 

45,234

Increases from business combinations, net

 

729

Effect of movements in foreign exchange

 

(489)

Balance at January 31, 2022

 

58,700

Recognition of previously deferred revenue

 

(48,253)

Deferral of revenue

 

57,605

Increases from business combinations, net

2,188

Effect of movements in foreign exchange

(841)

Balance at January 31, 2023

69,399

Current

67,784

Long-term

1,615

    

Contract

Assets

Balance at January 31, 2021

 

1,353

Transfers to trade receivables from contract assets

 

(730)

Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables

 

815

Effect of movements in foreign exchange

 

5

Balance at January 31, 2022

 

1,443

Transfers to trade receivables from contract assets

(824)

Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables

2,618

Effect of movements in foreign exchange

(15)

Balance at January 31, 2023

3,222

XML 62 R48.htm IDEA: XBRL DOCUMENT v3.22.4
Other Charges (Tables)
12 Months Ended
Jan. 31, 2023
Other Charges.  
Schedule of components of other charges

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Acquisition-related costs

 

2,560

 

1,292

 

1,694

Contingent consideration accretion and adjustments

 

2,804

 

5,070

 

(1,659)

Restructuring plans

 

77

 

66

 

2,300

 

5,441

 

6,428

 

2,335

XML 63 R49.htm IDEA: XBRL DOCUMENT v3.22.4
Supplemental Cash Flow Information (Tables)
12 Months Ended
Jan. 31, 2023
Supplemental Cash Flow Information  
Schedule of cash flow changes in operating asset and liabilities

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Trade accounts receivable

 

151

 

(2,884)

 

143

Other accounts receivable

 

2,589

 

2,042

 

(7,098)

Prepaid expenses and other

 

(5,663)

 

(8,276)

 

(5,029)

Inventory

 

103

 

(498)

 

99

Accounts payable

 

(620)

 

2,336

 

(686)

Accrued liabilities

 

2,433

 

13,760

 

(999)

Income taxes payable

 

753

 

426

 

3,835

Operating leases

 

(95)

 

(259)

 

283

Deferred revenue

 

8,142

 

6,142

 

5,877

 

7,793

 

12,789

 

(3,575)

XML 64 R50.htm IDEA: XBRL DOCUMENT v3.22.4
Segmented Information (Tables)
12 Months Ended
Jan. 31, 2023
Segmented Information.  
Schedule of disaggregated revenue information by geographic location of customer and revenue

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Revenues

 

  

 

  

 

  

United States

 

307,102

 

242,086

 

211,232

Europe, Middle-East and Africa

 

126,942

 

128,990

 

94,163

Canada

 

34,547

 

36,116

 

29,388

Asia Pacific

 

17,423

 

17,498

 

13,881

 

486,014

 

424,690

 

348,664

Schedule of segment reporting information, by segment

January 31,

    

January 31,

January 31,

Year Ended

2023

2022

2021

Revenues

 

  

 

  

 

  

License

 

8,385

 

5,060

 

5,054

Services

 

435,734

 

378,494

 

309,731

Professional services and other

 

41,895

 

41,136

 

33,879

 

486,014

 

424,690

 

348,664

Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country

    

January 31,

    

January 31,

2023

2022

Total long-lived assets

 

  

 

  

United States

 

138,007

 

102,649

Europe, Middle-East and Africa

 

32,921

 

43,922

Canada

 

63,414

 

84,943

Asia Pacific

 

6,900

 

8,912

 

241,242

 

240,426

XML 65 R51.htm IDEA: XBRL DOCUMENT v3.22.4
Basis of Presentation (Details) - USD ($)
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Foreign currency re-measurement loss $ 1,200,000 $ 300,000 $ 800,000
Goodwill impairment loss $ 0 $ 0 $ 0
Share-based Payment Arrangement, Option [Member]      
Share-based compensation arrangement by share-based payment award, award vesting period (Year) 5 years    
Share-based compensation arrangement by share-based payment award, expiration period (Year) 7 years    
Performance Shares [Member]      
Share-based compensation arrangement by share-based payment award, award vesting period (Year) 3 years    
Share-based compensation arrangement by share-based payment award, expiration period (Year) 10 years    
Restricted Stock Units (RSUs) [Member]      
Share-based compensation arrangement by share-based payment award, award vesting period (Year) 3 years    
Share-based compensation arrangement by share-based payment award, expiration period (Year) 10 years    
Deferred Share Unit Plan [Member]      
Base annual fee, percent 50.00%    
Equipment [Member]      
Property and equipment useful life (Year) 3 years    
Minimum [Member]      
Costs to obtain a contract with a customer, period of benefit including renewals (Year) 4 years    
Minimum [Member] | Directors and Officers [Member]      
Share-based compensation arrangement by share-based payment award, award vesting period (Year) 3 years    
Minimum [Member] | Cash-Settled Restricted Share Plan [Member]      
Cash settled restricted share units, vesting period (Year) 3 years    
Minimum [Member] | Computer Equipment [Member]      
Property and equipment useful life (Year) 1 year    
Minimum [Member] | Furniture and Fixtures [Member]      
Property and equipment useful life (Year) 3 years    
Maximum [Member]      
Costs to obtain a contract with a customer, period of benefit including renewals (Year) 6 years    
Maximum [Member] | Directors and Officers [Member]      
Share-based compensation arrangement by share-based payment award, award vesting period (Year) 5 years    
Maximum [Member] | Cash-Settled Restricted Share Plan [Member]      
Cash settled restricted share units, vesting period (Year) 5 years    
Maximum [Member] | Computer Equipment [Member]      
Property and equipment useful life (Year) 13 years    
Maximum [Member] | Furniture and Fixtures [Member]      
Property and equipment useful life (Year) 14 years    
Customer Relationships [Member] | Minimum [Member]      
Acquired intangible assets estimated useful lives (Year) 2 years    
Customer Relationships [Member] | Maximum [Member]      
Acquired intangible assets estimated useful lives (Year) 20 years    
Existing Technology [member] | Minimum [Member]      
Acquired intangible assets estimated useful lives (Year) 4 years    
Existing Technology [member] | Maximum [Member]      
Acquired intangible assets estimated useful lives (Year) 12 years    
Trade Names [Member] | Minimum [Member]      
Acquired intangible assets estimated useful lives (Year) 3 years    
Trade Names [Member] | Maximum [Member]      
Acquired intangible assets estimated useful lives (Year) 15 years    
Noncompete Agreements [Member] | Minimum [Member]      
Acquired intangible assets estimated useful lives (Year) 2 years    
Noncompete Agreements [Member] | Maximum [Member]      
Acquired intangible assets estimated useful lives (Year) 12 years    
XML 66 R52.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions (Details)
$ in Thousands, € in Millions, $ in Millions
12 Months Ended
Jan. 05, 2023
USD ($)
Jun. 03, 2022
USD ($)
Apr. 21, 2022
USD ($)
Feb. 09, 2022
USD ($)
Jul. 08, 2021
USD ($)
May 07, 2021
USD ($)
May 07, 2021
EUR (€)
Feb. 26, 2021
USD ($)
Nov. 06, 2020
USD ($)
Jun. 10, 2020
USD ($)
Feb. 21, 2020
USD ($)
Jan. 31, 2023
USD ($)
Jan. 31, 2022
USD ($)
Jan. 31, 2021
USD ($)
Nov. 06, 2020
CAD ($)
Acquisition                              
Acquisition purchase price, net of cash acquired                       $ 115,561 $ 90,278 $ 48,403  
Contingent consideration                       30,949 12,990    
Acquisition-related costs                       2,560 1,292 1,694  
Net CHB, LLC                              
Acquisition                              
Acquisition purchase price, net of cash acquired       $ 38,700               38,664      
Maximum potential performance-based contingent consideration       $ 60,000                      
Period for revenue performance targets       2 years                      
Contingent consideration       $ 13,900                      
Gross contractual amount of trade receivables acquired       100                      
Fair value of acquired trade receivables       $ 100                      
Foxtrot                              
Acquisition                              
Acquisition purchase price, net of cash acquired     $ 4,200                 4,228      
Gross contractual amount of trade receivables acquired     700                        
Fair value of acquired trade receivables     $ 700                        
XPS                              
Acquisition                              
Acquisition purchase price, net of cash acquired   $ 61,100                          
Maximum potential performance-based contingent consideration   $ 75,000                          
Period for revenue performance targets   2 years                          
Contingent consideration   $ 9,400                          
Gross contractual amount of trade receivables acquired   1,500                          
Fair value of acquired trade receivables   $ 1,500                          
Supply Vision                              
Acquisition                              
Acquisition purchase price, net of cash acquired $ 12,000                     11,573      
Maximum potential performance-based contingent consideration $ 3,000                            
Period for revenue performance targets 2 years                            
Contingent consideration $ 2,700                            
Gross contractual amount of trade receivables acquired 300                            
Fair value of acquired trade receivables $ 300                            
Fiscal 2023 Acquisitions                              
Acquisition                              
Acquisition-related costs                       1,900      
Amount of revenue recognized                       20,800      
Amount of net income recognized                       $ 6,600      
QuestaWeb                              
Acquisition                              
Acquisition purchase price, net of cash acquired               $ 35,900         35,860    
Gross contractual amount of trade receivables acquired               600              
Fair value of acquired trade receivables               500              
Estimate of contractual cash flows not expected to be collected               $ 100              
Portrix                              
Acquisition                              
Acquisition purchase price, net of cash acquired           $ 25,200 € 20.7           25,188    
Gross contractual amount of trade receivables acquired           700                  
Fair value of acquired trade receivables           $ 700                  
GreenMile                              
Acquisition                              
Acquisition purchase price, net of cash acquired         $ 29,200               $ 29,230    
Maximum potential performance-based contingent consideration         $ 10,000                    
Period for revenue performance targets         2 years                    
Contingent consideration         $ 3,300                    
Gross contractual amount of trade receivables acquired         1,100                    
Fair value of acquired trade receivables         1,000                    
Estimate of contractual cash flows not expected to be collected         $ 100                    
Peoplevox                              
Acquisition                              
Acquisition purchase price, net of cash acquired                     $ 24,100     24,137  
Gross contractual amount of trade receivables acquired                     400        
Fair value of acquired trade receivables                     $ 400        
Kontainers                              
Acquisition                              
Acquisition purchase price, net of cash acquired                   $ 5,200       5,237  
Maximum potential performance-based contingent consideration                   $ 6,000          
Period for revenue performance targets                   2 years          
Contingent consideration                   $ 1,400          
Gross contractual amount of trade receivables acquired                   200          
Fair value of acquired trade receivables                   $ 200          
ShipTrack                              
Acquisition                              
Acquisition purchase price, net of cash acquired                 $ 19,000         $ 19,029  
Maximum potential performance-based contingent consideration                             $ 25.0
Period for revenue performance targets                 2 years            
Contingent consideration                 $ 2,800            
Gross contractual amount of trade receivables acquired                 1,700            
Fair value of acquired trade receivables                 $ 1,700            
XML 67 R53.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)
$ in Thousands, € in Millions
12 Months Ended
Jan. 05, 2023
USD ($)
Apr. 21, 2022
USD ($)
Feb. 09, 2022
USD ($)
Jul. 08, 2021
USD ($)
May 07, 2021
USD ($)
May 07, 2021
EUR (€)
Feb. 26, 2021
USD ($)
Nov. 06, 2020
USD ($)
Jun. 10, 2020
USD ($)
Feb. 21, 2020
USD ($)
Jan. 31, 2023
USD ($)
Jan. 31, 2022
USD ($)
Jan. 31, 2021
USD ($)
Acquisition                          
Cash, less cash acquired                     $ 115,561 $ 90,278 $ 48,403
Consideration payable                         100
Contingent consideration                     26,043 3,339 4,239
Net working capital adjustments payable (receivable)                     958 (345) (65)
Purchase price consideration                     142,562 93,272 52,677
Allocated to:                          
Current assets, excluding cash acquired                     4,456 3,710 2,807
Property and equipment                       167  
Right-of-use assets                       497 151
Other long-term assets                       242  
Current liabilities                     (2,530) (2,539) (2,543)
Deferred revenue                     (2,664) (2,144) (1,054)
Lease obligations                       (497) (151)
Deferred income tax liability                       (5,937) (5,627)
Long-term income taxes payable                       (365)  
Debt                       (1,062) (728)
Net tangible assets (liabilities) assumed                     (738) (7,928) (7,145)
Goodwill                     78,616 49,691 28,970
Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                     22,150 14,514 8,336
Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                     40,440 35,186 21,753
Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                     194 322 107
Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                     1,900 1,487 656
Net CHB, LLC                          
Acquisition                          
Cash, less cash acquired     $ 38,700               38,664    
Contingent consideration                     13,948    
Net working capital adjustments payable (receivable)                     51    
Purchase price consideration                     52,663    
Allocated to:                          
Current assets, excluding cash acquired                     469    
Current liabilities                     (367)    
Net tangible assets (liabilities) assumed                     102    
Goodwill                     26,797    
Net CHB, LLC | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                     10,900    
Net CHB, LLC | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                     14,100    
Net CHB, LLC | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                     64    
Net CHB, LLC | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                     700    
Foxtrot                          
Acquisition                          
Cash, less cash acquired   $ 4,200                 4,228    
Net working capital adjustments payable (receivable)                     66    
Purchase price consideration                     4,294    
Allocated to:                          
Current assets, excluding cash acquired                     835    
Current liabilities                     (22)    
Deferred revenue                     (336)    
Net tangible assets (liabilities) assumed                     477    
Goodwill                     1,527    
Foxtrot | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                     650    
Foxtrot | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                     1,640    
XPS                          
Acquisition                          
Cash, less cash acquired                     61,096    
Contingent consideration                     9,425    
Net working capital adjustments payable (receivable)                     978    
Purchase price consideration                     71,499    
Allocated to:                          
Current assets, excluding cash acquired                     2,449    
Current liabilities                     (1,483)    
Deferred revenue                     (2,196)    
Net tangible assets (liabilities) assumed                     (1,230)    
Goodwill                     43,529    
XPS | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                     8,100    
XPS | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                     20,000    
XPS | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                     100    
XPS | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                     1,000    
Supply Vision                          
Acquisition                          
Cash, less cash acquired $ 12,000                   11,573    
Contingent consideration                     2,670    
Net working capital adjustments payable (receivable)                     (137)    
Purchase price consideration                     14,106    
Allocated to:                          
Current assets, excluding cash acquired                     703    
Current liabilities                     (658)    
Deferred revenue                     (132)    
Net tangible assets (liabilities) assumed                     (87)    
Goodwill                     6,763    
Supply Vision | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                     2,500    
Supply Vision | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                     4,700    
Supply Vision | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                     30    
Supply Vision | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                     $ 200    
QuestaWeb                          
Acquisition                          
Cash, less cash acquired             $ 35,900         35,860  
Net working capital adjustments payable (receivable)                       17  
Purchase price consideration                       35,877  
Allocated to:                          
Current assets, excluding cash acquired                       714  
Property and equipment                       78  
Right-of-use assets                       123  
Current liabilities                       (170)  
Deferred revenue                       (736)  
Lease obligations                       (123)  
Net tangible assets (liabilities) assumed                       (114)  
Goodwill                       21,691  
QuestaWeb | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                       4,800  
QuestaWeb | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                       8,900  
QuestaWeb | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                       100  
QuestaWeb | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                       500  
Portrix                          
Acquisition                          
Cash, less cash acquired         $ 25,200 € 20.7           25,188  
Net working capital adjustments payable (receivable)                       (54)  
Purchase price consideration                       25,134  
Allocated to:                          
Current assets, excluding cash acquired                       810  
Right-of-use assets                       374  
Current liabilities                       (871)  
Deferred revenue                       (499)  
Lease obligations                       (374)  
Deferred income tax liability                       (5,185)  
Debt                       (1,062)  
Net tangible assets (liabilities) assumed                       (6,807)  
Goodwill                       15,032  
Portrix | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                       4,014  
Portrix | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                       12,286  
Portrix | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                       122  
Portrix | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                       487  
GreenMile                          
Acquisition                          
Cash, less cash acquired       $ 29,200               29,230  
Contingent consideration                       3,339  
Net working capital adjustments payable (receivable)                       (308)  
Purchase price consideration                       32,261  
Allocated to:                          
Current assets, excluding cash acquired                       2,186  
Property and equipment                       89  
Other long-term assets                       242  
Current liabilities                       (1,498)  
Deferred revenue                       (909)  
Deferred income tax liability                       (752)  
Long-term income taxes payable                       (365)  
Net tangible assets (liabilities) assumed                       (1,007)  
Goodwill                       12,968  
GreenMile | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                       5,700  
GreenMile | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                       14,000  
GreenMile | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                       100  
GreenMile | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                       $ 500  
Peoplevox                          
Acquisition                          
Cash, less cash acquired                   $ 24,100     24,137
Net working capital adjustments payable (receivable)                         (42)
Purchase price consideration                         24,095
Allocated to:                          
Current assets, excluding cash acquired                         485
Current liabilities                         (776)
Deferred revenue                         (748)
Deferred income tax liability                         (1,615)
Net tangible assets (liabilities) assumed                         (2,654)
Goodwill                         15,182
Peoplevox | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                         3,631
Peoplevox | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                         7,651
Peoplevox | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                         285
Kontainers                          
Acquisition                          
Cash, less cash acquired                 $ 5,200       5,237
Consideration payable                         100
Contingent consideration                         1,414
Net working capital adjustments payable (receivable)                         (87)
Purchase price consideration                         6,664
Allocated to:                          
Current assets, excluding cash acquired                         469
Current liabilities                         (1,074)
Deferred revenue                         (102)
Net tangible assets (liabilities) assumed                         (707)
Goodwill                         3,461
Kontainers | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                         800
Kontainers | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                         3,000
Kontainers | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                         30
Kontainers | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                         80
ShipTrack                          
Acquisition                          
Cash, less cash acquired               $ 19,000         19,029
Contingent consideration                         2,825
Net working capital adjustments payable (receivable)                         64
Purchase price consideration                         21,918
Allocated to:                          
Current assets, excluding cash acquired                         1,853
Right-of-use assets                         151
Current liabilities                         (693)
Deferred revenue                         (204)
Lease obligations                         (151)
Deferred income tax liability                         (4,012)
Debt                         (728)
Net tangible assets (liabilities) assumed                         (3,784)
Goodwill                         10,327
ShipTrack | Customer agreements and relationships                          
Allocated to:                          
Finite-lived intangible assets acquired                         3,905
ShipTrack | Existing technology                          
Allocated to:                          
Finite-lived intangible assets acquired                         11,102
ShipTrack | Trade names                          
Allocated to:                          
Finite-lived intangible assets acquired                         77
ShipTrack | Non-compete covenants                          
Allocated to:                          
Finite-lived intangible assets acquired                         $ 291
XML 68 R54.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Net CHB, LLC      
Acquisition      
Cash acquired $ 658    
Foxtrot      
Acquisition      
Cash acquired 0    
XPS      
Acquisition      
Cash acquired 3,932    
Supply Vision      
Acquisition      
Cash acquired $ 413    
QuestaWeb      
Acquisition      
Cash acquired   $ 2,097  
Portrix      
Acquisition      
Cash acquired   200  
GreenMile      
Acquisition      
Cash acquired   $ 1,552  
Peoplevox      
Acquisition      
Cash acquired     $ 1,634
Kontainers      
Acquisition      
Cash acquired     13
ShipTrack      
Acquisition      
Cash acquired     $ 529
XML 69 R55.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions - Acquired Intangible Assets Useful Lives (Details)
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Customer agreements and relationships | Net CHB, LLC      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 13 years    
Customer agreements and relationships | Foxtrot      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 13 years    
Customer agreements and relationships | XPS      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 11 years    
Customer agreements and relationships | Supply Vision      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 11 years    
Customer agreements and relationships | QuestaWeb      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   13 years  
Customer agreements and relationships | Portrix      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   13 years  
Customer agreements and relationships | GreenMile      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   13 years  
Customer agreements and relationships | Peoplevox      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     10 years
Customer agreements and relationships | Kontainers      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     12 years
Customer agreements and relationships | ShipTrack      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     13 years
Existing technology | Net CHB, LLC      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 6 years    
Existing technology | Foxtrot      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 6 years    
Existing technology | XPS      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 6 years    
Existing technology | Supply Vision      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 6 years    
Existing technology | QuestaWeb      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   6 years  
Existing technology | Portrix      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   6 years  
Existing technology | GreenMile      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   6 years  
Existing technology | Peoplevox      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     6 years
Existing technology | Kontainers      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     5 years
Existing technology | ShipTrack      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     6 years
Trade names | Net CHB, LLC      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 2 years    
Trade names | XPS      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 2 years    
Trade names | Supply Vision      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 9 years    
Trade names | QuestaWeb      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   3 years  
Trade names | Portrix      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   3 years  
Trade names | GreenMile      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   3 years  
Trade names | Kontainers      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     3 years
Trade names | ShipTrack      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     3 years
Non-compete covenants | Net CHB, LLC      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 5 years    
Non-compete covenants | XPS      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 5 years    
Non-compete covenants | Supply Vision      
Acquisition      
Acquired intangible assets estimated useful lives (Year) 5 years    
Non-compete covenants | QuestaWeb      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   5 years  
Non-compete covenants | Portrix      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   2 years  
Non-compete covenants | GreenMile      
Acquisition      
Acquired intangible assets estimated useful lives (Year)   5 years  
Non-compete covenants | Peoplevox      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     5 years
Non-compete covenants | Kontainers      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     5 years
Non-compete covenants | ShipTrack      
Acquisition      
Acquired intangible assets estimated useful lives (Year)     5 years
XML 70 R56.htm IDEA: XBRL DOCUMENT v3.22.4
Acquisitions - Pro Forma Results of Operations (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Acquisitions      
Revenues $ 495,874 $ 461,864 $ 393,322
Net income $ 103,700 $ 91,398 $ 49,315
Earnings per share      
Basic (in dollars per share) $ 1.22 $ 1.08 $ 0.58
Diluted (in dollars per share) $ 1.20 $ 1.06 $ 0.58
XML 71 R57.htm IDEA: XBRL DOCUMENT v3.22.4
Fair Value Measurements (Details)
$ / shares in Units, $ in Millions
12 Months Ended
Jan. 31, 2023
USD ($)
$ / shares
shares
Jan. 31, 2022
USD ($)
Jan. 31, 2021
USD ($)
Fair Value Measurements      
Equity derivatives, number of common shares held (in shares) | shares 281,768    
Derivative, common shares weighted average price (in dollars per share) | $ / shares $ 31.35    
Minimum | Revenue growth rate      
Fair Value Measurements      
Estimated fair value consideration percentage 10    
Minimum | Discount rate      
Fair Value Measurements      
Estimated fair value consideration percentage 10    
Maximum | Revenue growth rate      
Fair Value Measurements      
Estimated fair value consideration percentage 13    
Maximum | Discount rate      
Fair Value Measurements      
Estimated fair value consideration percentage 13    
General and administrative expenses      
Fair Value Measurements      
Expense (recovery) | $ $ (1.3) $ (2.9) $ (3.4)
XML 72 R58.htm IDEA: XBRL DOCUMENT v3.22.4
Fair Value Measurements - Derivative instruments at fair value (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Fair Value Measurements    
Equity derivative contracts $ 11,610 $ 10,863
Contingent consideration 30,949 12,990
Level 2    
Fair Value Measurements    
Equity derivative contracts 11,610 10,863
Level 3    
Fair Value Measurements    
Contingent consideration $ 30,949 $ 12,990
XML 73 R59.htm IDEA: XBRL DOCUMENT v3.22.4
Fair Value Measurements - Changes in fair value measurements (Details) - Level 3 - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Fair value measurements in Level 3 of the fair value inputs    
Balance at the beginning $ 12,990 $ 4,671
Increase from acquisitions 26,043 3,339
Cash payments (10,782)  
Charges through profit or loss 2,804 5,070
Effect of movements in foreign exchange (106) (90)
Balance at the end $ 30,949 $ 12,990
XML 74 R60.htm IDEA: XBRL DOCUMENT v3.22.4
Trade Accounts Receivable (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Trade Accounts Receivable      
Trade accounts receivable $ 46,718 $ 43,565  
Less: Provision for credit losses (1,545) (1,860) $ (2,330)
Total $ 45,173 $ 41,705  
XML 75 R61.htm IDEA: XBRL DOCUMENT v3.22.4
Trade Accounts Receivable - Trade receivables (Details) - USD ($)
$ in Millions
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Trade Accounts Receivable    
Unbilled receivables $ 0.3 $ 0.5
Percentage of account receivable 10.00% 10.00%
XML 76 R62.htm IDEA: XBRL DOCUMENT v3.22.4
Trade Accounts Receivable - Provision for credit losses (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Trade Accounts Receivable    
Balance $ 1,860 $ 2,330
Current period provision for expected losses 1,068 1,007
Write-offs charged against the provision (1,341) (1,456)
Effect of movements in foreign exchange (42) (21)
Balance $ 1,545 $ 1,860
XML 77 R63.htm IDEA: XBRL DOCUMENT v3.22.4
Other Receivables (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Other Receivables    
Net working capital adjustments receivable from acquisitions $ 384 $ 309
Other receivables 11,274 13,766
Total $ 11,658 $ 14,075
XML 78 R64.htm IDEA: XBRL DOCUMENT v3.22.4
Other Receivables - Additional information (Details) - USD ($)
$ in Millions
Jan. 31, 2023
Jan. 31, 2022
Other Receivables    
Capital adjustments receivable from acquisitions is recoverable from amounts held in escrow $ 0.4 $ 0.3
XML 79 R65.htm IDEA: XBRL DOCUMENT v3.22.4
Property and Equipment (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Property and Equipment    
Cost $ 49,207 $ 45,471
Accumulated depreciation 37,773 34,654
Net 11,434 10,817
Computer equipment and software    
Property and Equipment    
Cost 44,304 40,937
Accumulated depreciation 34,275 31,660
Furniture and fixtures    
Property and Equipment    
Cost 1,533 1,553
Accumulated depreciation 1,283 1,257
Leasehold improvements    
Property and Equipment    
Cost 1,076 822
Accumulated depreciation 660 531
Equipment installed with customers    
Property and Equipment    
Cost 1,936 1,635
Accumulated depreciation 1,555 1,206
Assets under construction    
Property and Equipment    
Cost $ 358 $ 524
XML 80 R66.htm IDEA: XBRL DOCUMENT v3.22.4
Intangible Assets (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Intangible Assets    
Intangible assets, cost $ 647,326 $ 599,157
Intangible assets, amortization cost 417,518 369,548
Net 229,808 229,609
Customer agreements and relationships    
Intangible Assets    
Intangible assets, cost 268,712 251,402
Intangible assets, amortization cost 151,016 135,380
Existing technology    
Intangible Assets    
Intangible assets, cost 355,695 326,411
Intangible assets, amortization cost 248,867 218,953
Trade names    
Intangible Assets    
Intangible assets, cost 9,026 9,038
Intangible assets, amortization cost 7,318 6,677
Non-compete covenants    
Intangible Assets    
Intangible assets, cost 13,893 12,306
Intangible assets, amortization cost $ 10,317 $ 8,538
XML 81 R67.htm IDEA: XBRL DOCUMENT v3.22.4
Intangible Assets - Additional information (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Intangible Assets    
Intangible assets, net $ 229,808 $ 229,609
2024 49,400  
2025 46,500  
2026 42,300  
2027 27,700  
2028 20,600  
Thereafter $ 43,300  
XML 82 R68.htm IDEA: XBRL DOCUMENT v3.22.4
Goodwill (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Goodwill    
Balance $ 608,761 $ 565,177
Adjustments on account of foreign exchange (11,730) (6,107)
Balance 675,647 608,761
QuestaWeb    
Goodwill    
Acquisition of goodwill   21,691
Portrix    
Goodwill    
Acquisition of goodwill   15,032
GreenMile    
Goodwill    
Acquisition of goodwill   $ 12,968
Net CHB, LLC    
Goodwill    
Acquisition of goodwill 26,797  
Foxtrot    
Goodwill    
Acquisition of goodwill 1,527  
XPS    
Goodwill    
Acquisition of goodwill 43,529  
Supply Vision    
Goodwill    
Acquisition of goodwill $ 6,763  
XML 83 R69.htm IDEA: XBRL DOCUMENT v3.22.4
Accrued Liabilities (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Accrued Liabilities    
Accrued compensation and benefits $ 35,536 $ 32,169
Accrued contingent acquisition consideration 30,949 12,990
Accrued professional fees 1,619 1,318
Other accrued liabilities 12,205 9,965
Total $ 80,309 $ 56,442
XML 84 R70.htm IDEA: XBRL DOCUMENT v3.22.4
Long-term Debt (Details) - USD ($)
$ in Millions
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Long-Term Debt    
Letters of credit outstanding $ 0.2 $ 0.2
Revolving credit facility | Senior secured credit facility    
Long-Term Debt    
Maturity term (year) 5 years  
Available for use $ 350.0  
Long-term line of credit drawn amount 0.0  
Revolving credit facility | Senior secured credit facility | Maximum    
Long-Term Debt    
Line of credit facility   $ 500.0
Revolving credit facility | Senior secured credit facility | Minimum    
Long-Term Debt    
Line of credit facility $ 350.0  
Senior secured credit facility | Maximum    
Long-Term Debt    
Percentage of undrawn amounts (in percentage) 0.40%  
Senior secured credit facility | Maximum | CDOR    
Long-Term Debt    
Interest rates under the revolving operating portion 2.50%  
Senior secured credit facility | Minimum    
Long-Term Debt    
Percentage of undrawn amounts (in percentage) 0.20%  
Senior secured credit facility | Minimum | CDOR    
Long-Term Debt    
Interest rates under the revolving operating portion 0.00%  
XML 85 R71.htm IDEA: XBRL DOCUMENT v3.22.4
Leases (Details)
Jan. 31, 2023
Leases  
Operating lease remaining lease term (year) 6 years
Operating lease renewal term (year) 5 years
XML 86 R72.htm IDEA: XBRL DOCUMENT v3.22.4
Leases - Components of operating lease expense (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Leases      
Operating lease cost $ 4,182 $ 4,466 $ 4,590
Short-term lease cost 636 432 502
Total operating lease cost 4,818 4,898 5,092
Operating cash outflows from operating leases included in measurement of lease liabilities 4,240 4,857 4,831
New ROU assets obtained in exchange for lease obligations $ 864 $ 2,548 $ 2,337
Weighted average remaining lease term (years) 2 years 7 months 6 days 3 years 3 months 18 days  
Weighted average discount rate (%) 2.40% 2.10%  
XML 87 R73.htm IDEA: XBRL DOCUMENT v3.22.4
Leases - Maturities of operating lease liabilities (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Leases    
2024 $ 3,569  
2025 2,498  
2026 994  
2027 347  
2028 120  
2029 and thereafter 59  
Total lease payments 7,587  
Less: imputed interest (267)  
Total lease obligations 7,320  
Current 3,397 $ 4,029
Long-term $ 3,923 $ 7,382
XML 88 R74.htm IDEA: XBRL DOCUMENT v3.22.4
Commitments, Contingencies and Guarantees (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Commitments, Contingencies and Guarantees    
Unrecognized aggregate liability for the unvested DSUs $ 0  
Unrecognized aggregate liability for the unvested CRSUs $ 700  
Equity derivatives, number of common shares held (in shares) 281,768  
DSU liability, number of common shares (in shares) 283,338  
Contingent consideration $ 30,949 $ 12,990
GreenMile, NetCHB, XPS and Supply Vision    
Commitments, Contingencies and Guarantees    
Maximum potential performance-based contingent consideration $ 148,000  
Period for revenue performance targets 2 years  
Contingent consideration $ 30,900  
XML 89 R75.htm IDEA: XBRL DOCUMENT v3.22.4
Share Capital (Details) - USD ($)
$ in Millions
12 Months Ended
Jul. 15, 2022
Jun. 07, 2022
Jul. 16, 2020
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Share Capital            
Proceeds from Stock Options Exercised       $ 1.7 $ 2.7 $ 6.2
2022 Base Shelf Prospectus            
Share Capital            
Shelf Prospectus Period (Month) 25 months          
Stock issued during period, shares, new issues (in shares) 0          
2020 Base Shelf Prospectus            
Share Capital            
Stock issued during period, shares, new issues (in shares)     0      
NCIB            
Share Capital            
Stock issued during period, shares, new issues (in shares)   0        
Number of shares to be purchased for cancellation   7,400,000        
Maximum percentage of shares to be repurchased for cancellation   10.00%        
XML 90 R76.htm IDEA: XBRL DOCUMENT v3.22.4
Share Capital - Common Shares Outstanding (Details) - shares
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Balance, beginning of year (in shares) 84,756,210 84,494,000 84,156,000
Stock options and share units exercised (in shares) 64,000 262,000 338,000
Balance, end of year (in shares) 84,820,100 84,756,210 84,494,000
XML 91 R77.htm IDEA: XBRL DOCUMENT v3.22.4
Earnings Per Share (Details) - shares
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Stock options      
Earnings Per Share      
Antidilutive securities excluded from computation of earnings per share, amount (in shares) 1,315 1,000 71,161
Treasury stock method      
Earnings Per Share      
Antidilutive securities excluded from computation of earnings per share, amount (in shares) 589,658 267,236 1,750
PSU and RSU      
Earnings Per Share      
Antidilutive securities excluded from computation of earnings per share, amount (in shares) 0 0 43,002
XML 92 R78.htm IDEA: XBRL DOCUMENT v3.22.4
Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]      
Net income $ 102,236 $ 86,282 $ 52,100
Weighted average shares outstanding (in shares) 84,791 84,591 84,360
Weighted average common and common equivalent shares outstanding (in shares) 86,451 86,200 85,756
Earning Per Share (Basic) $ 1.21 $ 1.02 $ 0.62
Earning Per Share (Diluted) $ 1.18 $ 1.00 $ 0.61
Share-based Payment Arrangement, Option [Member]      
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]      
Dilutive effect of employee stock options (in shares) 455 482 358
Restricted Stock Units (RSUs) [Member]      
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]      
Dilutive effect of employee stock options (in shares) 1,205 1,127 1,038
XML 93 R79.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Additional information (Details) - USD ($)
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost $ 800,000 $ 700,000  
Tax benefit realized in connection with stock options exercised $ 100,000 $ 100,000 $ 100,000
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares) 1,593,433 1,319,279 1,147,720
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares) 356,014 271,025 381,859
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) $ 18.47 $ 16.77 $ 10.19
Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value $ 2,500,000 $ 3,700,000 $ 10,800,000
Share-based Payment Arrangement, Option [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total $ 7,700,000    
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) 2 years 7 months 6 days    
Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value $ 4,200,000    
Performance Shares [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total $ 6,600,000    
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) 1 year    
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value $ 5,200,000    
Restricted Stock Units (RSUs) [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total $ 3,500,000    
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) 1 year 8 months 12 days    
Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value $ 3,300,000    
Shareholder-Approved Stock Options Plan [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares) 2,703,675    
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total $ 1,593,433    
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares) 356,014 271,025  
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) $ 18.47 $ 16.77  
Deferred Share Unit Plan [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total $ 0 $ 0  
Deferred Share Units Outstanding Number (in shares) 283,338 252,011  
Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent $ 20,600,000 $ 18,300,000  
Deferred Share Units Grants In Period (in shares) 31,327    
Deferred Share Units Redeemed and Settled in Cash (in shares) 0    
Deferred Share Units Compensation Expense $ 3,200,000 4,500,000 4,600,000
Cash-Settled Restricted Share Unit [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total 700,000 1,000,000.0  
Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent 400,000 800,000  
Cash Settled Restricted Share Units Compensation Expense $ 800,000 $ 1,300,000 $ 1,100,000
XML 94 R80.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Effect on net income $ 13,667 $ 11,017 $ 6,313
Cost of revenues      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Effect on net income 940 732 319
Sales and marketing      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Effect on net income 2,468 3,060 896
Research and development      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Effect on net income 1,788 1,419 404
General and administrative      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Effect on net income $ 8,471 $ 5,806 $ 4,694
XML 95 R81.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Stock-Based Compensation Plans      
Expected volatility (%) 29.20% 27.80% 26.40%
Risk-free rate (%) 2.40% 0.70% 0.70%
Expected option life (years) (Year) 5 years 5 years 5 years
XML 96 R82.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Summary of Option Activity (Details) - USD ($)
$ / shares in Units, $ in Millions
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Stock-Based Compensation Plans      
Weighted-Average Exercise Price (in dollars per share), Beginning $ 42.35 $ 33.77  
Number of Stock Options Outstanding (in shares), Beginning 1,319,279 1,147,720  
Weighted-Average Remaining Contractual Life (Year) 4 years 1 month 6 days 4 years 4 months 24 days 4 years 10 months 24 days
Aggregate Intrinsic Value $ 45.7 $ 41.5 $ 28.1
Granted, shares (in shares) 356,014 271,025 381,859
Granted, weighted-average exercise price (in dollars per share) $ 61.09 $ 65.03  
Exercised, shares (in shares) (63,890) (90,166)  
Exercised, weighted-average exercise price (in dollars per share) $ 27.34 $ 29.38  
Forfeited, shares (in shares) (17,970) (9,300)  
Forfeited, weighted-average exercise price (in dollars per share) $ 52.98 $ 53.94  
Number of Stock Options Outstanding (in shares), Ending 1,593,433 1,319,279 1,147,720
Weighted-Average Exercise Price (in dollars per share), Ending $ 45.54 $ 42.35 $ 33.77
Vested or expected to vest, shares (in shares) 1,593,433    
Vested or expected to vest, weighted-average exercise price (in dollars per share) $ 45.54    
Vested or expected to vest, weighted-average remaining contractual life (Year) 4 years 1 month 6 days    
Vested or expected to vest, aggregate intrinsic value $ 45.7    
Exercisable, shares (in shares) 1,104,612    
Exercisable, weighted-average exercise price (in dollars per share) $ 40.35    
Exercisable, weighted-average remaining contractual life (Year) 3 years 6 months    
Exercisable, aggregate intrinsic value $ 37.4    
XML 97 R83.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)
12 Months Ended
Jan. 31, 2023
$ / shares
shares
Weighted Average Exercise Price, Options Outstanding (in dollars per share) $ 45.54
Number of Stock Options, Options Outstanding (in shares) | shares 1,593,433
Weighted Average Remaining Contractual Life, Options Outstanding (Year) 4 years 1 month 6 days
Weighted Average Exercise Price, Options Exercisable (in dollars per share) $ 40.35
Number of Stock Options, Options Exercisable (in shares) | shares 1,104,612
Range 1 [Member]  
Range of Exercise Prices, Lower Limit (in dollars per share) $ 18.95
Range of Exercise Prices, Upper Limit (in dollars per share) 22.86
Weighted Average Exercise Price, Options Outstanding (in dollars per share) $ 21.75
Number of Stock Options, Options Outstanding (in shares) | shares 148,153
Weighted Average Remaining Contractual Life, Options Outstanding (Year) 10 months 24 days
Weighted Average Exercise Price, Options Exercisable (in dollars per share) $ 21.75
Number of Stock Options, Options Exercisable (in shares) | shares 148,153
Range 2 [Member]  
Range of Exercise Prices, Lower Limit (in dollars per share) $ 26.24
Range of Exercise Prices, Upper Limit (in dollars per share) 27.85
Weighted Average Exercise Price, Options Outstanding (in dollars per share) $ 27.85
Number of Stock Options, Options Outstanding (in shares) | shares 166,350
Weighted Average Remaining Contractual Life, Options Outstanding (Year) 2 years 2 months 12 days
Weighted Average Exercise Price, Options Exercisable (in dollars per share) $ 27.85
Number of Stock Options, Options Exercisable (in shares) | shares 166,350
Range 3 [Member]  
Range of Exercise Prices, Lower Limit (in dollars per share) $ 38.53
Range of Exercise Prices, Upper Limit (in dollars per share) 54.25
Weighted Average Exercise Price, Options Outstanding (in dollars per share) $ 39.53
Number of Stock Options, Options Outstanding (in shares) | shares 625,310
Weighted Average Remaining Contractual Life, Options Outstanding (Year) 3 years 8 months 12 days
Weighted Average Exercise Price, Options Exercisable (in dollars per share) $ 39.12
Number of Stock Options, Options Exercisable (in shares) | shares 525,872
Range 4 [Member]  
Range of Exercise Prices, Lower Limit (in dollars per share) $ 56.31
Range of Exercise Prices, Upper Limit (in dollars per share) 68.49
Weighted Average Exercise Price, Options Outstanding (in dollars per share) $ 61.19
Number of Stock Options, Options Outstanding (in shares) | shares 653,620
Weighted Average Remaining Contractual Life, Options Outstanding (Year) 5 years 8 months 12 days
Weighted Average Exercise Price, Options Exercisable (in dollars per share) $ 61.11
Number of Stock Options, Options Exercisable (in shares) | shares 264,237
XML 98 R84.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Summary of Nonvested Share (Details) - $ / shares
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares) 356,014 271,025 381,859
Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share) $ 18.47 $ 16.77 $ 10.19
Shareholder-Approved Stock Options Plan [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Stock Options Outstanding (in shares), Beginning 462,853 501,655  
Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Beginning $ 13.16 $ 9.52  
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares) 356,014 271,025  
Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share) $ 18.47 $ 16.77  
Vested (in shares) (313,186) (300,527)  
Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share) $ 13.72 $ 11.42  
Forfeited (in shares) (16,860) (9,300)  
Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share) $ 3.71 $ 13.54  
Stock Options Outstanding (in shares), Ending 488,821 462,853 501,655
Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Ending $ 16.11 $ 13.16 $ 9.52
XML 99 R85.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details) - USD ($)
$ / shares in Units, $ in Millions
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Vested or expected to vest, shares (in shares) 1,593,433    
Vested or expected to vest, weighted-average exercise price (in dollars per share) $ 45.54    
Vested or expected to vest, weighted-average remaining contractual life (Year) 4 years 1 month 6 days    
Vested or expected to vest, aggregate intrinsic value $ 45.7    
Performance Shares [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Number of Units Outstanding (in shares), Beginning 777,538 755,873  
Weighted-Average Grant Date Fair Value, PSU (in dollars per share), Beginning $ 35.76 $ 25.17  
Weighted-Average Remaining Contractual, PSU (Year) 4 years 6 months 4 years 9 months 18 days 4 years 8 months 12 days
Aggregate Intrinsic Value, PSU $ 67.9 $ 57.4 $ 44.0
Number of PSUs Granted (in shares) 97,991 77,441  
PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share) $ 64.98 $ 88.11  
Performance units issued (in shares) 39,704 44,296  
Performance units issued, weighted-average granted date fair value (in dollars per share) $ 54.34 $ 36.63  
Exercised (in shares)   (100,072)  
Exercised (in dollars per share)   $ 9.66  
Number of Units Outstanding (in shares), Ending 915,233 777,538 755,873
Weighted-Average Grant Date Fair Value, PSU (in dollars per share), Ending $ 38.41 $ 35.76 $ 25.17
Vested or expected to vest, shares (in shares) 915,233    
Vested or expected to vest, weighted-average exercise price (in dollars per share) $ 38.41    
Vested or expected to vest, weighted-average remaining contractual life (Year) 4 years 6 months    
Vested or expected to vest, aggregate intrinsic value $ 67.9    
Exercisable, number of units (in shares) 654,467    
Exercisable, PSU weighted-average granted date fair value (in dollars per share) $ 26.77    
Exercisable, Weighted-Average Remaining Contractual, PSU (Year) 3 years 1 month 6 days    
Exercisable, Aggregate Intrinsic Value, PSU $ 48.6    
XML 100 R86.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details) - USD ($)
$ / shares in Units, $ in Millions
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Vested or expected to vest, weighted-average exercise price (in dollars per share) $ 45.54    
Vested or expected to vest, weighted-average remaining contractual life (Year) 4 years 1 month 6 days    
Vested or expected to vest, aggregate intrinsic value $ 45.7    
Restricted Stock Units (RSUs) [Member]      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]      
Number of Units Outstanding (in shares), Beginning 410,980 432,195  
Weighted-Average Grant Date Fair Value, PSU (in dollars per share), Beginning $ 29.17 $ 19.98  
Weighted-Average Remaining Contractual, PSU (Year) 4 years 8 months 12 days 5 years 4 years 8 months 12 days
Aggregate Intrinsic Value, PSU $ 35.2 $ 30.3 $ 25.2
Number of PSUs Granted (in shares) 63,651 50,099  
PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share) $ 61.53 $ 65.33  
Exercised (in shares)   (71,314)  
Exercised (in dollars per share)   $ 7.14  
Number of Units Outstanding (in shares), Ending 474,631 410,980 432,195
Weighted-Average Grant Date Fair Value, PSU (in dollars per share), Ending $ 32.44 $ 29.17 $ 19.98
Vested or expected to vest, RSU (in shares) 474,631    
Vested or expected to vest, weighted-average exercise price (in dollars per share) $ 32.44    
Vested or expected to vest, weighted-average remaining contractual life (Year) 4 years 8 months 12 days    
Vested or expected to vest, aggregate intrinsic value $ 35.2    
Exercisable, number of units (in shares) 415,496    
Exercisable, PSU weighted-average granted date fair value (in dollars per share) $ 28.26    
Exercisable, Weighted-Average Remaining Contractual, PSU (Year) 4 years 1 month 6 days    
Exercisable, Aggregate Intrinsic Value, PSU $ 30.8    
XML 101 R87.htm IDEA: XBRL DOCUMENT v3.22.4
Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details) - shares
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Stock-Based Compensation Plans      
Number of Units Outstanding, CRSU (in shares),Beginning 24,428 38,628  
Weighted-Average Remaining Contractual Life, CRSU (Year) 1 year 4 months 24 days 1 year 4 months 24 days 1 year 6 months
Number of Units Granted, CRSU (in shares) 7,948 12,776  
Number of Units Vested and settled in cash, CRSU (in shares) (17,719) (26,755)  
Number of Units Forfeited, CRSU (in shares) (74) (221)  
Number of Units Outstanding, CRSU (in shares), Ending 14,583 24,428 38,628
Non-vested, CRSU (in shares) 14,583    
Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year) 1 year 4 months 24 days    
XML 102 R88.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Income Taxes      
Income before income taxes $ 133,728 $ 102,610 $ 70,369
Canada      
Income Taxes      
Income before income taxes 49,158 36,312 31,307
United States      
Income Taxes      
Income before income taxes 51,268 32,338 26,072
Other countries      
Income Taxes      
Income before income taxes $ 33,302 $ 33,960 $ 12,990
XML 103 R89.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Income Taxes      
Current income tax expense $ 28,248 $ 14,814 $ 3,746
Deferred tax expense 3,244 1,514 14,523
Income tax expense 31,492 16,328 18,269
Canada      
Income Taxes      
Current income tax expense 9,673 1,817 1,875
Deferred tax expense 5,059 8,381 7,047
United States      
Income Taxes      
Current income tax expense 13,085 8,689 (3,050)
Deferred tax expense (1,888) 1,941 9,537
Other countries      
Income Taxes      
Current income tax expense 5,490 4,308 4,921
Deferred tax expense $ 73 $ (8,808) $ (2,061)
XML 104 R90.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Income Taxes    
Accrued liabilities not currently deductible $ 5,506 $ 5,408
Accumulated net operating losses 7,577 10,594
Corporate minimum taxes   2,346
Difference between tax and accounting basis of property and equipment 7,400 12,021
Research and development expenditures and tax credits 3,339 1,172
Total deferred income tax assets 23,822 31,541
Difference between tax and accounting basis of property and equipment (42,958) (47,255)
Temporary difference on equity derivative (3,077) (2,886)
Total deferred income tax liabilities (46,035) (50,141)
Net deferred income taxes (22,213) (18,600)
Valuation allowance (1,704) (1,961)
Net deferred income taxes, net of valuation allowance $ (23,917) $ (20,561)
XML 105 R91.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Income Tax Disclosure [Line Items]      
Income before income taxes $ 133,728 $ 102,610 $ 70,369
Combined basic Canadian statutory rates 26.50% 26.50% 26.50%
Income tax expense based on the above rates $ 35,438 $ 27,192 $ 18,648
Permanent differences including amortization of intangible assets 590 3,467 875
Effect of differences between Canadian and foreign tax rates (1,859) (1,855) (600)
Effect of rate changes on current year timing differences (219) (1,085) (1,063)
Adjustments relating to previous periods (972) (569) (1,034)
Increase (decrease) in accruals for uncertain tax positions (1,181) (849) 1,289
Valuation allowance (155) (9,102) 254
Stock based compensation     100
Other, including foreign exchange (150) (871) (200)
Income tax expense $ 31,492 $ 16,328 $ 18,269
XML 106 R92.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)
$ in Thousands
Jan. 31, 2023
USD ($)
Income Taxes  
Income tax loss carryforwards $ 30,122
2024  
Income Taxes  
Income tax loss carryforwards 175
2025  
Income Taxes  
Income tax loss carryforwards 63
2027  
Income Taxes  
Income tax loss carryforwards 762
2028  
Income Taxes  
Income tax loss carryforwards 223
Thereafter  
Income Taxes  
Income tax loss carryforwards 28,899
Canada | Foreign tax authority  
Income Taxes  
Income tax loss carryforwards 8,128
Canada | Foreign tax authority | Thereafter  
Income Taxes  
Income tax loss carryforwards 8,128
United States | Domestic tax authority  
Income Taxes  
Income tax loss carryforwards 1,299
United States | Domestic tax authority | 2027  
Income Taxes  
Income tax loss carryforwards 279
United States | Domestic tax authority | 2028  
Income Taxes  
Income tax loss carryforwards 138
United States | Domestic tax authority | Thereafter  
Income Taxes  
Income tax loss carryforwards 882
EMEA | Foreign tax authority  
Income Taxes  
Income tax loss carryforwards 19,538
EMEA | Foreign tax authority | 2027  
Income Taxes  
Income tax loss carryforwards 34
EMEA | Foreign tax authority | Thereafter  
Income Taxes  
Income tax loss carryforwards 19,504
Asia Pacific | Foreign tax authority  
Income Taxes  
Income tax loss carryforwards 1,157
Asia Pacific | Foreign tax authority | 2024  
Income Taxes  
Income tax loss carryforwards 175
Asia Pacific | Foreign tax authority | 2025  
Income Taxes  
Income tax loss carryforwards 63
Asia Pacific | Foreign tax authority | 2027  
Income Taxes  
Income tax loss carryforwards 449
Asia Pacific | Foreign tax authority | 2028  
Income Taxes  
Income tax loss carryforwards 85
Asia Pacific | Foreign tax authority | Thereafter  
Income Taxes  
Income tax loss carryforwards $ 385
XML 107 R93.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Income Taxes    
Liability, beginning of year $ 7,354 $ 8,393
Gross increases - current period 640 333
Lapsing due to statutes of limitations (1,874) (1,372)
Liability, end of year $ 6,120 $ 7,354
XML 108 R94.htm IDEA: XBRL DOCUMENT v3.22.4
Income Taxes - Additional information (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Income Taxes      
Percentage of income before income taxes 24.00% 16.00% 26.00%
Percentage of current income tax expense 21.00% 14.00% 5.00%
Undistributed Earnings of Foreign Subsidiaries $ 755,000    
Liability for Uncertainty in Income Taxes, Noncurrent 6,120 $ 7,354 $ 8,393
Unrecognized tax benefits that would impact effective tax rate 6,100    
Significant change in unrecognized tax benefits is reasonably possible, amount of unrecorded benefit $ 1,900    
XML 109 R95.htm IDEA: XBRL DOCUMENT v3.22.4
Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Contract Balances, Performance Obligations and Contract Costs    
Beginning balance $ 58,700 $ 51,291
Recognition of previously deferred revenue (48,253) (38,065)
Deferral of revenue 57,605 45,234
Increases from business combinations, net 2,188 729
Effect of movements in foreign exchange (841) (489)
Ending balance 69,399 58,700
Current 67,784 56,780
Long-term 1,615  
Beginning balance 1,443 1,353
Transfers to trade receivables from contract assets (824) (730)
Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables 2,618 815
Effect of movements in foreign exchange (15) 5
Ending balance $ 3,222 $ 1,443
XML 110 R96.htm IDEA: XBRL DOCUMENT v3.22.4
Contract Balances, Performance Obligations and Contract Costs (Details)
$ in Millions
Jan. 31, 2023
USD ($)
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]  
Remaining performance obligation, Amount $ 343.8
Remaining performance obligation, Percentage 80.00%
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-31  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]  
Remaining performance obligation, Period (Month) 24 months
XML 111 R97.htm IDEA: XBRL DOCUMENT v3.22.4
Contract Balances, Performance Obligations and Contract Costs (Details) - USD ($)
$ in Millions
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Contract Balances, Performance Obligations and Contract Costs      
Capitalized contract cost, net, Total $ 18.4 $ 16.6  
Capitalized contract cost, amortization $ 5.8 $ 4.7 $ 3.3
XML 112 R98.htm IDEA: XBRL DOCUMENT v3.22.4
Other Charges - Components of Other Charges (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Other Charges.      
Acquisition-related costs $ 2,560 $ 1,292 $ 1,694
Contingent consideration accretion and adjustments 2,804 5,070 (1,659)
Restructuring plans 77 66 2,300
Other non-operating expense, Total $ 5,441 $ 6,428 $ 2,335
XML 113 R99.htm IDEA: XBRL DOCUMENT v3.22.4
Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Supplemental Cash Flow Information      
Trade accounts receivable $ 151 $ (2,884) $ 143
Other accounts receivable 2,589 2,042 (7,098)
Prepaid expenses and other (5,663) (8,276) (5,029)
Inventory 103 (498) 99
Accounts payable (620) 2,336 (686)
Accrued liabilities 2,433 13,760 (999)
Income taxes payable 753 426 3,835
Operating leases (95) (259) 283
Deferred revenue 8,142 6,142 5,877
Increase (Decrease) in Operating Capital, Total $ 7,793 $ 12,789 $ (3,575)
XML 114 R100.htm IDEA: XBRL DOCUMENT v3.22.4
Segmented Information - Segmented Revenue by Geographical Location of Customer (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Segmented Information      
Geographical revenue $ 486,014 $ 424,690 $ 348,664
United States      
Segmented Information      
Geographical revenue 307,102 242,086 211,232
Europe, Middle-East and Africa      
Segmented Information      
Geographical revenue 126,942 128,990 94,163
Canada      
Segmented Information      
Geographical revenue 34,547 36,116 29,388
Asia Pacific      
Segmented Information      
Geographical revenue $ 17,423 $ 17,498 $ 13,881
XML 115 R101.htm IDEA: XBRL DOCUMENT v3.22.4
Segmented Information - Segmented Revenue by Revenue Type (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Segment Reporting Information [Line Items]      
REVENUES $ 486,014 $ 424,690 $ 348,664
License      
Segment Reporting Information [Line Items]      
REVENUES 8,385 5,060 5,054
Service      
Segment Reporting Information [Line Items]      
REVENUES 435,734 378,494 309,731
Professional services and other      
Segment Reporting Information [Line Items]      
REVENUES $ 41,895 $ 41,136 $ 33,879
XML 116 R102.htm IDEA: XBRL DOCUMENT v3.22.4
Segmented Information - Long-lived Assets by Geographical Location (Details) - USD ($)
$ in Thousands
Jan. 31, 2023
Jan. 31, 2022
Segmented Information    
Geographical long-lived assets $ 241,242 $ 240,426
United States    
Segmented Information    
Geographical long-lived assets 138,007 102,649
Europe, Middle-East and Africa    
Segmented Information    
Geographical long-lived assets 32,921 43,922
Canada    
Segmented Information    
Geographical long-lived assets 63,414 84,943
Asia Pacific    
Segmented Information    
Geographical long-lived assets $ 6,900 $ 8,912
XML 117 R103.htm IDEA: XBRL DOCUMENT v3.22.4
Segmented Information - Additional information (Details)
12 Months Ended
Jan. 31, 2023
segment
Segmented Information.  
Number of reportable segments 1
XML 118 R104.htm IDEA: XBRL DOCUMENT v3.22.4
Subsequent Event (Details) - USD ($)
$ in Thousands
12 Months Ended
Feb. 14, 2023
Jan. 31, 2023
Jan. 31, 2022
Jan. 31, 2021
Acquisition purchase price, net of cash acquired   $ 115,561 $ 90,278 $ 48,403
Subsequent Event | GroundCloud        
Acquisition purchase price, net of cash acquired $ 138,000      
Maximum potential performance-based contingent consideration $ 80,000      
XML 119 dsgx-20230131x6k_htm.xml IDEA: XBRL DOCUMENT 0001050140 2022-02-01 2023-01-31 0001050140 dsgx:NcibMember 2022-06-07 0001050140 us-gaap:CommonStockMember 2022-02-01 2023-01-31 0001050140 us-gaap:CommonStockMember 2021-02-01 2022-01-31 0001050140 us-gaap:CommonStockMember 2020-02-01 2021-01-31 0001050140 dsgx:The2020BaseShelfProspectusMember 2020-07-16 2020-07-16 0001050140 us-gaap:RetainedEarningsMember 2023-01-31 0001050140 us-gaap:CommonStockMember 2023-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2023-01-31 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-31 0001050140 us-gaap:RetainedEarningsMember 2022-01-31 0001050140 us-gaap:CommonStockMember 2022-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2022-01-31 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-01-31 0001050140 us-gaap:RetainedEarningsMember 2021-01-31 0001050140 us-gaap:CommonStockMember 2021-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2021-01-31 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-31 0001050140 us-gaap:RetainedEarningsMember 2020-01-31 0001050140 us-gaap:CommonStockMember 2020-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2020-01-31 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-01-31 0001050140 dsgx:Range4Member 2022-02-01 2023-01-31 0001050140 dsgx:Range3Member 2022-02-01 2023-01-31 0001050140 dsgx:Range2Member 2022-02-01 2023-01-31 0001050140 dsgx:Range1Member 2022-02-01 2023-01-31 0001050140 dsgx:Range4Member 2023-01-31 0001050140 dsgx:Range3Member 2023-01-31 0001050140 dsgx:Range2Member 2023-01-31 0001050140 dsgx:Range1Member 2023-01-31 0001050140 dsgx:ShareholderApprovedStockOptionsPlanMember 2022-01-31 0001050140 dsgx:ShareholderApprovedStockOptionsPlanMember 2021-01-31 0001050140 dsgx:ShareholderApprovedStockOptionsPlanMember 2022-02-01 2023-01-31 0001050140 dsgx:ShareholderApprovedStockOptionsPlanMember 2021-02-01 2022-01-31 0001050140 us-gaap:PerformanceSharesMember 2020-02-01 2021-01-31 0001050140 us-gaap:RestrictedStockUnitsRSUMember 2022-01-31 0001050140 us-gaap:PerformanceSharesMember 2022-01-31 0001050140 us-gaap:RestrictedStockUnitsRSUMember 2021-01-31 0001050140 us-gaap:PerformanceSharesMember 2021-01-31 0001050140 srt:MinimumMember dsgx:DirectorsAndOfficersMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember dsgx:DirectorsAndOfficersMember 2022-02-01 2023-01-31 0001050140 2025-01-31 2023-01-31 0001050140 us-gaap:ServiceMember 2022-02-01 2023-01-31 0001050140 us-gaap:LicenseMember 2022-02-01 2023-01-31 0001050140 us-gaap:EMEAMember 2022-02-01 2023-01-31 0001050140 srt:AsiaPacificMember 2022-02-01 2023-01-31 0001050140 dsgx:ProfessionalServicesAndOtherMember 2022-02-01 2023-01-31 0001050140 country:US 2022-02-01 2023-01-31 0001050140 country:CA 2022-02-01 2023-01-31 0001050140 us-gaap:ServiceMember 2021-02-01 2022-01-31 0001050140 us-gaap:LicenseMember 2021-02-01 2022-01-31 0001050140 us-gaap:EMEAMember 2021-02-01 2022-01-31 0001050140 srt:AsiaPacificMember 2021-02-01 2022-01-31 0001050140 dsgx:ProfessionalServicesAndOtherMember 2021-02-01 2022-01-31 0001050140 country:US 2021-02-01 2022-01-31 0001050140 country:CA 2021-02-01 2022-01-31 0001050140 us-gaap:ServiceMember 2020-02-01 2021-01-31 0001050140 us-gaap:LicenseMember 2020-02-01 2021-01-31 0001050140 us-gaap:EMEAMember 2020-02-01 2021-01-31 0001050140 srt:AsiaPacificMember 2020-02-01 2021-01-31 0001050140 dsgx:ProfessionalServicesAndOtherMember 2020-02-01 2021-01-31 0001050140 country:US 2020-02-01 2021-01-31 0001050140 country:CA 2020-02-01 2021-01-31 0001050140 srt:MinimumMember us-gaap:FurnitureAndFixturesMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember us-gaap:ComputerEquipmentMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember us-gaap:FurnitureAndFixturesMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember us-gaap:ComputerEquipmentMember 2022-02-01 2023-01-31 0001050140 us-gaap:EquipmentMember 2022-02-01 2023-01-31 0001050140 us-gaap:AssetUnderConstructionMember 2023-01-31 0001050140 us-gaap:AssetUnderConstructionMember 2022-01-31 0001050140 dsgx:WindigoLogisticsMember us-gaap:SubsequentEventMember 2023-02-14 2023-02-14 0001050140 dsgx:FoxtrotMember 2022-04-21 2022-04-21 0001050140 dsgx:PortrixMember 2021-05-07 2021-05-07 0001050140 dsgx:QuestawebMember 2021-02-26 2021-02-26 0001050140 dsgx:PeoplevoxMember 2020-02-21 2020-02-21 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-02-01 2023-01-31 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-02-01 2022-01-31 0001050140 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-02-01 2021-01-31 0001050140 us-gaap:ForeignCountryMember us-gaap:CanadaRevenueAgencyMember dsgx:AfterTaxYear2026Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:EmeaIncomeTaxAuthorityMember dsgx:TaxYear2027Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:EmeaIncomeTaxAuthorityMember dsgx:AfterTaxYear2026Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:AsiaPacificIncomeTaxAuthorityMember dsgx:TaxYear2028Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:AsiaPacificIncomeTaxAuthorityMember dsgx:TaxYear2027Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:AsiaPacificIncomeTaxAuthorityMember dsgx:TaxYear2025Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:AsiaPacificIncomeTaxAuthorityMember dsgx:TaxYear2024Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:AsiaPacificIncomeTaxAuthorityMember dsgx:AfterTaxYear2026Member 2023-01-31 0001050140 us-gaap:DomesticCountryMember us-gaap:InternalRevenueServiceIRSMember dsgx:TaxYear2028Member 2023-01-31 0001050140 us-gaap:DomesticCountryMember us-gaap:InternalRevenueServiceIRSMember dsgx:TaxYear2027Member 2023-01-31 0001050140 us-gaap:DomesticCountryMember us-gaap:InternalRevenueServiceIRSMember dsgx:AfterTaxYear2026Member 2023-01-31 0001050140 us-gaap:ForeignCountryMember us-gaap:CanadaRevenueAgencyMember 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:EmeaIncomeTaxAuthorityMember 2023-01-31 0001050140 us-gaap:ForeignCountryMember dsgx:AsiaPacificIncomeTaxAuthorityMember 2023-01-31 0001050140 us-gaap:DomesticCountryMember us-gaap:InternalRevenueServiceIRSMember 2023-01-31 0001050140 dsgx:TaxYear2028Member 2023-01-31 0001050140 dsgx:TaxYear2027Member 2023-01-31 0001050140 dsgx:TaxYear2025Member 2023-01-31 0001050140 dsgx:TaxYear2024Member 2023-01-31 0001050140 dsgx:AfterTaxYear2026Member 2023-01-31 0001050140 us-gaap:EMEAMember 2023-01-31 0001050140 srt:AsiaPacificMember 2023-01-31 0001050140 country:US 2023-01-31 0001050140 country:CA 2023-01-31 0001050140 us-gaap:EMEAMember 2022-01-31 0001050140 srt:AsiaPacificMember 2022-01-31 0001050140 country:US 2022-01-31 0001050140 country:CA 2022-01-31 0001050140 us-gaap:RetainedEarningsMember 2022-02-01 2023-01-31 0001050140 us-gaap:RetainedEarningsMember 2021-02-01 2022-01-31 0001050140 us-gaap:RetainedEarningsMember 2020-02-01 2021-01-31 0001050140 srt:MinimumMember dsgx:SeniorSecuredCreditFacilityMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember dsgx:SeniorSecuredCreditFacilityMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember dsgx:RevolvingOperatingCreditFacilityMember dsgx:SeniorSecuredCreditFacilityMember 2023-01-31 0001050140 srt:MaximumMember dsgx:RevolvingOperatingCreditFacilityMember dsgx:SeniorSecuredCreditFacilityMember 2022-01-31 0001050140 dsgx:RevolvingOperatingCreditFacilityMember dsgx:SeniorSecuredCreditFacilityMember 2023-01-31 0001050140 us-gaap:RestrictedStockUnitsRSUMember 2021-02-01 2022-01-31 0001050140 us-gaap:EmployeeStockOptionMember 2021-02-01 2022-01-31 0001050140 us-gaap:RestrictedStockUnitsRSUMember 2020-02-01 2021-01-31 0001050140 us-gaap:EmployeeStockOptionMember 2020-02-01 2021-01-31 0001050140 srt:MinimumMember us-gaap:TradeNamesMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember us-gaap:NoncompeteAgreementsMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember dsgx:ExistingTechnologyMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember us-gaap:TradeNamesMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember us-gaap:NoncompeteAgreementsMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember dsgx:ExistingTechnologyMember 2022-02-01 2023-01-31 0001050140 dsgx:XpsMember us-gaap:TradeNamesMember 2022-02-01 2023-01-31 0001050140 dsgx:XpsMember us-gaap:NoncompeteAgreementsMember 2022-02-01 2023-01-31 0001050140 dsgx:XpsMember us-gaap:CustomerRelationshipsMember 2022-02-01 2023-01-31 0001050140 dsgx:XpsMember dsgx:ExistingTechnologyMember 2022-02-01 2023-01-31 0001050140 dsgx:SupplyVisionMember us-gaap:TradeNamesMember 2022-02-01 2023-01-31 0001050140 dsgx:SupplyVisionMember us-gaap:NoncompeteAgreementsMember 2022-02-01 2023-01-31 0001050140 dsgx:SupplyVisionMember us-gaap:CustomerRelationshipsMember 2022-02-01 2023-01-31 0001050140 dsgx:SupplyVisionMember dsgx:ExistingTechnologyMember 2022-02-01 2023-01-31 0001050140 dsgx:NetChbLlcMember us-gaap:TradeNamesMember 2022-02-01 2023-01-31 0001050140 dsgx:NetChbLlcMember us-gaap:NoncompeteAgreementsMember 2022-02-01 2023-01-31 0001050140 dsgx:NetChbLlcMember us-gaap:CustomerRelationshipsMember 2022-02-01 2023-01-31 0001050140 dsgx:NetChbLlcMember dsgx:ExistingTechnologyMember 2022-02-01 2023-01-31 0001050140 dsgx:FoxtrotMember us-gaap:CustomerRelationshipsMember 2022-02-01 2023-01-31 0001050140 dsgx:FoxtrotMember dsgx:ExistingTechnologyMember 2022-02-01 2023-01-31 0001050140 dsgx:QuestawebMember us-gaap:TradeNamesMember 2021-02-01 2022-01-31 0001050140 dsgx:QuestawebMember us-gaap:NoncompeteAgreementsMember 2021-02-01 2022-01-31 0001050140 dsgx:QuestawebMember us-gaap:CustomerRelationshipsMember 2021-02-01 2022-01-31 0001050140 dsgx:QuestawebMember dsgx:ExistingTechnologyMember 2021-02-01 2022-01-31 0001050140 dsgx:PortrixMember us-gaap:TradeNamesMember 2021-02-01 2022-01-31 0001050140 dsgx:PortrixMember us-gaap:NoncompeteAgreementsMember 2021-02-01 2022-01-31 0001050140 dsgx:PortrixMember us-gaap:CustomerRelationshipsMember 2021-02-01 2022-01-31 0001050140 dsgx:PortrixMember dsgx:ExistingTechnologyMember 2021-02-01 2022-01-31 0001050140 dsgx:GreenmileMember us-gaap:TradeNamesMember 2021-02-01 2022-01-31 0001050140 dsgx:GreenmileMember us-gaap:NoncompeteAgreementsMember 2021-02-01 2022-01-31 0001050140 dsgx:GreenmileMember us-gaap:CustomerRelationshipsMember 2021-02-01 2022-01-31 0001050140 dsgx:GreenmileMember dsgx:ExistingTechnologyMember 2021-02-01 2022-01-31 0001050140 dsgx:ShiptrackMember us-gaap:TradeNamesMember 2020-02-01 2021-01-31 0001050140 dsgx:ShiptrackMember us-gaap:NoncompeteAgreementsMember 2020-02-01 2021-01-31 0001050140 dsgx:ShiptrackMember us-gaap:CustomerRelationshipsMember 2020-02-01 2021-01-31 0001050140 dsgx:ShiptrackMember dsgx:ExistingTechnologyMember 2020-02-01 2021-01-31 0001050140 dsgx:PeoplevoxMember us-gaap:NoncompeteAgreementsMember 2020-02-01 2021-01-31 0001050140 dsgx:PeoplevoxMember us-gaap:CustomerRelationshipsMember 2020-02-01 2021-01-31 0001050140 dsgx:PeoplevoxMember dsgx:ExistingTechnologyMember 2020-02-01 2021-01-31 0001050140 dsgx:KontainersMember us-gaap:TradeNamesMember 2020-02-01 2021-01-31 0001050140 dsgx:KontainersMember us-gaap:NoncompeteAgreementsMember 2020-02-01 2021-01-31 0001050140 dsgx:KontainersMember us-gaap:CustomerRelationshipsMember 2020-02-01 2021-01-31 0001050140 dsgx:KontainersMember dsgx:ExistingTechnologyMember 2020-02-01 2021-01-31 0001050140 us-gaap:DevelopedTechnologyRightsMember 2023-01-31 0001050140 us-gaap:DevelopedTechnologyRightsMember 2022-01-31 0001050140 us-gaap:FairValueInputsLevel3Member 2021-01-31 0001050140 us-gaap:EmployeeStockOptionMember 2022-02-01 2023-01-31 0001050140 us-gaap:EmployeeStockOptionMember 2023-01-31 0001050140 dsgx:ShareholderApprovedStockOptionsPlanMember 2023-01-31 0001050140 us-gaap:FairValueInputsLevel2Member 2023-01-31 0001050140 us-gaap:FairValueInputsLevel2Member 2022-01-31 0001050140 dsgx:CashSettledRestrictedShareUnitMember 2023-01-31 0001050140 dsgx:CashSettledRestrictedShareUnitMember 2022-01-31 0001050140 dsgx:RevolvingOperatingCreditFacilityMember dsgx:SeniorSecuredCreditFacilityMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember dsgx:SeniorSecuredCreditFacilityMember dsgx:CanadaOrUsPrimeRateBaOrLiborMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember dsgx:SeniorSecuredCreditFacilityMember dsgx:CanadaOrUsPrimeRateBaOrLiborMember 2022-02-01 2023-01-31 0001050140 dsgx:OtherCountriesMember 2022-02-01 2023-01-31 0001050140 country:US 2022-02-01 2023-01-31 0001050140 country:CA 2022-02-01 2023-01-31 0001050140 dsgx:OtherCountriesMember 2021-02-01 2022-01-31 0001050140 country:US 2021-02-01 2022-01-31 0001050140 country:CA 2021-02-01 2022-01-31 0001050140 dsgx:OtherCountriesMember 2020-02-01 2021-01-31 0001050140 country:US 2020-02-01 2021-01-31 0001050140 country:CA 2020-02-01 2021-01-31 0001050140 2020-01-31 0001050140 dsgx:XpsMember us-gaap:TradeNamesMember 2023-01-31 0001050140 dsgx:XpsMember us-gaap:NoncompeteAgreementsMember 2023-01-31 0001050140 dsgx:XpsMember us-gaap:CustomerRelationshipsMember 2023-01-31 0001050140 dsgx:XpsMember dsgx:ExistingTechnologyMember 2023-01-31 0001050140 dsgx:SupplyVisionMember us-gaap:TradeNamesMember 2023-01-31 0001050140 dsgx:SupplyVisionMember us-gaap:NoncompeteAgreementsMember 2023-01-31 0001050140 dsgx:SupplyVisionMember us-gaap:CustomerRelationshipsMember 2023-01-31 0001050140 dsgx:SupplyVisionMember dsgx:ExistingTechnologyMember 2023-01-31 0001050140 dsgx:NetChbLlcMember us-gaap:TradeNamesMember 2023-01-31 0001050140 dsgx:NetChbLlcMember us-gaap:NoncompeteAgreementsMember 2023-01-31 0001050140 dsgx:NetChbLlcMember us-gaap:CustomerRelationshipsMember 2023-01-31 0001050140 dsgx:NetChbLlcMember dsgx:ExistingTechnologyMember 2023-01-31 0001050140 dsgx:FoxtrotMember us-gaap:CustomerRelationshipsMember 2023-01-31 0001050140 dsgx:FoxtrotMember dsgx:ExistingTechnologyMember 2023-01-31 0001050140 us-gaap:TradeNamesMember 2023-01-31 0001050140 us-gaap:NoncompeteAgreementsMember 2023-01-31 0001050140 us-gaap:CustomerRelationshipsMember 2023-01-31 0001050140 dsgx:ExistingTechnologyMember 2023-01-31 0001050140 dsgx:QuestawebMember us-gaap:TradeNamesMember 2022-01-31 0001050140 dsgx:QuestawebMember us-gaap:NoncompeteAgreementsMember 2022-01-31 0001050140 dsgx:QuestawebMember us-gaap:CustomerRelationshipsMember 2022-01-31 0001050140 dsgx:QuestawebMember dsgx:ExistingTechnologyMember 2022-01-31 0001050140 dsgx:PortrixMember us-gaap:TradeNamesMember 2022-01-31 0001050140 dsgx:PortrixMember us-gaap:NoncompeteAgreementsMember 2022-01-31 0001050140 dsgx:PortrixMember us-gaap:CustomerRelationshipsMember 2022-01-31 0001050140 dsgx:PortrixMember dsgx:ExistingTechnologyMember 2022-01-31 0001050140 dsgx:GreenmileMember us-gaap:TradeNamesMember 2022-01-31 0001050140 dsgx:GreenmileMember us-gaap:NoncompeteAgreementsMember 2022-01-31 0001050140 dsgx:GreenmileMember us-gaap:CustomerRelationshipsMember 2022-01-31 0001050140 dsgx:GreenmileMember dsgx:ExistingTechnologyMember 2022-01-31 0001050140 us-gaap:TradeNamesMember 2022-01-31 0001050140 us-gaap:NoncompeteAgreementsMember 2022-01-31 0001050140 us-gaap:CustomerRelationshipsMember 2022-01-31 0001050140 dsgx:ExistingTechnologyMember 2022-01-31 0001050140 dsgx:ShiptrackMember us-gaap:TradeNamesMember 2021-01-31 0001050140 dsgx:ShiptrackMember us-gaap:NoncompeteAgreementsMember 2021-01-31 0001050140 dsgx:ShiptrackMember us-gaap:CustomerRelationshipsMember 2021-01-31 0001050140 dsgx:ShiptrackMember dsgx:ExistingTechnologyMember 2021-01-31 0001050140 dsgx:PeoplevoxMember us-gaap:NoncompeteAgreementsMember 2021-01-31 0001050140 dsgx:PeoplevoxMember us-gaap:CustomerRelationshipsMember 2021-01-31 0001050140 dsgx:PeoplevoxMember dsgx:ExistingTechnologyMember 2021-01-31 0001050140 dsgx:KontainersMember us-gaap:TradeNamesMember 2021-01-31 0001050140 dsgx:KontainersMember us-gaap:NoncompeteAgreementsMember 2021-01-31 0001050140 dsgx:KontainersMember us-gaap:CustomerRelationshipsMember 2021-01-31 0001050140 dsgx:KontainersMember dsgx:ExistingTechnologyMember 2021-01-31 0001050140 us-gaap:TradeNamesMember 2021-01-31 0001050140 us-gaap:NoncompeteAgreementsMember 2021-01-31 0001050140 us-gaap:CustomerRelationshipsMember 2021-01-31 0001050140 dsgx:ExistingTechnologyMember 2021-01-31 0001050140 srt:MinimumMember us-gaap:MeasurementInputLongTermRevenueGrowthRateMember 2023-01-31 0001050140 srt:MinimumMember us-gaap:MeasurementInputDiscountRateMember 2023-01-31 0001050140 srt:MaximumMember us-gaap:MeasurementInputLongTermRevenueGrowthRateMember 2023-01-31 0001050140 srt:MaximumMember us-gaap:MeasurementInputDiscountRateMember 2023-01-31 0001050140 us-gaap:FairValueInputsLevel3Member 2023-01-31 0001050140 us-gaap:FairValueInputsLevel3Member 2022-01-31 0001050140 dsgx:WindigoLogisticsMember us-gaap:SubsequentEventMember 2023-02-14 0001050140 dsgx:GreenmileNetchbXpsAndSupplyVisionMember 2023-01-31 0001050140 dsgx:Fiscal2023AcquisitionsMember 2022-02-01 2023-01-31 0001050140 dsgx:SupplyVisionMember 2023-01-05 0001050140 dsgx:XpsTechnologyLlcMember 2022-06-03 0001050140 dsgx:FoxtrotMember 2022-04-21 0001050140 dsgx:NetChbLlcMember 2022-02-09 0001050140 dsgx:PortrixMember 2021-05-07 0001050140 dsgx:ShiptrackMember 2020-11-06 0001050140 dsgx:KontainersMember 2020-06-10 0001050140 dsgx:PeoplevoxMember 2020-02-21 0001050140 dsgx:GreenmileMember 2021-07-08 0001050140 dsgx:QuestawebMember 2021-02-26 0001050140 us-gaap:EmployeeStockOptionMember 2022-02-01 2023-01-31 0001050140 dsgx:StockOptionsTreasuryStockMethodMember 2022-02-01 2023-01-31 0001050140 dsgx:PSUsAndRSUsMember 2022-02-01 2023-01-31 0001050140 us-gaap:EmployeeStockOptionMember 2021-02-01 2022-01-31 0001050140 dsgx:StockOptionsTreasuryStockMethodMember 2021-02-01 2022-01-31 0001050140 dsgx:PSUsAndRSUsMember 2021-02-01 2022-01-31 0001050140 us-gaap:EmployeeStockOptionMember 2020-02-01 2021-01-31 0001050140 dsgx:StockOptionsTreasuryStockMethodMember 2020-02-01 2021-01-31 0001050140 dsgx:PSUsAndRSUsMember 2020-02-01 2021-01-31 0001050140 us-gaap:SellingAndMarketingExpenseMember 2022-02-01 2023-01-31 0001050140 us-gaap:ResearchAndDevelopmentExpenseMember 2022-02-01 2023-01-31 0001050140 us-gaap:CostOfSalesMember 2022-02-01 2023-01-31 0001050140 us-gaap:SellingAndMarketingExpenseMember 2021-02-01 2022-01-31 0001050140 us-gaap:ResearchAndDevelopmentExpenseMember 2021-02-01 2022-01-31 0001050140 us-gaap:CostOfSalesMember 2021-02-01 2022-01-31 0001050140 us-gaap:SellingAndMarketingExpenseMember 2020-02-01 2021-01-31 0001050140 us-gaap:ResearchAndDevelopmentExpenseMember 2020-02-01 2021-01-31 0001050140 us-gaap:CostOfSalesMember 2020-02-01 2021-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2022-02-01 2023-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2021-02-01 2022-01-31 0001050140 us-gaap:AdditionalPaidInCapitalMember 2020-02-01 2021-01-31 0001050140 us-gaap:LeaseholdImprovementsMember 2023-01-31 0001050140 us-gaap:FurnitureAndFixturesMember 2023-01-31 0001050140 us-gaap:ComputerEquipmentMember 2023-01-31 0001050140 dsgx:EquipmentInstalledWithCustomersMember 2023-01-31 0001050140 us-gaap:LeaseholdImprovementsMember 2022-01-31 0001050140 us-gaap:FurnitureAndFixturesMember 2022-01-31 0001050140 us-gaap:ComputerEquipmentMember 2022-01-31 0001050140 dsgx:EquipmentInstalledWithCustomersMember 2022-01-31 0001050140 dsgx:ShelfProspectusMember 2022-07-15 2022-07-15 0001050140 us-gaap:PerformanceSharesMember 2021-02-01 2022-01-31 0001050140 us-gaap:RestrictedStockUnitsRSUMember 2022-02-01 2023-01-31 0001050140 us-gaap:PerformanceSharesMember 2022-02-01 2023-01-31 0001050140 us-gaap:RestrictedStockUnitsRSUMember 2023-01-31 0001050140 us-gaap:PerformanceSharesMember 2023-01-31 0001050140 dsgx:NcibMember 2022-06-07 2022-06-07 0001050140 us-gaap:FairValueInputsLevel3Member 2022-02-01 2023-01-31 0001050140 us-gaap:FairValueInputsLevel3Member 2021-02-01 2022-01-31 0001050140 us-gaap:GeneralAndAdministrativeExpenseMember 2022-02-01 2023-01-31 0001050140 us-gaap:GeneralAndAdministrativeExpenseMember 2021-02-01 2022-01-31 0001050140 us-gaap:GeneralAndAdministrativeExpenseMember 2020-02-01 2021-01-31 0001050140 dsgx:DeferredShareUnitPlanMember 2023-01-31 0001050140 dsgx:DeferredShareUnitPlanMember 2022-01-31 0001050140 dsgx:DeferredShareUnitPlanMember 2022-02-01 2023-01-31 0001050140 dsgx:DeferredShareUnitPlanMember 2021-02-01 2022-01-31 0001050140 dsgx:DeferredShareUnitPlanMember 2020-02-01 2021-01-31 0001050140 srt:MinimumMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember 2022-02-01 2023-01-31 0001050140 srt:MinimumMember dsgx:CashsettledRestrictedSharePlanMember 2022-02-01 2023-01-31 0001050140 srt:MaximumMember dsgx:CashsettledRestrictedSharePlanMember 2022-02-01 2023-01-31 0001050140 dsgx:CashSettledRestrictedShareUnitMember 2022-02-01 2023-01-31 0001050140 dsgx:CashSettledRestrictedShareUnitMember 2021-02-01 2022-01-31 0001050140 dsgx:CashSettledRestrictedShareUnitMember 2020-02-01 2021-01-31 0001050140 dsgx:XpsMember 2023-01-31 0001050140 dsgx:SupplyVisionMember 2023-01-31 0001050140 dsgx:NetChbLlcMember 2023-01-31 0001050140 dsgx:FoxtrotMember 2023-01-31 0001050140 dsgx:PeoplevoxMember 2021-01-31 0001050140 dsgx:KontainersMember 2021-01-31 0001050140 dsgx:QuestawebMember 2022-01-31 0001050140 dsgx:PortrixMember 2022-01-31 0001050140 dsgx:ShiptrackMember 2021-01-31 0001050140 2021-01-31 0001050140 dsgx:GreenmileMember 2022-01-31 0001050140 dsgx:SupplyVisionMember 2023-01-05 2023-01-05 0001050140 dsgx:XpsTechnologyLlcMember 2022-06-03 2022-06-03 0001050140 dsgx:NetChbLlcMember 2022-02-09 2022-02-09 0001050140 dsgx:GreenmileNetchbXpsAndSupplyVisionMember 2022-02-01 2023-01-31 0001050140 dsgx:GreenmileMember 2021-07-08 2021-07-08 0001050140 dsgx:ShiptrackMember 2020-11-06 2020-11-06 0001050140 dsgx:KontainersMember 2020-06-10 2020-06-10 0001050140 dsgx:XpsMember 2022-02-01 2023-01-31 0001050140 dsgx:SupplyVisionMember 2022-02-01 2023-01-31 0001050140 dsgx:NetChbLlcMember 2022-02-01 2023-01-31 0001050140 dsgx:FoxtrotMember 2022-02-01 2023-01-31 0001050140 dsgx:QuestawebMember 2021-02-01 2022-01-31 0001050140 dsgx:PortrixMember 2021-02-01 2022-01-31 0001050140 dsgx:GreenmileMember 2021-02-01 2022-01-31 0001050140 dsgx:ShiptrackMember 2020-02-01 2021-01-31 0001050140 dsgx:PeoplevoxMember 2020-02-01 2021-01-31 0001050140 dsgx:KontainersMember 2020-02-01 2021-01-31 0001050140 2020-02-01 2021-01-31 0001050140 dsgx:DeferredShareUnitPlanMember 2022-02-01 2023-01-31 0001050140 2023-01-31 0001050140 2022-01-31 0001050140 2021-02-01 2022-01-31 iso4217:USD pure shares iso4217:USD shares iso4217:CAD dsgx:segment iso4217:EUR 2023-01-31 --01-31 FY 0001050140 false 2023 6-K DESCARTES SYSTEMS GROUP INC Unlimited Unlimited P2Y P4Y P3Y P2Y P1Y P4Y P3Y P3Y 10 13 276385000 213437000 45173000 41705000 11658000 14075000 24676000 21974000 759000 868000 358651000 292059000 22247000 18652000 11434000 10817000 6774000 10571000 11483000 14962000 229808000 229609000 675647000 608761000 1316044000 1185431000 10569000 10566000 80309000 56442000 3397000 4029000 7536000 5616000 67784000 56780000 169595000 133433000 3923000 7382000 1615000 1920000 6120000 7354000 35400000 35523000 216653000 185612000 84820100 84820100 84756210 84756210 538448000 536297000 486551000 473303000 -30456000 -12393000 104848000 2612000 1099391000 999819000 1316044000 1185431000 486014000 424690000 348664000 113326000 101810000 89910000 372688000 322880000 258754000 56573000 46895000 38785000 70353000 62570000 54066000 49710000 44454000 36267000 5441000 6428000 2335000 60177000 59099000 55905000 242254000 219446000 187358000 130434000 103434000 71396000 1167000 1123000 1186000 4461000 299000 159000 133728000 102610000 70369000 28248000 14814000 3746000 3244000 1514000 14523000 31492000 16328000 18269000 102236000 86282000 52100000 1.21 1.02 0.62 1.18 1.00 0.61 84791000 84591000 84360000 86451000 86200000 85756000 102236000 86282000 52100000 -58000 -348000 290000 -18063000 -11204000 24755000 -18063000 -11204000 24755000 84173000 75078000 76855000 536297000 531825000 524154000 2151000 4472000 7671000 538448000 536297000 531825000 473303000 464102000 459269000 13667000 11017000 6313000 -419000 -1816000 -1480000 486551000 473303000 464102000 -12393000 -1189000 -25944000 -18063000 -11204000 24755000 -30456000 -12393000 -1189000 2612000 -83670000 -135770000 102236000 86282000 52100000 104848000 2612000 -83670000 1099391000 999819000 911068000 102236000 86282000 52100000 5225000 5129000 5757000 60177000 59099000 55905000 13667000 11017000 6313000 53000 308000 207000 3244000 1514000 14523000 -7793000 -12789000 3575000 192395000 176138000 131230000 6071000 4829000 3759000 115561000 90278000 48403000 -121632000 -95107000 -52162000 10196000 1068000 10793000 1118000 72000 40000 1730000 2656000 6194000 5215000 -4603000 1516000 5557000 -3212000 -2771000 4633000 62948000 79776000 89258000 213437000 133661000 44403000 276385000 213437000 133661000 89000 23791000 12575000 8214000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 1 - Description of the Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The Descartes Systems Group Inc. (“Descartes”, “Company”, “our” or “we”) is a provider of global logistics technology solutions. Customers use our modular, software-as-a-service (“SaaS”) and data solutions to route, schedule, track and measure delivery resources; plan, allocate and execute shipments; rate, audit and pay transportation invoices; access and analyze global trade data; research and perform trade tariff and duty calculations; file customs and security documents for imports and exports; and complete numerous other logistics processes by participating in a large, collaborative multi-modal logistics community. Our pricing model provides our customers with flexibility in purchasing our solutions either on a subscription, transactional or perpetual license basis. Our primary focus is on serving transportation providers (air, ocean and truck modes), logistics service providers (including third-party logistics providers, freight forwarders and customs brokers) and distribution-intensive companies for which logistics is either a key or a defining part of their own product or service offering, or for which our solutions can provide an opportunity to reduce costs, improve service levels, or support growth by optimizing the use of assets and information.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 2 –Basis of Presentation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying consolidated financial statements are presented in United States (“US”) dollars and are prepared in accordance with generally accepted accounting principles in the US (“GAAP”) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (“SEC”) for the preparation of consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our fiscal year, which ends on January 31, 2023, is referred to as the “current fiscal year”, “fiscal 2023”, “2023” or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the “previous fiscal year”, “fiscal 2022”, “2022” or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, “2024” refers to the annual period ending January 31, 2024 and the “fourth quarter of 2024” refers to the quarter ending January 31, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Basis of consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Foreign currency translation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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 January 31, 2023, foreign currency re-measurement loss of </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million was included in net income (January 31, 2022 – loss of </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million; January 31, 2021 – loss of </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Use of estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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 may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates 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 (“SSP”) of performance obligations in contracts with customers. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash included highly liquid short-term deposits with original maturities of three months or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 “Derivatives and Hedging” (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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) Canadian Dollar Offered Rate (CDOR); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Provision for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Inventory</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Impairment of long-lived assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Goodwill and intangible assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test for impairment of goodwill at least annually on October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our 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 third quarter of 2023 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, </span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairment of goodwill was recorded in fiscal 2023 (</span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairments were recorded for fiscal 2022 or fiscal 2021). </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Amortization of our intangible assets is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_q3EucpbafUupeM0Gt7jKvQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twenty years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_8ZQJ1sxMskCGmFuMSx1b5Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to twelve years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_SA6wXrXkJkG8qWw0XW4eww;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to fifteen years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_K1HkYIbwpEqxQD581zNqFw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twelve years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><span style="font-family:'Verdana';margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Property and equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Property and equipment is recorded at cost. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Effective February 1, 2020, 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 was applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Depreciation of our property and equipment is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_MVs-0-yPYU-8XK4_9TMObw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">1</span></span> to 13 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over 3 to 14 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over 3 years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Leases</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize a right-of-use (“ROU”) 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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 not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenue recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional Services &amp; Other</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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 our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Costs to obtain a contract with a customer</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between </span><span style="-sec-ix-hidden:Hidden_m4QPsTPeOUymGMDTY5kdVA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">six years</span><span style="font-family:'Verdana';">, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contract assets and liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Stock-based compensation plans</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Employee stock options generally vest over a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">seven years</span><span style="font-family:'Verdana';"> from the grant date. Non-employee directors’ and officers’ stock options generally have quarterly vesting over a </span><span style="-sec-ix-hidden:Hidden_Xho07VH9F0KEW5wc1CyHow;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (“PSUs”) and restricted share units (“RSUs”). </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs vest at the end of a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> performance period. The ultimate number of PSUs that vest is based on the total shareholder return (“TSR”) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. New shares are issued from treasury upon the redemption of a PSU.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">RSUs vest annually over a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (“DSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none 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 </span><span style="font-family:'Verdana';">50%</span><span style="font-family:'Verdana';"> 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (“CRSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over </span><span style="-sec-ix-hidden:Hidden_YmV_dGRt8U6gLs-cxGEoFQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Business combinations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We apply the provisions of ASC Topic 805, “Business Combinations” (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, “Exit or Disposal Cost Obligations” (Topic 420) and are accounted for separately from the business combination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use 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 not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Earnings per share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In October 2021, the FASB issued Accounting Standards Update 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers” (“ASU 2021-08”). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures</span><span style="font-family:'Verdana';">.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The accompanying consolidated financial statements are presented in United States (“US”) dollars and are prepared in accordance with generally accepted accounting principles in the US (“GAAP”) and the rules and regulations of the Canadian Securities Administrators and the US Securities and Exchange Commission (“SEC”) for the preparation of consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our fiscal year commences on February 1</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and ends on January 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the following year. Our fiscal year, which ends on January 31, 2023, is referred to as the “current fiscal year”, “fiscal 2023”, “2023” or using similar words. Our previous fiscal year, which ended on January 31, 2022, is referred to as the “previous fiscal year”, “fiscal 2022”, “2022” or using similar words. Other fiscal years are referenced by the applicable year during which the fiscal year ends. For example, “2024” refers to the annual period ending January 31, 2024 and the “fourth quarter of 2024” refers to the quarter ending January 31, 2024.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Basis of consolidation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The consolidated financial statements include the financial statements of Descartes and our wholly-owned subsidiaries. We do not have any variable interests in variable interest entities. All intercompany accounts and transactions have been eliminated during consolidation.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Foreign currency translation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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 January 31, 2023, foreign currency re-measurement loss of </span><span style="font-family:'Verdana';">$1.2</span><span style="font-family:'Verdana';"> million was included in net income (January 31, 2022 – loss of </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million; January 31, 2021 – loss of </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million).</span></p> 1200000 300000 800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Use of estimates</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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 may be different from the estimates. These estimates, judgments and assumptions are evaluated on an ongoing basis. We base our estimates on historical experience and on various other assumptions that we believe are reasonable at that time, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates 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 (“SSP”) of performance obligations in contracts with customers. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Cash</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cash included highly liquid short-term deposits with original maturities of three months or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fair value of financial instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Derivative instruments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We use derivative instruments to manage equity risk relating to our share-based compensation. We account for these instruments in accordance with ASC Topic 815 “Derivatives and Hedging” (Topic 815), which requires that every derivative instrument be recorded on the balance sheet as either an asset or a liability measured at its fair value as of the reporting date. We do not designate our derivative instruments as hedges and as such the changes in our derivative financial instruments' 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Foreign exchange risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are exposed to foreign exchange risk because the Company transacts business in currencies other than the US dollar. Accordingly, our results are affected, and may be affected in the future, by exchange rate fluctuations of the US dollar relative to the Canadian dollar, euro, British pound sterling and various other foreign currencies.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Interest rate risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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) Canadian Dollar Offered Rate (CDOR); or iii) the Secured Overnight Financing Rate (SOFR). We are exposed to interest rate fluctuations to the extent that we borrow on our credit facility. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Credit risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We do not use any type of speculative financial instruments, including but not limited to foreign exchange contracts, futures, swaps and option agreements, to manage our foreign exchange or interest rate risks. In addition, we do not hold or issue financial instruments for trading purposes. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Equity risk</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We are exposed to equity risk through certain share-based compensation expenses that are fair valued at the balance sheet date. The Company enters into equity derivative contracts including floating-rate equity forwards to partially offset the potential fluctuations of certain future share-based compensation expenses. The Company does not hold derivatives for speculative purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Provision for Credit Losses</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Inventory</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The valuation of inventory, including the determination of obsolete or excess inventory, requires management to estimate the future demand for our products within specified time horizons. We perform an assessment of inventory which includes a review of, among other factors, demand requirements, product life cycle and development plans, product pricing and quality issues. If the demand for our products indicates we are no longer able to sell inventories above cost or at all, we write down inventory to market or excess inventory is written off.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Impairment of long-lived assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We test long-lived assets or asset groups, such as property and equipment and finite life intangible assets, for recoverability when events or changes in circumstances indicate that there may be impairment. Circumstances which could trigger a review include, but are not limited to: significant adverse changes in the business climate or legal factors; current period cash flow or operating losses combined with a history of losses or a forecast of continuing losses associated with the use of the asset or asset group; and a current expectation that the asset or asset group will more likely than not be sold or disposed of before the end of its estimated useful life. An impairment loss is recognized when the estimate of undiscounted future cash flows generated by such asset or asset group is less than the carrying amount. Measurement of the impairment loss is based on the present value of the expected future cash flows. No impairment of long-lived assets has been identified or recorded in our consolidated statements of operations for any of the fiscal years presented.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Goodwill and intangible assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Goodwill represents the excess of the purchase price in a business combination over the fair value of net tangible and intangible assets acquired. Goodwill is not subject to amortization. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We test for impairment of goodwill at least annually on October 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of each year and at any other time if any event occurs or circumstances change that would more likely than not reduce our fair value below our 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 third quarter of 2023 and concluded that it was more likely than not that the fair value of the goodwill was greater than the carrying value. As a result, </span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairment of goodwill was recorded in fiscal 2023 (</span><span style="font-family:'Verdana';">no</span><span style="font-family:'Verdana';"> impairments were recorded for fiscal 2022 or fiscal 2021). </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. Intangible assets include customer agreements and relationships, non-compete covenants, existing technologies and trade names. Intangible assets are amortized on a straight-line basis over their estimated useful lives. We write down intangible asset or asset groups with a finite life to fair value when the related undiscounted cash flows are not expected to allow for recovery of the carrying value. Fair value of intangible asset or asset groups is determined by discounting the expected related future cash flows.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Amortization of our intangible assets is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_q3EucpbafUupeM0Gt7jKvQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twenty years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_8ZQJ1sxMskCGmFuMSx1b5Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to twelve years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_SA6wXrXkJkG8qWw0XW4eww;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to fifteen years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_K1HkYIbwpEqxQD581zNqFw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twelve years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><span style="font-family:'Verdana';margin-left:0pt;visibility:hidden;">​</span></p> 0 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer agreements and relationships</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_q3EucpbafUupeM0Gt7jKvQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twenty years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Existing technologies</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_8ZQJ1sxMskCGmFuMSx1b5Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> to twelve years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trade names</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_SA6wXrXkJkG8qWw0XW4eww;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> to fifteen years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-compete covenants</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_K1HkYIbwpEqxQD581zNqFw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two</span></span> to twelve years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 54pt;"><span style="font-family:'Verdana';margin-left:0pt;visibility:hidden;">​</span></p> P20Y P12Y P15Y P12Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Property and equipment</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Property and equipment is recorded at cost. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Effective February 1, 2020, 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 was applied prospectively. The change in the method of depreciation did not have a material impact on our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Depreciation of our property and equipment is generally recorded at the following rates:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_MVs-0-yPYU-8XK4_9TMObw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">1</span></span> to 13 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over 3 to 14 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over 3 years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Fully depreciated property and equipment are removed from the balance sheet when they are no longer in use.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment and software</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over <span style="-sec-ix-hidden:Hidden_MVs-0-yPYU-8XK4_9TMObw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">1</span></span> to 13 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over 3 to 14 years</p></td></tr><tr><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Leasehold improvements</p></td><td style="vertical-align:bottom;width:50%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over lesser of useful life or term of lease</p></td></tr><tr><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Equipment installed with customers</p></td><td style="vertical-align:bottom;width:50%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Straight-line over 3 years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> P13Y P3Y P14Y P3Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Leases</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">At the 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize a right-of-use (“ROU”) 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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 not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have elected to apply the practical expedient not to recognize ROU assets and lease liabilities for short-term leases that have a lease term of 12 months or less. The lease payments associated with these leases are recognized as an expense on a straight-line basis over the lease term.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Revenue recognition</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">License</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Revenues 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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Services</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Professional Services &amp; Other</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our contracts with customers often include promises to transfer multiple goods and services to a customer. Determining whether goods and services are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Judgment is also needed in assessing the ability to collect the corresponding receivables.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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 our promised goods or services, we conduct a regular analysis to determine whether various goods or services have an observable standalone selling price. If the Company does not have an observable SSP for a particular good or service, then SSP for that particular good or service is estimated using reasonably available information and maximizing observable inputs with approaches including historical pricing, cost plus a margin, and the residual approach.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Costs to obtain a contract with a customer</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize an asset for the incremental costs of obtaining a contract with a customer if we expect the costs to be recoverable. We have determined that certain sales incentive programs meet the requirements to be capitalized. These capitalized costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates, including specifically identifiable contract renewals. The period of benefit including renewals is determined to be generally between </span><span style="-sec-ix-hidden:Hidden_m4QPsTPeOUymGMDTY5kdVA;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">six years</span><span style="font-family:'Verdana';">, taking into consideration our customer contracts, our technology, renewal behaviors and other factors. Amortization of the asset is included in sales and marketing expenses in the consolidated statements of operations. Applying the practical expedient, we recognize the incremental costs of obtaining contracts as an expense when incurred if the amortization period of the assets that we otherwise would have recognized is one year or less.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Contract assets and liabilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The payment terms and conditions in our customer contracts may vary from the timing of revenue recognition. In some cases, customers pay in advance of delivery of products or services; in other cases, payment is due as services are performed or in arrears following delivery. Timing differences between revenue recognition and invoicing result in unbilled receivables, contract assets, or deferred revenue. Receivables are accrued when revenue is recognized prior to invoicing but the right to payment is unconditional (i.e., only the passage of time is required). This occurs most commonly when software term licenses recognized at a point in time are paid for periodically over the license term. Contract assets result when amounts allocated to distinct performance obligations are recognized as revenue and control of a product or service is transferred to the customer, but invoicing is contingent on performance of other performance obligations or on completion of contractual milestones and is presented as other receivables. Contract assets are transferred to receivables when the rights become unconditional, typically upon invoicing of the related performance obligations in the contract or upon achieving the requisite project milestone. Contract liabilities primarily relate to the advance consideration received from customers and is presented as deferred revenue. Deferred revenue results from customer payments in advance of our satisfaction of the associated performance obligation(s) 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.</span></p> P6Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Research and development costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">To date, we have not capitalized any costs related to research and development of our computer software products. Costs incurred between the dates that the product is considered to be technologically feasible and is considered to be ready for general release to customers have historically been expensed as they have not been significant.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Stock-based compensation plans</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.  </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Employee stock options generally vest over a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">seven years</span><span style="font-family:'Verdana';"> from the grant date. Non-employee directors’ and officers’ stock options generally have quarterly vesting over a </span><span style="-sec-ix-hidden:Hidden_Xho07VH9F0KEW5wc1CyHow;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> period. We issue new shares from treasury upon the exercise of a stock option. Forfeitures are accounted for as they occur. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Performance &amp; Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We maintain a performance and restricted share unit plan pursuant to which certain of our officers are eligible to receive grants of performance share units (“PSUs”) and restricted share units (“RSUs”). </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">PSUs vest at the end of a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> performance period. The ultimate number of PSUs that vest is based on the total shareholder return (“TSR”) of our Company relative to the TSR of companies comprising a peer index group. TSR is calculated based on the weighted-average closing price of shares for the five trading days preceding the beginning and end of the performance period. The fair value of PSUs is expensed to stock-based compensation expense over the vesting period. PSUs expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. New shares are issued from treasury upon the redemption of a PSU.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">RSUs vest annually over a </span><span style="font-family:'Verdana';">three-year</span><span style="font-family:'Verdana';"> period starting from the grant date and expire </span><span style="font-family:'Verdana';">ten years</span><span style="font-family:'Verdana';"> from the grant date. We issue new shares from treasury upon the redemption of an RSU.RSUs are measured at fair value based on the closing price of our common shares for the day preceding the date of the grant and will be expensed to stock-based compensation expense over the vesting period. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a deferred share unit plan effective as of June 28, 2004, pursuant to which non-employee directors are eligible to receive grants of deferred share units (“DSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the grant date. The plan allows each director to choose to receive, in the form of DSUs, all, none 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 </span><span style="font-family:'Verdana';">50%</span><span style="font-family:'Verdana';"> 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Our board of directors adopted a cash-settled restricted share unit plan effective as of May 23, 2007, pursuant to which certain of our employees and non-employee directors are eligible to receive grants of cash-settled restricted share units (“CRSUs”), each of which has an initial value equal to the weighted-average closing price of our common shares for the five trading days preceding the date of the grant. The CRSUs generally vest based on continued employment and have annual vesting over </span><span style="-sec-ix-hidden:Hidden_YmV_dGRt8U6gLs-cxGEoFQ;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> periods. Vested units are settled in cash based on our common share price when conversion takes place, which is within 30 days following a vesting date and in any event prior to December 31</span><sup style="font-family:'Verdana';font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup><span style="font-family:'Verdana';"> of the 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.</span></p> P5Y P7Y P5Y P3Y P10Y P3Y P10Y 0.50 P5Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Business combinations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We apply the provisions of ASC Topic 805, “Business Combinations” (Topic 805), in the accounting for our acquisitions. It requires us to recognize separately from goodwill, the assets acquired and the liabilities assumed at their acquisition date fair values including certain identifiable intangible assets (other than goodwill). Goodwill as of the acquisition date is measured as the excess of consideration transferred over the net of the acquisition date fair values of the assets acquired and the liabilities assumed. The determination of the acquisition date fair value of the intangible assets acquired requires us to make estimates and assumptions regarding projected revenues, earnings before interest, taxes, depreciation and amortization, technology migration rates, customer attrition rates and discount rates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Contingent consideration may be payable on the achievement of certain financial targets in the post-acquisition periods. Contingent consideration is required to be measured at fair value on the date of acquisition. The estimated fair value of contingent consideration is calculated using the estimated financial outcome and resulting expected contingent consideration to be paid. Contingent consideration is remeasured at fair value at each reporting date and subsequent changes in the fair value of the contingent consideration are recognized in profit or loss.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">While we use our best estimates and assumptions to accurately value assets acquired and liabilities assumed at the acquisition date as well as contingent consideration, where applicable, our estimates are inherently uncertain and subject to refinement. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the values of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments would be recorded to our consolidated statement of operations. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Costs to exit or restructure certain activities of an acquired company or our internal operations are accounted for as termination and exit costs pursuant to ASC Topic 420, “Exit or Disposal Cost Obligations” (Topic 420) and are accounted for separately from the business combination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For a given acquisition, we generally identify certain pre-acquisition contingencies as of the acquisition date and may extend our review and evaluation of these pre-acquisition contingencies throughout the measurement period in order to obtain sufficient information to assess whether we include these contingencies as a part of the purchase price allocation and, if so, to determine the estimated amounts.If we determine that a pre-acquisition contingency (non-income tax related) is probable in nature and estimable as of the acquisition date, we record our best estimate for such a contingency as a part of the preliminary purchase price allocation. We often continue to gather information and evaluate our pre-acquisition contingencies throughout the measurement period and if we make changes to the amounts recorded or if we identify additional pre-acquisition contingencies during the measurement period, such amounts will be included in the purchase price allocation during the measurement period and, subsequent to the measurement period, in our results of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Uncertain tax positions and tax related valuation allowances assumed in connection with a business combination are initially estimated as of the acquisition date. We review these items during the measurement period as we continue to actively seek and collect information relating to facts and circumstances that existed at the acquisition date. Changes to these uncertain tax positions and tax related valuation allowances made subsequent to the measurement period, or if they relate to facts and circumstances that did not exist at the acquisition date, are recorded in our provision for income taxes in our consolidated statement of operations.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Income taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We use 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 not that a deferred tax asset will not be realized. In determining the valuation allowance, we consider factors such as the reversal of deferred income tax liabilities, projected taxable income, our history of losses for tax purposes, and the character of income tax assets and tax planning strategies. A change to these factors could impact the estimated valuation allowance and income tax expense.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We evaluate our uncertain tax positions by using a two-step approach to recognize and measure uncertain tax positions and provisions for income taxes. The first step is to evaluate the tax position for recognition by determining if the weight of available evidence indicates it is more likely than not, based solely on the technical merits, that the position will be sustained on audit, including resolution of related appeals or litigation processes, if any. The second step is to measure the appropriate amount of the benefit to recognize. The amount of benefit to recognize is measured as the maximum amount which is more likely than not to be realized. The tax position is derecognized when it is no longer more likely than not that the position will be sustained on audit. We continually assess the likelihood and amount of potential adjustments and adjust the income tax provisions, income taxes payable and deferred income taxes in the period in which the facts that give rise to a revision become known.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-style:italic;font-weight:bold;">Earnings per share</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">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.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Recently issued accounting pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In October 2021, the FASB issued Accounting Standards Update 2021-08, “Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers” (“ASU 2021-08”). ASU 2021-08 provides guidance on how to recognize and measure acquired contract assets and liabilities from revenue contracts in a business combination. ASU 2021-08 is effective for annual periods, and interim periods within those annual periods, beginning after December 15, 2022, which will be our fiscal year beginning February 1, 2023 (fiscal 2024). Early adoption is permitted. The Company will adopt this guidance in the first quarter of fiscal 2024. The adoption of this guidance is not expected to have a material impact on our results of operations or disclosures</span><span style="font-family:'Verdana';">.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 3 – Acquisitions</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2023 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February 9, 2022, Descartes acquired all of the shares of NetCHB, LLC (“NetCHB”), a provider of customs filing solutions in the US. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$38.7</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$60.0</span><span style="font-family:'Verdana';"> million based on NetCHB achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent considerations was valued at </span><span style="font-family:'Verdana';">$13.9</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2023 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On April 21, 2022, Descartes acquired substantially all of the assets of Foxtrot, Inc. (“Foxtrot”), a provider of machine learning-based mobile route execution solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$4.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before April 21, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June 3, 2022, Descartes acquired all of the shares of XPS Technologies, LLC (“XPS”), a provider of ecommerce multi-carrier parcel shipping solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$61.1</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$75.0</span><span style="font-family:'Verdana';"> million based on XPS achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$9.4</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.5</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before June 3, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On January 5, 2023, Descartes acquired all of the shares of Tran-Soft, LLC, doing business as Supply Vision (“Supply Vision”), a provider of shipment management solutions for North American Logistics Services Providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$12.0</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$3.0</span><span style="font-family:'Verdana';"> million based on Supply Vision achieving revenue-based targets over the first </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> post-acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$2.7</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The completion of the initial purchase price allocation is pending the finalization of the fair value for trade receivables, accrued liability balances, deferred revenue as well as potential unrecorded liabilities. We expect to finalize the purchase price allocation on or before January 5, 2024.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the businesses acquired during fiscal 2023, we incurred acquisition-related costs of </span><span style="font-family:'Verdana';">$1.9</span><span style="font-family:'Verdana';"> million for the year ended January 31, 2023. 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 January 31, 2023, we have recognized revenues of </span><span style="font-family:'Verdana';">$20.8</span><span style="font-family:'Verdana';"> million, and net income of </span><span style="font-family:'Verdana';">$6.6</span><span style="font-family:'Verdana';"> million, respectively, from NetCHB, Foxtrot, XPS and Supply Vision since the date of acquisition in our consolidated statements of operations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The final purchase price allocation for NetCHB and the</span><span style="font-size:10pt;"> </span><span style="font-family:'Verdana';font-size:9.5pt;">preliminary purchase price allocations for Foxtrot, XPS and Supply Vision, which have not been finalized, are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$658</span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';white-space:pre-wrap;">), XPS (</span><span style="font-family:'Verdana';">$3,932</span><span style="font-family:'Verdana';">) and Supply Vision (</span><span style="font-family:'Verdana';">$413</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 38,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 61,096</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 11,573</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 115,561</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,948</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,425</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,670</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,043</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 978</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (137)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 958</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,106</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,562</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 835</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 703</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,456</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (367)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (22)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,483)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (658)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,530)</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (336)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,196)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (132)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,664)</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 477</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,230)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (87)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (738)</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 10,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 22,150</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,640</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 20,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 40,440</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 194</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,900</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,527</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,529</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,763</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 78,616</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,106</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,562</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The above transactions were accounted for using the acquisition method in accordance with ASC Topic 805, “Business Combinations”. The purchase price allocations in the table above represents our estimates of the allocation of the purchase price and the fair value of net assets acquired. The preliminary purchase price allocations may differ from the final purchase price allocation, and these differences may be material. Revisions to the allocations will occur as additional information about the fair value of assets and liabilities becomes available. The final purchase price allocations will be completed within one year from the acquisition dates.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">9 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the NetCHB, Foxtrot, XPS and Supply Vision acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the NetCHB, Foxtrot, XPS and Supply Vision acquisitions are deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2022 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On February 26, 2021, Descartes acquired all of the shares of VitaDex Solutions, LLC, doing business as QuestaWeb (“QuestaWeb”), a US-based provider of foreign trade zone and customs compliance solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$35.9</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.6</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">flows not expected to be collected was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million. The purchase price was finalized in the three month period ended January 31, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On May 7, 2021, Descartes acquired all of the shares of Portrix Logistics Software GmbH (“Portrix”), a provider of multimodal rate management solutions for logistics services providers. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$25.2</span><span style="font-family:'Verdana';"> million (EUR </span><span style="font-family:'Verdana';">20.7</span><span style="font-family:'Verdana';"> million), net of cash acquired, which was funded from cash on hand. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended April 30, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 8, 2021, Descartes acquired all of the shares of GreenMile, LLC (“GreenMile”), a provider of cloud-based mobile route execution solutions for food, beverage, and broader distribution verticals. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$29.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to </span><span style="font-family:'Verdana';">$10.0</span><span style="font-family:'Verdana';"> million in cash is payable if certain revenue performance targets are met by GreenMile in the </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> following the acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$3.3</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million. The purchase price was finalized in the three month period ended July 31, 2022 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The final purchase price allocations for businesses we acquired during 2022 are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Green</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Mile</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to QuestaWeb (</span><span style="font-family:'Verdana';">$2,097</span><span style="font-family:'Verdana';">), Portrix (</span><span style="font-family:'Verdana';">$200</span><span style="font-family:'Verdana';">) and GreenMile (</span><span style="font-family:'Verdana';">$1,552</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,860</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25,188</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29,230</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 90,278</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,339</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,339</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable / (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (54)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (308)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (345)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,877</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25,134</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 32,261</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 93,272</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 714</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 810</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,186</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,710</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 78</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 167</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 123</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 374</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 497</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other long-term assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 242</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 242</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (170)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (871)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,498)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,539)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (736)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (499)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (909)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,144)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (123)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (374)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (497)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liability</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (5,185)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (752)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (5,937)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (365)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (365)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,062)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,062)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (114)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (6,807)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,007)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (7,928)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12.25pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,014</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,514</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12.25pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,286</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,186</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12.25pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 122</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 322</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 487</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,487</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,691</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 15,032</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,968</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 49,691</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 35,877</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 25,134</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 32,261</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 93,272</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">GreenMile</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The goodwill on the QuestaWeb, Portrix and GreenMile acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the QuestaWeb and GreenMile acquisition is deductible for tax purposes. The goodwill arising from the Portrix acquisition is not deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Fiscal 2021 Acquisitions</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On February 21, 2020, Descartes acquired all of the shares of Peoplevox Limited (“Peoplevox”), a UK-based provider of cloud-based ecommerce warehouse management solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$24.1</span><span style="font-family:'Verdana';"> 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 </span><span style="font-family:'Verdana';">$0.4</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.4</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended January 31, 2021 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June 10, 2020 Descartes acquired all of the shares of Cracking Logistics Limited (“Kontainers”), a UK-based provider of client-facing digital freight execution platforms. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$5.2</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to </span><span style="font-family:'Verdana';">$6.0</span><span style="font-family:'Verdana';"> million in cash is payable if certain revenue performance targets are met by Kontainers in the </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> following the acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$1.4</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended July 31, 2021 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On November 6, 2020, Descartes acquired all of the shares of ShipTrack Inc. (“ShipTrack”), a provider of cloud-based mobile resource management and shipment tracking solutions. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$19.0</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand. Additional contingent consideration of up to CAD </span><span style="font-family:'Verdana';">25.0</span><span style="font-family:'Verdana';"> million in cash is payable if certain revenue performance targets are met by ShipTrack in the </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> following the acquisition. The fair value of the contingent consideration was valued at </span><span style="font-family:'Verdana';">$2.8</span><span style="font-family:'Verdana';"> million at the acquisition date. The gross contractual amount of trade receivables acquired was </span><span style="font-family:'Verdana';">$1.7</span><span style="font-family:'Verdana';"> million with a fair value of </span><span style="font-family:'Verdana';">$1.7</span><span style="font-family:'Verdana';"> million at the date of acquisition. Our acquisition date estimate of contractual cash flows not expected to be collected was nominal. The purchase price was finalized in the three month period ended October 31, 2021 with no adjustments.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The final purchase price allocations for businesses we acquired during 2021 are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ShipTrack</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to Peoplevox (</span><span style="font-family:'Verdana';">$1,634</span><span style="font-family:'Verdana';">), Kontainers (overdraft of </span><span style="font-family:'Verdana';">$13</span><span style="font-family:'Verdana';">) and ShipTrack (</span><span style="font-family:'Verdana';">$529</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,137</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,237</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 19,029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 48,403</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Consideration payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,825</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,239</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (42)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (87)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (65)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,095</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,677</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 485</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,853</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,807</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 151</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 151</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (776)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,074)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (693)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,543)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (748)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (102)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (204)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,054)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (151)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (151)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liability</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,615)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (4,012)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (5,627)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (728)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (728)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,654)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (707)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (3,784)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (7,145)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,631</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,905</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,336</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7,651</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,753</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 107</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 285</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 80</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 291</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 656</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 15,182</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,461</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,327</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 28,970</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,095</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,677</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">The acquired intangible assets are being amortized over their estimated useful lives as follows:</span><span style="font-family:'Verdana';"><br/></span><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ShipTrack</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">10 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">12 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">The goodwill on the Peoplevox, Kontainers and ShipTrack acquisitions arose as a result of the combined strategic value to our growth plan. The goodwill arising from the Peoplevox, Kontainers and ShipTrack acquisitions are not deductible for tax purposes.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Pro Forma Results of Operations (Unaudited)</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The financial information in the table below summarizes selected results of operations on a pro forma basis as if we had acquired Supply Vision, XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb as of February 1, 2020.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">This pro forma information is for information purposes only and does not purport to represent what our actual results of operations for the periods presented would have been had the acquisitions of Supply Vision, </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">XPS, Foxtrot, NetCHB, GreenMile, Portrix and QuestaWeb occurred at February 1, 2020, or to project our results of operations for any future period.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 495,874</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 461,864</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 393,322</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 103,700</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 91,398</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 49,315</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.22</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.08</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.58</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.20</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.06</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.58</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> 38700000 60000000.0 P2Y 13900000 100000 100000 4200000 700000 700000 61100000 75000000.0 P2Y 9400000 1500000 1500000 12000000.0 3000000.0 P2Y 2700000 300000 300000 1900000 20800000 6600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to NetCHB (</span><span style="font-family:'Verdana';">$658</span><span style="font-family:'Verdana';">), Foxtrot (</span><span style="font-family:'Verdana';">Nil</span><span style="font-family:'Verdana';white-space:pre-wrap;">), XPS (</span><span style="font-family:'Verdana';">$3,932</span><span style="font-family:'Verdana';">) and Supply Vision (</span><span style="font-family:'Verdana';">$413</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 38,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,228</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 61,096</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 11,573</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 115,561</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,948</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,425</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,670</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,043</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 51</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 978</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (137)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 958</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,106</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,562</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 835</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 703</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,456</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (367)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (22)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,483)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (658)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,530)</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (336)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,196)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (132)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,664)</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 477</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,230)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (87)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (738)</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 10,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 650</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 22,150</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,640</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 20,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 40,440</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 194</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,900</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,797</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,527</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,529</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,763</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 78,616</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,663</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,294</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 71,499</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,106</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 142,562</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;background:#ffff00;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Green</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Mile</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to QuestaWeb (</span><span style="font-family:'Verdana';">$2,097</span><span style="font-family:'Verdana';">), Portrix (</span><span style="font-family:'Verdana';">$200</span><span style="font-family:'Verdana';">) and GreenMile (</span><span style="font-family:'Verdana';">$1,552</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,860</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25,188</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29,230</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 90,278</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,339</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,339</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments payable / (receivable)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (54)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (308)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (345)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,877</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25,134</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 32,261</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 93,272</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 714</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 810</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,186</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,710</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 78</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 89</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 167</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 123</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 374</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 497</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Other long-term assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 242</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 242</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (170)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (871)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,498)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,539)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (736)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (499)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (909)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,144)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (123)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (374)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (497)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liability</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (5,185)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (752)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (5,937)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (365)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (365)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,062)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,062)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (114)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (6,807)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,007)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (7,928)</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12.25pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,014</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,700</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,514</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12.25pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,900</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,286</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35,186</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12.25pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 122</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 322</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 12pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 487</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 500</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,487</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,691</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 15,032</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,968</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 49,691</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 35,877</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 25,134</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 32,261</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 93,272</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ShipTrack</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Purchase price consideration:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Cash, less cash acquired related to Peoplevox (</span><span style="font-family:'Verdana';">$1,634</span><span style="font-family:'Verdana';">), Kontainers (overdraft of </span><span style="font-family:'Verdana';">$13</span><span style="font-family:'Verdana';">) and ShipTrack (</span><span style="font-family:'Verdana';">$529</span><span style="font-family:'Verdana';">)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,137</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,237</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 19,029</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 48,403</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Consideration payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,414</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,825</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4,239</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Net working capital adjustments (receivable) / payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (42)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (87)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 64</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (65)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,095</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,677</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Allocated to:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current assets, excluding cash acquired</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 485</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 469</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,853</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,807</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Right-of-use assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 151</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 151</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (776)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,074)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (693)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,543)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (748)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (102)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (204)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,054)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (151)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (151)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferred income tax liability</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,615)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (4,012)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (5,627)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Debt</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (728)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (728)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Net tangible assets (liabilities) assumed</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (2,654)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (707)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (3,784)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (7,145)</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Finite life intangible assets acquired:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,631</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 800</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,905</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,336</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7,651</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,000</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 11,102</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,753</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 107</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 285</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 80</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 291</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 656</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Goodwill</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 15,182</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3,461</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,327</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 28,970</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,095</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,664</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21,918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.04%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 52,677</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 658000 0 3932000 413000 38664000 4228000 61096000 11573000 115561000 13948000 9425000 2670000 26043000 51000 66000 978000 -137000 958000 52663000 4294000 71499000 14106000 142562000 469000 835000 2449000 703000 4456000 367000 22000 1483000 658000 2530000 336000 2196000 132000 2664000 102000 477000 -1230000 -87000 -738000 10900000 650000 8100000 2500000 22150000 14100000 1640000 20000000 4700000 40440000 64000 100000 30000 194000 700000 1000000 200000 1900000 26797000 1527000 43529000 6763000 78616000 52663000 4294000 71499000 14106000 142562000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Supply</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">NetCHB</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Foxtrot</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">XPS</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Vision</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">11 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">9 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">QuestaWeb</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Portrix</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">GreenMile</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Peoplevox</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Kontainers</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">ShipTrack</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">10 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">12 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">13 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">6 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">N/A</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">3 years</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">5 years</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> P13Y P13Y P11Y P11Y P6Y P6Y P6Y P6Y P2Y P2Y P9Y P5Y P5Y P5Y 35900000 600000 500000 100000 25200000 20700000 700000 700000 29200000 10000000.0 P2Y 3300000 1100000 1000000.0 100000 2097000 200000 1552000 35860000 25188000 29230000 90278000 3339000 3339000 17000 -54000 -308000 -345000 35877000 25134000 32261000 93272000 714000 810000 2186000 3710000 78000 89000 167000 123000 374000 497000 242000 242000 170000 871000 1498000 2539000 736000 499000 909000 2144000 123000 374000 497000 5185000 752000 5937000 365000 365000 1062000 1062000 -114000 -6807000 -1007000 -7928000 4800000 4014000 5700000 14514000 8900000 12286000 14000000 35186000 100000 122000 100000 322000 500000 487000 500000 1487000 21691000 15032000 12968000 49691000 35877000 25134000 32261000 93272000 P13Y P13Y P13Y P6Y P6Y P6Y P3Y P3Y P3Y P5Y P2Y P5Y 24100000 400000 400000 5200000 6000000.0 P2Y 1400000 200000 200000 19000000.0 25000000.0 P2Y 2800000 1700000 1700000 1634000 13000 529000 24137000 5237000 19029000 48403000 100000 100000 1414000 2825000 4239000 -42000 -87000 64000 -65000 24095000 6664000 21918000 52677000 485000 469000 1853000 2807000 151000 151000 776000 1074000 693000 2543000 748000 102000 204000 1054000 151000 151000 1615000 4012000 5627000 728000 728000 -2654000 -707000 -3784000 -7145000 3631000 800000 3905000 8336000 7651000 3000000 11102000 21753000 30000 77000 107000 285000 80000 291000 656000 15182000 3461000 10327000 28970000 24095000 6664000 21918000 52677000 P10Y P12Y P13Y P6Y P5Y P6Y P3Y P3Y P5Y P5Y P5Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 495,874</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 461,864</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 393,322</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 103,700</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 91,398</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 49,315</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.22</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.08</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.58</span></p></td></tr><tr><td style="vertical-align:bottom;width:63.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.20</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.06</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.58</span></p></td></tr></table> 495874000 461864000 393322000 103700000 91398000 49315000 1.22 1.08 0.58 1.20 1.06 0.58 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 4 – Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">ASC Topic 820 “Fair Value Measurements and Disclosures” (Topic 820) defines fair value as the price that would be received upon sale of an asset or paid upon transfer of a liability in an orderly transaction between market participants at the measurement date and in the principal or most advantageous market for that asset or liability. The fair value, in this context, should be calculated based on assumptions that market participants would use in pricing the asset or liability, not on assumptions specific to the entity. In addition, the fair value of liabilities should include consideration of non-performance risk, including our own credit risk.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Topic 820 establishes a fair value hierarchy which prioritizes the inputs used in the valuation methodologies in measuring fair value into three levels:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 1—inputs are based upon unadjusted quoted prices for identical instruments traded in active markets.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 2—inputs are based upon quoted prices for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-based valuation techniques for which all significant assumptions are observable in the market or can be corroborated by observable market data for substantially the full term of the assets or liabilities.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-style:normal;font-weight:normal;">Level 3—inputs 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.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The carrying amounts of the Company’s cash, accounts receivable (net), accounts payable, accrued liabilities and income taxes payable approximate their fair value (a Level 2 measurement) due to their short maturities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company’s financial instruments measured at fair value on a recurring basis as of January 31, 2023:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,610</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,610</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table shows the Company’s financial instruments measured at fair value on a recurring basis as of January 31, 2022:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,863</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,863</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,990</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,990</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The Company enters into equity derivative contracts including floating-rate equity forwards to substantially offset the potential fluctuations of certain future share-based compensation expenses. The equity derivative contracts are not designated as hedge instruments and the Company does not hold derivatives for speculative purposes. As at January 31, 2023, we had equity derivatives for </span><span style="font-family:'Verdana';">281,768</span><span style="font-family:'Verdana';"> Descartes common shares with a weighted average price of $</span><span style="font-family:'Verdana';">31.35</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The fair value of equity contract derivatives is determined utilizing a valuation model based on the quoted market value of our common shares at the balance sheet date (Level 2 fair value inputs). The fair value of equity contract derivatives is recorded as other current assets and gains and losses are recorded in general and administrative expenses in the consolidated financial statements. For the years ended January 31, 2023, 2022 and 2021, we recognized an expense (recovery) in general and administrative expenses of</span><span style="font-family:'Verdana';"> </span><span style="font-family:'Verdana';">($1.3)</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">($2.9)</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">($3.4)</span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Estimates of the fair value of contingent consideration is performed by the Company on a quarterly basis. Key unobservable inputs include </span><span style="-sec-ix-hidden:Hidden_K-yHbvOVqk6y0Pej-uc_lw;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">revenue</span></span><span style="font-family:'Verdana';"> </span><span style="-sec-ix-hidden:Hidden_Y31CntOv0U6ujHq2Hb_1Ig;"><span style="font-family:'Verdana';font-size:10pt;font-style:normal;font-weight:normal;">growth</span></span><span style="font-family:'Verdana';"> rates and the discount rates applied (</span><span style="font-family:'Verdana';">10</span><span style="font-family:'Verdana';">% to </span><span style="font-family:'Verdana';">13</span><span style="font-family:'Verdana';">%). The estimated fair value increases as the annual revenue growth rate increases and as the discount rate decreases and vice versa.The following table presents the changes in the fair value measurements of the contingent consideration in Level 3 of the fair value hierarchy:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,671</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,339</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,070</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (90)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,043</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (10,782)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,804</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (106)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,610</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,610</b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td></tr><tr><td style="vertical-align:bottom;width:56.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Assets:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Equity derivative contracts</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,863</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,863</b></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Liabilities:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:57.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,990</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,990</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 11610000 11610000 30949000 30949000 10863000 10863000 12990000 12990000 281768 31.35 -1300000 -2900000 -3400000 10 13 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,671</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,339</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,070</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (90)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,043</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Cash payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (10,782)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Charges through profit or loss</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,804</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (106)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td></tr></table> 4671000 3339000 5070000 -90000 12990000 26043000 -10782000 2804000 -106000 30949000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 5 – Trade Accounts Receivable</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46,718</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,565</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,545)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,860)</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45,173</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,705</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Included in accounts receivable are unbilled receivables in the amount of </span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million as at January 31, 2023 (</span><span style="font-family:'Verdana';">$0.5</span><span style="font-family:'Verdana';"> million as at January 31, 2022). </span><span style="font-family:'Verdana';">No single customer accounted for more than </span><span style="font-family:'Verdana';">10%</span><span style="font-family:'Verdana';"> of the accounts receivable balance as of January 31, 2023 and 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the provision for credit losses as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 2,330</span></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Current period provision for expected losses </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 1,007</span></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (1,456)</span></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (21)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,860</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,068</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,341)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (42)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,545</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 46,718</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 43,565</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Less: Provision for credit losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,545)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,860)</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45,173</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 41,705</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 46718000 43565000 1545000 1860000 45173000 41705000 300000 500000 0.10 0.10 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Provision</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">for Credit</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Losses</b></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 2,330</span></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Current period provision for expected losses </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 1,007</span></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (1,456)</span></p></td></tr><tr><td style="vertical-align:middle;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (21)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,860</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current period provision for expected losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,068</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Write-offs charged against the provision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,341)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (42)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,545</b></p></td></tr></table> 2330000 1007000 1456000 -21000 1860000 1068000 1341000 -42000 1545000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 6 – Other Receivables</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net working capital adjustments receivable from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 384</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 309</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,274</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,766</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,658</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,075</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other receivables include receivables related to sales and use taxes, income taxes, non-trade receivables and contract assets. At January 31, 2023, </span><span style="font-family:'Verdana';">$0.4</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.3</span><span style="font-family:'Verdana';"> million as at January 31, 2022) of the net working capital adjustments receivable from acquisitions is recoverable from amounts held in escrow related to the respective acquisitions.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net working capital adjustments receivable from acquisitions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 384</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 309</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,274</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 13,766</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,658</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 14,075</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 384000 309000 11274000 13766000 11658000 14075000 400000 300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 7 – Inventory</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">At January 31, 2023 and January 31, 2022, inventory is entirely comprised of finished goods inventory. Finished goods inventory primarily consists of hardware and related parts for mobile asset units held for sale. For the years ended January 31, 2023, 2022 and 2021, a nominal provision for excess or obsolete inventories has been recorded in cost of revenues</span><span style="font-family:'Verdana';">.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 8 – Property and Equipment</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 44,304</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40,937</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,533</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,553</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,076</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 822</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,936</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,635</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 358</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 524</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 49,207</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 34,275</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 31,660</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,283</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,257</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 660</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 531</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,555</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,206</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37,773</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 34,654</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,434</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,817</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 11.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 44,304</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 40,937</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,533</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,553</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,076</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 822</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,936</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,635</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Assets under construction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 358</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 524</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 49,207</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45,471</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated depreciation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Computer equipment and software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 34,275</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 31,660</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Furniture and fixtures</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,283</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,257</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 660</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 531</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Equipment installed with customers</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,555</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,206</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37,773</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 34,654</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 11,434</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 10,817</span></p></td></tr></table> 44304000 40937000 1533000 1553000 1076000 822000 1936000 1635000 358000 524000 49207000 45471000 34275000 31660000 1283000 1257000 660000 531000 1555000 1206000 37773000 34654000 11434000 10817000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 9 - Intangible Assets</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 268,712</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 251,402</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355,695</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 326,411</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,026</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9,038</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,893</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,306</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 647,326</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 599,157</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 151,016</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 135,380</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 248,867</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 218,953</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,318</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,677</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,317</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,538</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 417,518</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 369,548</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 229,808</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 229,609</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Intangible assets related to our acquisitions are recorded at their fair value at the acquisition date. The change in intangible assets during the year ended January 31, 2023 is primarily due to the acquisitions of NetCHB, Foxtrot, XPS and Supply Vision offset by amortization. The balance of the change in intangible assets is due to foreign currency translation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Intangible assets with a finite life are amortized into income over their useful lives. Amortization expense for existing intangible assets is expected to be </span><span style="font-family:'Verdana';">$229.8</span><span style="font-family:'Verdana';"> million over the following periods: </span><span style="font-family:'Verdana';">$49.4</span><span style="font-family:'Verdana';"> million for 2024, </span><span style="font-family:'Verdana';">$46.5</span><span style="font-family:'Verdana';"> million for 2025, </span><span style="font-family:'Verdana';">$42.3</span><span style="font-family:'Verdana';"> million for 2026, </span><span style="font-family:'Verdana';">$27.7</span><span style="font-family:'Verdana';"> million for 2027, </span><span style="font-family:'Verdana';">$20.6</span><span style="font-family:'Verdana';"> million for 2028 and </span><span style="font-family:'Verdana';">$43.3</span><span style="font-family:'Verdana';"> million thereafter. Expected future amortization expense is subject to fluctuations in foreign exchange rates and assumes no future adjustments to acquired intangible assets.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 268,712</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 251,402</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 355,695</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 326,411</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,026</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9,038</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,893</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,306</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 647,326</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 599,157</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accumulated amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Customer agreements and relationships</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 151,016</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 135,380</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Existing technology</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 248,867</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 218,953</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Trade names</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,318</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,677</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Non-compete covenants</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 10,317</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,538</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 417,518</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 369,548</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 229,808</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 229,609</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 268712000 251402000 355695000 326411000 9026000 9038000 13893000 12306000 647326000 599157000 151016000 135380000 248867000 218953000 7318000 6677000 10317000 8538000 417518000 369548000 229808000 229609000 229800000 49400000 46500000 42300000 27700000 20600000 43300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 10 – Goodwill</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Goodwill is recorded when the consideration paid for an acquisition of a business exceeds the fair value of identifiable net tangible and intangible assets acquired. The following table summarizes the changes in goodwill since January 31, 2021:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 608,761</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 565,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of QuestaWeb</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 21,691</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Portrix </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,032</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GreenMile</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,968</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of NetCHB</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,797</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Foxtrot</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,527</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of XPS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43,529</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Supply Vision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,763</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (11,730)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (6,107)</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 675,647</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 608,761</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at beginning of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 608,761</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 565,177</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of QuestaWeb</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 21,691</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Portrix </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 15,032</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of GreenMile</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,968</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of NetCHB</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26,797</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Foxtrot</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,527</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of XPS</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 43,529</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Acquisition of Supply Vision</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,763</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments on account of foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (11,730)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (6,107)</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at end of period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 675,647</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 608,761</span></p></td></tr></table> 608761000 565177000 21691000 15032000 12968000 26797000 1527000 43529000 6763000 -11730000 -6107000 675647000 608761000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 11 - Accrued Liabilities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,536</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">32,169</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued contingent acquisition consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,619</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">1,318</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,205</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">9,965</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 80,309</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;">56,442</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities include accrued expenses related to third party resellers and royalties, suppliers, and accrued restructuring charges.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued compensation and benefits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,536</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">32,169</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued contingent acquisition consideration</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,949</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Accrued professional fees</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,619</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">1,318</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Other accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 12,205</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">9,965</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 80,309</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;">56,442</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:72.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 35536000 32169000 30949000 12990000 1619000 1318000 12205000 9965000 80309000 56442000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 12 – Long-Term Debt</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have a senior secured revolving credit facility in place with a syndicate of lenders. The facility is a </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million revolving operating credit facility to be available for general corporate purposes, including the financing of ongoing working capital needs and acquisitions. On December 7, 2022, we amended our credit facility to extend the maturity date from January 2024 to December 2027. The credit facility has a </span><span style="font-family:'Verdana';">five-year</span><span style="font-family:'Verdana';"> maturity with no fixed repayment dates prior to the end of the term. The total available amount under the facility of </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million remains unchanged and with the approval of the lenders, the credit facility can be expanded to a total of </span><span style="font-family:'Verdana';">$500.0</span><span style="font-family:'Verdana';"> million. Borrowings under the credit facility are secured by a first 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, Canadian Dollar Offered Rate (CDOR) or the Secured Overnight Financing Rate (SOFR) plus an additional </span><span style="font-family:'Verdana';">0</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">250</span><span style="font-family:'Verdana';"> basis points based on the ratio of net debt to adjusted earnings before interest, taxes, depreciation and amortization, as defined in the credit facility. There were no other significant changes to the terms of the credit facility. A standby fee of between </span><span style="font-family:'Verdana';">20</span><span style="font-family:'Verdana';"> to </span><span style="font-family:'Verdana';">40</span><span style="font-family:'Verdana';"> basis points will be charged on all undrawn amounts. The credit facility contains certain customary representations, warranties and guarantees, and covenants.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> amounts were drawn on the credit facility as of January 31, 2023 and the balance of </span><span style="font-family:'Verdana';">$350.0</span><span style="font-family:'Verdana';"> million is available for use. We were in compliance with the covenants of the credit facility as of January 31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">As at January 31, 2023, we had outstanding letters of credit of approximately </span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.2</span><span style="font-family:'Verdana';"> million as at January 31, 2022), which were not related to our credit facility.</span></p> 350000000.0 P5Y 350000000.0 500000000.0 0 0.0250 0.0020 0.0040 0 350000000.0 200000 200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 13 – Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have operating leases for buildings, vehicles and computer equipment. Our leases have remaining terms of up to </span><span style="font-family:'Verdana';">6 years</span><span style="font-family:'Verdana';">, some of which include options to extend the leases for up to </span><span style="font-family:'Verdana';">5 years</span><span style="font-family:'Verdana';">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The components of operating lease expense were as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,182</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,466</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,590</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">636</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">432</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">502</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,818</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,898</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5,092</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental cash flow information related to operating leases was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,240</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,857</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,831</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New ROU assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">864</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2,548</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2,337</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Supplemental information related to operating leases was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2.1</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Maturities of operating lease liabilities were as follows as of January 31, 2023:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,569</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2,498</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">994</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">347</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">120</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2029 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">59</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">7,587</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (267)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">7,320</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,397</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,923</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> P6Y P5Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,182</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,466</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,590</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Short-term lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">636</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">432</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">502</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total operating lease cost</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,818</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,898</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">5,092</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating cash outflows from operating leases included in measurement of lease liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">4,240</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,857</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">4,831</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">New ROU assets obtained in exchange for lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">864</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2,548</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2,337</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average remaining lease term (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.6</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Weighted average discount rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2.1</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 4182000 4466000 4590000 636000 432000 502000 4818000 4898000 5092000 4240000 4857000 4831000 864000 2548000 2337000 P2Y7M6D P3Y3M18D 0.024 0.021 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Operating</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Years Ended January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Leases</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,569</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2,498</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">994</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">347</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">120</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">2029 and thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">59</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease payments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">7,587</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Less: imputed interest</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (267)</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Total lease obligations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">7,320</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,397</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">3,923</b></p></td></tr></table> 3569000 2498000 994000 347000 120000 59000 7587000 267000 7320000 3397000 3923000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 14 - Commitments, Contingencies and Guarantees</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Commitments</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As described in Note 2 to these consolidated financial statements, we maintain deferred share unit (“DSU”) and cash-settled restricted share unit (“CRSU”) plans for our directors and employees. Any payments made pursuant to these plans are settled in cash. For DSUs and CRSUs, the units vest over time and the liability recognized at any given consolidated balance sheet date reflects only those units vested at that date that have not yet been settled in cash. As such, we had an unrecognized aggregate liability for the unvested DSUs and CRSUs of </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million, respectively, at January 31, 2023. The ultimate liability for any payment of DSUs and CRSUs is dependent on the trading price of our common shares. To substantially offset our exposure to fluctuations in our stock price, we have entered into equity derivative contracts, including floating-rate equity forwards. As at January 31, 2023, we had equity derivatives for </span><span style="font-family:'Verdana';">281,768</span><span style="font-family:'Verdana';"> Descartes common shares and a DSU liability for </span><span style="font-family:'Verdana';">283,338</span><span style="font-family:'Verdana';"> Descartes common shares, resulting in minimal net exposure resulting from changes to our share price.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Contingencies</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We are subject to a variety of other claims and suits that arise from time to time in the ordinary course of our business. The consequences of these matters are not presently determinable but, in the opinion of management after consulting with legal counsel, the ultimate aggregate potential liability is not currently expected to have a material effect on our results of operations or financial position.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Product Warranties</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we provide our customers with product warranties relating to the performance of our hardware, software and services. To date, we have not encountered material costs as a result of such obligations and have not accrued any liabilities related to such obligations in our consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Business combination agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In respect of our acquisitions of GreenMile, NetCHB, XPS and Supply Vision, up to </span><span style="font-family:'Verdana';">$148.0</span><span style="font-family:'Verdana';"> million in cash may become payable if certain revenue performance targets are met in the </span><span style="font-family:'Verdana';">two years</span><span style="font-family:'Verdana';"> following the acquisition. </span><span style="font-family:'Verdana';">A balance of </span><span style="font-family:'Verdana';">$30.9</span><span style="font-family:'Verdana';"> million is accrued related to the fair value of this contingent consideration as at January 31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt;"><span style="font-family:'Verdana';">Guarantees</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of business, we enter into a variety of agreements that may contain features that meet the definition of a guarantee under ASC Topic 460, “Guarantees”. The following lists our significant guarantees:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Intellectual property indemnification obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We provide indemnifications of varying scope to our customers against claims of intellectual property infringement made by third parties arising from the use of our products. In the event of such a claim, we are generally obligated to defend our customers against the claim and we are liable to pay damages and costs assessed against our customers that are payable as part of a final judgment or settlement. These intellectual property infringement indemnification clauses are not generally subject to any dollar limits and remain in force for the term of our license agreement with our customer, which license terms are typically perpetual. Historically, we have not encountered material costs as a result of such indemnification obligations.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Other indemnification agreements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">In the normal course of operations, we enter into various agreements that provide general indemnities. These indemnities typically arise in connection with purchases and sales of assets, securities offerings or buy-backs, service contracts, administration of employee benefit plans, retention of officers and directors, membership agreements, customer financing transactions, and leasing transactions. In addition, our corporate by-laws provide for the indemnification of our directors and officers. Each of these indemnities requires us, in certain circumstances, to compensate the counterparties for various costs resulting from breaches of representations or obligations under such arrangements, or as a result of third party claims that may be suffered by the counterparty as a consequence of the transaction. We believe that the likelihood that we could incur significant liability under these obligations is remote. Historically, we have not made any significant payments under such indemnities.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">In evaluating estimated losses for the guarantees or indemnities described above, we consider such factors as the degree of probability of an unfavorable outcome and the ability to make a reasonable estimate of the amount of loss. We are unable to make a reasonable estimate of the maximum potential amount payable under such guarantees or indemnities as many of these arrangements do not specify a maximum potential dollar exposure or time limitation. The amount also depends on the outcome of future events and conditions, which cannot be predicted. Given the foregoing, to date, we have not accrued any liability in our consolidated financial statements for the guarantees or indemnities described above.</span></p> 0 700000 281768 283338 148000000.0 P2Y 30900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 15 – Share Capital</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On July 16, 2020, we filed a final short-form base shelf prospectus (the “2020 Base Shelf Prospectus”), allowing us to offer and issue the following securities: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">subscription receipts and/ or warrants offered together as a unit. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> securities were sold pursuant to the 2020 Base Shelf Prospectus, which was withdrawn in July 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On July 15, 2022, we filed the 2022 Base Shelf Prospectus, allowing us to offer and issue an unlimited quantity of the following securities during the </span><span style="font-family:'Verdana';">25</span><span style="font-family:'Verdana';">-month period following thereafter: (i) common shares; (ii) preferred shares; (iii) senior or subordinated unsecured debt securities; (iv) subscription receipts; (v) warrants; and (vi) securities comprised of more than one of the aforementioned common shares, preferred shares, debt securities, subscription receipts and/ or warrants offered together as a unit. These securities may be offered separately or together, in separate series, in amounts, at prices and on terms to be set forth in one or more shelf prospectus supplements. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> securities have yet been sold pursuant to the 2022 Base Shelf Prospectus.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">On June 7, 2022, Descartes announced a normal course issuer bid (“NCIB”), commencing June 10, 2022, to purchase up to approximately </span><span style="font-family:'Verdana';">7.4</span><span style="font-family:'Verdana';"> million common shares in the open market for cancellation. Under the NCIB, Descartes would be permitted to repurchase for cancellation, at its discretion on or before June 9, 2023, up to </span><span style="font-family:'Verdana';">10%</span><span style="font-family:'Verdana';"> of the “public float” (calculated in accordance with the rules of the TSX) of Descartes’ issued and outstanding common shares. Any purchases under the NCIB will be subject to the terms and limitations applicable to such NCIB, and will be made through the facilities of the TSX, Nasdaq, other designated exchanges and/or alternative Canadian trading systems, or by such other means as may be permitted by the Ontario Securities Commission or other applicable Canadian Securities Administrators. </span><span style="font-family:'Verdana';">No</span><span style="font-family:'Verdana';"> common shares have yet been purchased pursuant to the NCIB.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The following table sets forth the common shares outstanding (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,756</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,494</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,156</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Shares issued:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 262</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 338</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Issuance of common shares</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Acquisitions (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,820</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,756</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,494</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Cash flows provided from stock options and share units exercised during 2023, 2022 and 2021 were approximately </span><span style="font-family:'Verdana';">$1.7</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$2.7</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$6.2</span><span style="font-family:'Verdana';"> million, respectively.</span></p> 0 P25M 0 7400000 0.10 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">(thousands of shares)</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,756</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,494</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,156</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Shares issued:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Stock options and share units exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 64</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 262</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 338</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Issuance of common shares</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;"><span style="font-family:'Verdana';">Acquisitions (Note 3)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 84,820</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,756</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,494</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 84756000 84494000 84156000 64000 262000 338000 84820000 84756000 84494000 1700000 2700000 6200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 16 - Earnings Per Share</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table sets forth the computation of basic and diluted earnings per share (“EPS”) (number of shares in thousands):</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">102,236</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,282</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,100</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">84,791</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,591</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,360</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">455</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 482</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 358</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,205</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,127</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,038</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">86,451</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 85,756</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.21</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.02</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.62</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.18</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.00</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.61</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2023, 2022 and 2021, the application of the treasury stock method excluded </span><span style="font-family:'Verdana';">589,658</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">267,236</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">1,750</span><span style="font-family:'Verdana';"> stock options, respectively, from the calculation of diluted EPS as the assumed proceeds from the unrecognized stock-based compensation expense of such stock options that are attributed to future service periods made such stock options anti-dilutive.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">For the years ended January 31, 2023, 2022 and 2021, </span><span style="font-family:'Verdana';">1,315</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">1,000</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">71,161</span><span style="font-family:'Verdana';"> 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.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Additionally, for the years ended January 31, 2023, 2022 and 2021, the application of the treasury stock method excluded PSUs and RSUs of </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">43,002</span><span style="font-family:'Verdana';">, respectively, from the calculation of diluted EPS as the unrecognized stock-based compensation expense of such PSUs and RSUs that are attributed to future service periods made such PSUs and RSUs anti-dilutive.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Net income for purposes of calculating basic and diluted earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">102,236</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,282</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 52,100</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">84,791</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,591</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 84,360</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of employee stock options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">455</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 482</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 358</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Dilutive effect of restricted and performance share units</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,205</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,127</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,038</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Weighted average common and common equivalent shares outstanding</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">86,451</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 86,200</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 85,756</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Earnings per share</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Basic</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.21</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.02</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.62</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Diluted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.18</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1.00</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.61</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 102236000 86282000 52100000 84791000 84591000 84360000 455000 482000 358000 1205000 1127000 1038000 86451000 86200000 85756000 1.21 1.02 0.62 1.18 1.00 0.61 589658 267236 1750 1315 1000 71161 0 0 43002 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 17 - Stock-Based Compensation Plans</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Total estimated stock-based compensation expense recognized in our consolidated statement of operations was as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 940</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 732</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 319</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,468</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,060</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 896</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,788</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,419</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 404</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,471</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,806</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,694</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,667</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 11,017</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,313</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Differences between how GAAP and applicable income tax laws treat the amount and timing of recognition of stock-based compensation expense may result in a deferred tax asset. We have recorded a valuation allowance against any such deferred tax asset except for </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million at January 31, 2022) recognized in the United States. The tax benefit realized in connection with stock options exercised during 2023,2022 and 2021 was nominal, </span><span style="font-family:'Verdana';">$0.1</span><span style="font-family:'Verdana';"> million and nominal, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Stock Options</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2023, we had </span><span style="font-family:'Verdana';">1,593,433</span><span style="font-family:'Verdana';"> stock options granted and outstanding under our shareholder-approved stock option plan and </span><span style="font-family:'Verdana';">2,703,675</span><span style="font-family:'Verdana';"> remained available for grant.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2023, </span><span style="font-family:'Verdana';">$7.7</span><span style="font-family:'Verdana';"> 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 </span><span style="font-family:'Verdana';">2.6</span><span style="font-family:'Verdana';"> years. The total fair value of stock options vested during 2023 was </span><span style="font-family:'Verdana';">$4.2</span><span style="font-family:'Verdana';"> million. The total number of options granted during the years ended January 31, 2023,2022 and 2021 was </span><span style="font-family:'Verdana';">356,014</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">271,025</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">381,859</span><span style="font-family:'Verdana';">, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The weighted average grant-date fair value of options granted during the years ended January 31, 2023, 2022 and 2021 was </span><span style="font-family:'Verdana';">$18.47</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">$16.77</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">$10.19</span><span style="font-family:'Verdana';"> per option, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The weighted-average assumptions were as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">—</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">—</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">—</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 27.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">A summary of option activity under all of our plans is presented as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">1,147,720</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33.77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;">4.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">28.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">271,025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 65.03</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (90,166)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29.38</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (9,300)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 53.94</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,319,279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42.35</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 356,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.09</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (63,890)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (17,970)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 52.98</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,593,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.7</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,593,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.7</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;">Exercisable at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,104,612</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">40.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.4</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The total intrinsic value of options exercised during the years ended January 31, 2023, 2022 and 2021 was approximately </span><span style="font-family:'Verdana';">$2.5</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$3.7</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$10.8</span><span style="font-family:'Verdana';"> million, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Options outstanding and options exercisable as at January 31, 2023 by range of exercise price are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:34.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:23.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span><b style="font-family:'Verdana';font-weight:bold;">Options Exercisable</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Weighted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Weighted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Average</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Weighted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Average</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Number of</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Remaining</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Average</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Number of</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Exercise</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Stock</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Contractual</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Exercise</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Stock</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Range of Exercise Prices</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Price</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Price</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Options</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$18.95</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$22.86</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21.75</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 148,153</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 0.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21.75</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 148,153</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$26.24</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$27.85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 27.85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 166,350</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 27.85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 166,350</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$38.53</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$54.25</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 39.53</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 625,310</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 39.12</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 525,872</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$56.31</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$68.49</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61.19</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 653,620</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61.11</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 264,237</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,593,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 40.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,104,612</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">A summary of the status of our unvested stock options under our shareholder-approved stock option plan as of January 31, 2023 is presented as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Grant-Date </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock Options </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fair Value per </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 501,655</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9.52</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 271,025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16.77</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (300,527)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 11.42</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (9,300)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13.54</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 462,853</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13.16</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 356,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 18.47</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (313,186)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13.72</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (16,860)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.71</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 488,821</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16.11</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Performance Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of PSU activity is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 755,873</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25.17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 44.0</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77,441</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 88.11</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 44,296</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 36.63</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (100,072)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9.66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 777,538</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35.76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 57.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 97,991</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 64.98</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,704</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 38.41</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 38.41</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 654,467</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48.6</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2023) that would have been received by PSU holders if all PSUs had been vested on January 31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2023, </span><span style="font-family:'Verdana';">$6.6</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">1.0</span><span style="font-family:'Verdana';"> years. The total fair value of PSUs vested during 2023 was </span><span style="font-family:'Verdana';">$5.2</span><span style="font-family:'Verdana';"> million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Restricted Share Units</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of RSU activity is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 432,195</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 19.98</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 50,099</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 65.33</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (71,314)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7.14</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 410,980</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29.17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63,651</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35.2</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35.2</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 415,496</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 28.26</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30.8</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">The aggregate intrinsic values represent the total pre-tax intrinsic value (the aggregate closing share price of our common shares on January 31, 2023) that would have been received by RSU holders if all RSUs had been vested on January 31, 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2023, </span><span style="font-family:'Verdana';">$3.5</span><span style="font-family:'Verdana';"> million of total unrecognized compensation costs related to non-vested awards is expected to be recognized over a weighted average period of </span><span style="font-family:'Verdana';">1.7</span><span style="font-family:'Verdana';"> years. The total fair value of RSUs vested during 2023 was </span><span style="font-family:'Verdana';">$3.3</span> <span style="font-family:'Verdana';">million.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2023, the total number of DSUs held by participating directors was </span><span style="font-family:'Verdana';">283,338</span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';">252,011</span><span style="font-family:'Verdana';"> at January 31, 2022), representing an aggregate accrued liability of </span><span style="font-family:'Verdana';">$20.6</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$18.3</span><span style="font-family:'Verdana';"> million at January 31, 2022). During 2023, </span><span style="font-family:'Verdana';">31,327</span><span style="font-family:'Verdana';"> DSUs were granted and </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> DSUs were redeemed and settled in cash. As at January 31, 2023, the unrecognized aggregate liability for the unvested DSUs was </span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> (</span><span style="font-family:'Verdana';">nil</span><span style="font-family:'Verdana';"> at January 31, 2022). 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</span> <span style="font-family:'Verdana';">in our consolidated statements of operations was approximately </span><span style="font-family:'Verdana';">$3.2</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$4.5</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$4.6</span><span style="font-family:'Verdana';"> million for the years ended January 31, 2023, 2022 and 2021, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Cash-Settled Restricted Share Unit Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">A summary of activity under our CRSU plan is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38,628</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,776</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (26,755)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (221)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,428</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,948</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (17,719)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (74)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 14,583</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 14,583</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.4</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We recognize the compensation cost of the CRSUs ratably over the service/vesting period relating to the grant and have recorded an aggregate accrued liability of </span><span style="font-family:'Verdana';">$0.4</span><span style="font-family:'Verdana';"> million at January 31, 2023 (</span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million at January 31, 2022). As at January 31, 2023, the unrecognized aggregate liability for the unvested CRSUs was </span><span style="font-family:'Verdana';">$0.7</span><span style="font-family:'Verdana';"> million (</span><span style="font-family:'Verdana';">$1.0</span><span style="font-family:'Verdana';"> million at January 31, 2022). The fair value of the CRSU liability is based on the closing price of our common shares at the balance sheet date. The total compensation cost related to CRSUs recognized in our consolidated statements of operations was approximately </span><span style="font-family:'Verdana';">$0.8</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$1.3</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$1.1</span><span style="font-family:'Verdana';"> million for the years ended January 31, 2023, 2022 and 2021, respectively.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Cost of revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 940</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 732</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 319</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Sales and marketing</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,468</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,060</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 896</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Research and development</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,788</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,419</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 404</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">General and administrative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,471</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,806</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,694</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Effect on net income</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,667</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 11,017</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,313</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 940000 732000 319000 2468000 3060000 896000 1788000 1419000 404000 8471000 5806000 4694000 13667000 11017000 6313000 800000 700000 100000 100000 100000 1593433 2703675 7700000 P2Y7M6D 4200000 356014 271025 381859 18.47 16.77 10.19 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected dividend yield (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">—</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">—</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">—</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected volatility (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 29.2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 27.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Risk-free rate (%)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2.4</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 0.7</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Expected option life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 0.292 0.278 0.264 0.024 0.007 0.007 P5Y P5Y P5Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">1,147,720</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33.77</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;">4.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">28.1</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';">271,025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 65.03</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (90,166)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29.38</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (9,300)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 53.94</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,319,279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 42.35</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.4</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 356,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.09</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (63,890)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 27.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (17,970)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 52.98</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,593,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.7</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,593,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.7</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';white-space:pre-wrap;">Exercisable at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">1,104,612</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">40.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 37.4</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 1147720 33.77 P4Y10M24D 28100000 271025 65.03 90166 29.38 9300 53.94 1319279 42.35 P4Y4M24D 41500000 356014 61.09 63890 27.34 17970 52.98 1593433 45.54 P4Y1M6D 45700000 1593433 45.54 P4Y1M6D 45700000 1104612 40.35 P3Y6M 37400000 2500000 3700000 10800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="6" style="vertical-align:bottom;white-space:nowrap;width:34.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Options Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:23.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span><b style="font-family:'Verdana';font-weight:bold;">Options Exercisable</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Weighted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Weighted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Average</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Weighted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Average</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Number of</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Remaining</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Average</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Number of</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Exercise</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Stock</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Contractual</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Exercise</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Stock</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Range of Exercise Prices</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Price</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Options</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Life (years)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Price</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">Options</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$18.95</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$22.86</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21.75</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 148,153</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 0.9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 21.75</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 148,153</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$26.24</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$27.85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 27.85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 166,350</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2.2</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 27.85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 166,350</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$38.53</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$54.25</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 39.53</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 625,310</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 3.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 39.12</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 525,872</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">$56.31</span><span style="font-family:'Verdana';"> – </span><span style="font-family:'Verdana';">$68.49</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61.19</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 653,620</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 61.11</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 264,237</span></p></td></tr><tr><td style="vertical-align:bottom;width:38.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 45.54</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,593,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 40.35</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.16%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,104,612</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 18.95 22.86 21.75 148153 P0Y10M24D 21.75 148153 26.24 27.85 27.85 166350 P2Y2M12D 27.85 166350 38.53 54.25 39.53 625310 P3Y8M12D 39.12 525872 56.31 68.49 61.19 653620 P5Y8M12D 61.11 264237 45.54 1593433 P4Y1M6D 40.35 1104612 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Grant-Date </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Stock Options </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Fair Value per </b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 501,655</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9.52</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 271,025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16.77</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (300,527)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 11.42</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (9,300)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13.54</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 462,853</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13.16</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 356,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 18.47</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Vested</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (313,186)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13.72</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (16,860)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.71</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 488,821</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 16.11</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 501655 9.52 271025 16.77 300527 11.42 9300 13.54 462853 13.16 356014 18.47 313186 13.72 16860 3.71 488821 16.11 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">PSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 755,873</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25.17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 44.0</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 77,441</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 88.11</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 44,296</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 36.63</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (100,072)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 9.66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 777,538</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 35.76</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.8</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 57.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 97,991</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 64.98</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Performance units issued</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 39,704</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 54.34</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 38.41</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 915,233</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 38.41</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67.9</b></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:49.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 654,467</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 48.6</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 755873 25.17 P4Y8M12D 44000000.0 77441 88.11 44296 36.63 100072 9.66 777538 35.76 P4Y9M18D 57400000 97991 64.98 39704 54.34 915233 38.41 P4Y6M 67900000 915233 38.41 P4Y6M 67900000 654467 26.77 P3Y1M6D 48600000 6600000 P1Y 5200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Granted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">RSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Date Fair</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">(in</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> millions)</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 432,195</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 19.98</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 4.7</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 25.2</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 50,099</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 65.33</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (71,314)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 7.14</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 410,980</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 29.17</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5.0</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 30.3</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63,651</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 61.53</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Exercised</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35.2</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Vested or expected to vest at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 474,631</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32.44</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.7</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35.2</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Exercisable at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 415,496</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 28.26</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 4.1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">$</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30.8</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 432195 19.98 P4Y8M12D 25200000 50099 65.33 71314 7.14 410980 29.17 P5Y 30300000 63651 61.53 474631 32.44 P4Y8M12D 35200000 474631 32.44 P4Y8M12D 35200000 415496 28.26 P4Y1M6D 30800000 3500000 P1Y8M12D 3300000 283338 252011 20600000 18300000 31327 0 0 0 3200000 4500000 4600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Weighted-</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Average</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Remaining</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">CRSUs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Outstanding</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Life (years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 38,628</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.5</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 12,776</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (26,755)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (221)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 24,428</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1.4</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Granted</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,948</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Vested and settled in cash</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (17,719)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Forfeited</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (74)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 14,583</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.4</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Non-vested at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 14,583</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.87%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1.4</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 38628 P1Y6M 12776 26755 221 24428 P1Y4M24D 7948 17719 74 14583 P1Y4M24D 14583 P1Y4M24D 400000 800000 700000 1000000.0 800000 1300000 1100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 18 - Income Taxes</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Income before income taxes is earned in the following tax jurisdictions: </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 49,158</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 36,312</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,307</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 51,268</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 32,338</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,072</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 33,302</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 33,960</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 133,728</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102,610</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 70,369</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Income tax expense is incurred in the following jurisdictions:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,673</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,817</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,875</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,085</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,689</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,050)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,490</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,308</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,921</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 28,248</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,814</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,746</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,059</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,381</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 7,047</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,888)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,941</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,537</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 73</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (8,808)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,061)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,244</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,514</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,523</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,492</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,328</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,269</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Income tax expense for 2023, 2022 and 2021 was </span><span style="font-family:'Verdana';">24%</span><span style="font-family:'Verdana';">, </span><span style="font-family:'Verdana';">16%</span><span style="font-family:'Verdana';"> and </span><span style="font-family:'Verdana';">26%</span><span style="font-family:'Verdana';"> of income before income taxes, respectively, with current income tax expense being </span><span style="font-family:'Verdana';">21</span><span style="font-family:'Verdana';">%, </span><span style="font-family:'Verdana';">14</span><span style="font-family:'Verdana';">% and </span><span style="font-family:'Verdana';">5%</span><span style="font-family:'Verdana';"> of income before income taxes, respectively.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2023 compared to 2022 primarily due to the impact of the loss restriction rules in the UK and lower tax attributes available in Canada and US to deduct against income, in 2023.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense increased in 2022 compared to 2021 primarily due to a current tax recovery in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense increased in 2023 compared to 2022 primarily due to a release in valuation allowances on tax losses carried forward in the comparative period, partially offset against a recovery of certain deferred tax attributes in the US recorded in 2023, as well as normal course changes in timing differences in Canada.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Deferred income tax expense decreased in 2022 compared to 2021 primarily due to additional deferred tax expense in 2021 related to a voluntary change in accounting for deferred revenue for income tax purposes in the United States elected by the Company as well as a release in valuation allowances recorded in 2022 related to tax losses in EMEA carried forward from previous periods.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">The components of the deferred income tax assets and liabilities are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accrued liabilities not currently deductible</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 5,506</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 5,408</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accumulated net operating losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 7,577</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 10,594</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Corporate minimum taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 2,346</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 7,400</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 12,021</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Research and development expenditures and tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 3,339</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 1,172</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 23,822</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 31,541</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (42,958)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (47,255)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Temporary difference on equity derivative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (3,077)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (2,886)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (46,035)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (50,141)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (22,213)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (18,600)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (1,704)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (1,961)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes, net of valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (23,917)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (20,561)</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As at January 31, 2023, we have not accrued for foreign withholding taxes and Canadian income taxes applicable to approximately $</span><span style="font-family:'Verdana';">755.0</span><span style="font-family:'Verdana';"> million of unremitted earnings of subsidiaries operating outside of Canada. These earnings, which we consider to be invested indefinitely, will become subject to these taxes if and when they are remitted as dividends or if we sell our stock in the subsidiaries. If we decide to repatriate the foreign earnings, we would need to adjust our income tax provision in the period we determined that the earnings will no longer be indefinitely invested outside Canada.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The provision (recovery) for income taxes varies from the expected provision at the statutory rates for the reasons detailed in the table below:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 133,728</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102,610</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 70,369</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Combined basic Canadian statutory rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">%  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense based on the above rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,438</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 27,192</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,648</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Increase (decrease) in income taxes resulting from:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Permanent differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 590</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,467</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 875</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of differences between Canadian and foreign tax rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,859)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,855)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (600)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of rate changes on current year timing differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (219)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,085)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,063)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments relating to previous periods</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (972)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (569)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,034)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase (decrease) in accruals for uncertain tax positions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,181)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (849)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,289</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (155)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (9,102)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 254</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock based compensation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other, including foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (150)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (871)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (200)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,492</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,328</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,269</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We have income tax loss carry forwards which expire as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">United</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Asia Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 175</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 175</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 63</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 34</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 762</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 223</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 882</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,504</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 385</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 28,899</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,128</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,299</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,157</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,122</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following is a tabular reconciliation of the total estimated liability associated with uncertain tax positions taken:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,354</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,393</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Gross increases – current period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 640</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 333</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lapsing due to statutes of limitations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,874)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,372)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,120</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 7,354</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We have identified accruals of $</span><span style="font-family:'Verdana';">6.1</span><span style="font-family:'Verdana';"> million with respect to uncertain tax positions as at January 31, 2023. It is possible that these accruals for uncertain tax positions will not be required in which case up to $</span><span style="font-family:'Verdana';">6.1</span><span style="font-family:'Verdana';"> 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 $</span><span style="font-family:'Verdana';">1.9</span><span style="font-family:'Verdana';"> million of the uncertain tax positions could decrease tax expense in the next 12 months relating primarily to tax years becoming statute barred for purposes of future tax examinations by local taxing jurisdictions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">We recognize accrued interest and penalties related to uncertain tax positions as a current tax expense. As at January 31, 2023 and January 31, 2022, the unrecognized tax positions have resulted in no material liability for estimated interest and penalties.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Descartes and our subsidiaries file their tax returns as prescribed by the tax laws of the jurisdictions within which they operate. We are no longer subject to income tax examinations by tax authorities in our major tax jurisdictions as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Years No Longer Subject to</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;white-space:pre-wrap;"> Audit</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Tax Jurisdiction</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States Federal</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2019 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2017 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United Kingdom</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2019 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Sweden</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Norway</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2016 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Netherlands</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2015 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Belgium</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2020 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Germany</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2017 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Switzerland</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2018 and prior</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Brazil</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:23.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2018 and prior</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 49,158</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 36,312</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 31,307</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 51,268</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 32,338</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26,072</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 33,302</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 33,960</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,990</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 133,728</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102,610</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 70,369</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 49158000 36312000 31307000 51268000 32338000 26072000 33302000 33960000 12990000 133728000 102610000 70369000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Current income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 9,673</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,817</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,875</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 13,085</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,689</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,050)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,490</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,308</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 4,921</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 28,248</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,814</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,746</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred income tax expense (recovery)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,059</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,381</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 7,047</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,888)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,941</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 9,537</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other countries</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 73</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (8,808)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,061)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,244</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,514</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 14,523</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,492</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,328</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,269</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 9673000 1817000 1875000 13085000 8689000 -3050000 5490000 4308000 4921000 28248000 14814000 3746000 5059000 8381000 7047000 -1888000 1941000 9537000 73000 -8808000 -2061000 3244000 1514000 14523000 31492000 16328000 18269000 0.24 0.16 0.26 0.21 0.14 0.05 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accrued liabilities not currently deductible</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 5,506</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 5,408</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Accumulated net operating losses</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 7,577</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 10,594</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Corporate minimum taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 2,346</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of property and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 7,400</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 12,021</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Research and development expenditures and tax credits</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 3,339</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 1,172</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> 23,822</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> 31,541</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Difference between tax and accounting basis of intangible assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (42,958)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (47,255)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Temporary difference on equity derivative</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (3,077)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (2,886)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Total deferred income tax liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (46,035)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (50,141)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (22,213)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (18,600)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (1,704)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (1,961)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;">Net deferred income taxes, net of valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-size:9.5pt;font-weight:bold;"> (23,917)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:9pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:9.5pt;"> (20,561)</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 5506000 5408000 7577000 10594000 2346000 7400000 12021000 3339000 1172000 23822000 31541000 42958000 47255000 3077000 2886000 46035000 50141000 -22213000 -18600000 1704000 1961000 -23917000 -20561000 755000000.0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income before income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 133,728</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 102,610</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 70,369</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Combined basic Canadian statutory rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 26.5</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">%  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 26.5</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">%</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense based on the above rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 35,438</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 27,192</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,648</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Increase (decrease) in income taxes resulting from:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">  </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Permanent differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 590</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,467</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 875</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of differences between Canadian and foreign tax rates</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,859)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,855)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (600)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Effect of rate changes on current year timing differences</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (219)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,085)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,063)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Adjustments relating to previous periods</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (972)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (569)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,034)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Increase (decrease) in accruals for uncertain tax positions</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,181)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (849)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 1,289</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Valuation allowance</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (155)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (9,102)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 254</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Stock based compensation</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 100</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Other, including foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (150)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (871)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (200)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:59.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income tax expense</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 31,492</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 16,328</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 18,269</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 133728000 102610000 70369000 0.265 0.265 0.265 35438000 27192000 18648000 590000 3467000 875000 -1859000 -1855000 -600000 -219000 -1085000 -1063000 -972000 -569000 -1034000 -1181000 -849000 1289000 -155000 -9102000 254000 100000 -150000 -871000 -200000 31492000 16328000 18269000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">United</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Expiry year</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Canada</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">States</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">EMEA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Asia Pacific</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2024</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 175</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 175</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2025</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 63</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2026</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> —</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2027</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 279</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 34</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 449</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 762</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2028</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 138</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> —</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 85</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 223</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Thereafter</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,128</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 882</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 19,504</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 385</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 28,899</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,128</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,299</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 19,538</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,157</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 30,122</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 175000 175000 63000 63000 279000 34000 449000 762000 138000 85000 223000 8128000 882000 19504000 385000 28899000 8128000 1299000 19538000 1157000 30122000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, beginning of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,354</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 8,393</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Gross increases – current period</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 640</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 333</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Lapsing due to statutes of limitations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (1,874)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (1,372)</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Liability, end of year</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,120</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 7,354</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 7354000 8393000 640000 333000 1874000 1372000 6120000 7354000 6100000 6100000 1900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 19 – Contract Balances, Performance Obligations and Contract Costs</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Deferred Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the deferred revenue balance as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 51,291</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (38,065)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45,234</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 729</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (489)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 58,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (48,253)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 57,605</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,188</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (841)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 69,399</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67,784</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,615</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Performance Obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">As of January 31, 2023, approximately </span><span style="font-family:'Verdana';">$343.8</span><span style="font-family:'Verdana';"> million of revenue is expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period. We expect to recognize revenue on approximately </span><span style="font-family:'Verdana';">80%</span><span style="font-family:'Verdana';"> of these remaining performance obligations over the next </span><span style="font-family:'Verdana';">24 months</span><span style="font-family:'Verdana';"> with the balance recognized thereafter.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Contract Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table presents the changes in the contract assets balance as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,353</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (730)</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 815</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,443</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (824)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,618</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (15)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,222</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';text-decoration-line:underline;text-decoration-style:solid;">Contract Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">Capitalized contract costs net of accumulated amortization is </span><span style="font-family:'Verdana';">$18.4</span><span style="font-family:'Verdana';"> million at January 31, 2023 (</span><span style="font-family:'Verdana';">$16.6</span><span style="font-family:'Verdana';"> million at January 31, 2022). Capitalized contract costs are amortized consistent with the pattern of transfer to the customer for the goods and services to which the asset relates.</span> <span style="font-family:'Verdana';">The total contract cost amortization included in sales and marketing expenses was approximately </span><span style="font-family:'Verdana';">$5.8</span><span style="font-family:'Verdana';"> million, </span><span style="font-family:'Verdana';">$4.7</span><span style="font-family:'Verdana';"> million and </span><span style="font-family:'Verdana';">$3.3</span><span style="font-family:'Verdana';"> million for the years ended January 31, 2023, 2022 and 2021, respectively.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Deferred</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 51,291</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (38,065)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 45,234</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 729</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (489)</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 58,700</span></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Recognition of previously deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (48,253)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Deferral of revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 57,605</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases from business combinations, net</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,188</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (841)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 69,399</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Current</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 67,784</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:84.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Long-term</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.58%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 1,615</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Contract</b></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Assets</b></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2021</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,353</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (730)</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 815</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5</span></p></td></tr><tr><td style="vertical-align:bottom;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,443</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Transfers to trade receivables from contract assets </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (824)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,618</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Effect of movements in foreign exchange</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (15)</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:92.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt;"><span style="font-family:'Verdana';">Balance at January 31, 2023</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 3,222</b></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p> 51291000 -38065000 45234000 729000 -489000 58700000 -48253000 57605000 2188000 -841000 69399000 67784000 1615000 343800000 0.80 P24M 1353000 730000 815000 5000 1443000 824000 2618000 -15000 3222000 18400000 16600000 5800000 4700000 3300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 20 - Other Charges</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">Other charges are comprised of acquisition-related costs, contingent consideration adjustments and restructuring initiatives which have been undertaken from time to time under various restructuring plans. Acquisition-related costs primarily include advisory services, administrative costs and retention bonuses to employees joining by way of an acquisition, and collectively relate to completed and prospective acquisitions.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables shows the components of other charges as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,560</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,292</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,694</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration accretion and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,804</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,070</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,659)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,300</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,441</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,428</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,335</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Acquisition-related costs</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,560</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,292</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 1,694</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Contingent consideration accretion and adjustments</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,804</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,070</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';"> (1,659)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Restructuring plans</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 77</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 66</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,300</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 5,441</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 6,428</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 2,335</span></p></td></tr></table> 2560000 1292000 1694000 2804000 5070000 -1659000 77000 66000 2300000 5441000 6428000 2335000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 21 – Supplemental Cash Flow Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following tables presents the cash flow changes in operating asset and liabilities:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 151</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,884)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 143</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,042</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (7,098)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5,663)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (8,276)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,029)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 103</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (498)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 99</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (620)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,336</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (686)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,760</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (999)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 753</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 426</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,835</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (95)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (259)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 283</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,142</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,877</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,793</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,789</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,575)</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Trade accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 151</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (2,884)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 143</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Other accounts receivable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,589</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,042</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (7,098)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Prepaid expenses and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (5,663)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (8,276)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (5,029)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Inventory</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 103</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (498)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 99</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accounts payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (620)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 2,336</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (686)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Accrued liabilities</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 2,433</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,760</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (999)</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Income taxes payable</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 753</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 426</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 3,835</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Operating leases</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> (95)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (259)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 283</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Deferred revenue</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,142</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 6,142</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 5,877</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 7,793</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 12,789</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> (3,575)</span></p></td></tr></table> -151000 2884000 -143000 -2589000 -2042000 7098000 5663000 8276000 5029000 -103000 498000 -99000 -620000 2336000 -686000 2433000 13760000 -999000 753000 426000 3835000 -95000 -259000 283000 8142000 6142000 5877000 -7793000 -12789000 3575000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 22 - Segmented Information</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">We review our operating results, assess our performance, make decisions about resources, and generate discrete financial information at the single enterprise level. Accordingly, we have determined that we operate in </span><span style="font-family:'Verdana';">one</span><span style="font-family:'Verdana';"> reportable business segment providing logistics technology solutions. The following tables provide our disaggregated revenue information by geographic location of customer and revenue type:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 307,102</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 242,086</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 211,232</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 126,942</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 128,990</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 94,163</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 34,547</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 36,116</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29,388</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 17,423</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,498</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,881</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 486,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 424,690</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 348,664</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,385</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,060</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,054</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 435,734</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 378,494</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 309,731</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 41,895</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41,136</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33,879</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 486,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 424,690</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 348,664</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;"><span style="font-family:'Verdana';">License revenues are derived from perpetual licenses granted to our customers to use our software products. Services revenues are comprised of ongoing transactional and/or subscription fees for use of our services and products by our customers and maintenance, which include revenues associated with maintenance and support of our services and products. Professional services and other revenues are comprised of professional services revenues from consulting, implementation and training services related to our services and products, hardware revenues and other revenues.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">The following table provides information by geographic area of operation for our long-lived assets. Long-lived assets represent property and equipment and intangible assets that are attributed to geographic areas.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 138,007</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 102,649</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32,921</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,922</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63,414</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 84,943</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,900</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,912</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 241,242</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 240,426</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;visibility:hidden;">​</span></p> 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0.05pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 307,102</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 242,086</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 211,232</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 126,942</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 128,990</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 94,163</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 34,547</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 36,116</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 29,388</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 17,423</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 17,498</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 13,881</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0.05pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 486,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 424,690</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0.05pt 0pt;"><span style="font-family:'Verdana';"> 348,664</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p> 307102000 242086000 211232000 126942000 128990000 94163000 34547000 36116000 29388000 17423000 17498000 13881000 486014000 424690000 348664000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><i style="font-family:'Verdana';font-style:italic;">Year Ended</i></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2021</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Revenues</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">License</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 8,385</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,060</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 5,054</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Services</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 435,734</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 378,494</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 309,731</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Professional services and other</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 41,895</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 41,136</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 33,879</span></p></td></tr><tr><td style="vertical-align:bottom;width:64.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 486,014</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 424,690</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.48%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 348,664</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 8385000 5060000 5054000 435734000 378494000 309731000 41895000 41136000 33879000 486014000 424690000 348664000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">January 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">    </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">January 31,</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3.75pt 0pt 0pt;"><span style="font-family:'Verdana';">2022</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';">Total long-lived assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="font-family:'Verdana';">  </span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">United States</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 138,007</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 102,649</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Europe, Middle-East and Africa</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 32,921</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 43,922</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Canada</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 63,414</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 84,943</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="font-family:'Verdana';">Asia Pacific</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 6,900</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 8,912</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 5.25pt 0pt 0pt;"><b style="font-family:'Verdana';font-weight:bold;"> 241,242</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 4.5pt 0pt 0pt;"><span style="font-family:'Verdana';"> 240,426</span></p></td></tr></table> 138007000 102649000 32921000 43922000 63414000 84943000 6900000 8912000 241242000 240426000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-family:'Verdana';font-weight:bold;">Note 23 - Subsequent Event</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Verdana';visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"><span style="font-family:'Verdana';">On February 14, 2023, Descartes acquired all of the shares of Windigo Logistics, Inc., doing business as GroundCloud (“GroundCloud”), a cloud-based provider of final-mile carrier solutions and road safety compliance tools. The purchase price for the acquisition was approximately </span><span style="font-family:'Verdana';">$138.0</span><span style="font-family:'Verdana';"> million, net of cash acquired, which was funded from cash on hand, plus potential performance-based contingent consideration of up to </span><span style="font-family:'Verdana';">$80.0</span><span style="font-family:'Verdana';"> million based on GroundCloud achieving revenue-based targets over the first two years post-acquisition. The major classes of assets acquired include: current assets, intangible technology assets, intangible customer assets, as well as certain liabilities assumed. Due to the limited time since the acquisition date and the size of the transaction, the accounting for the business combination is not yet complete and the fair value of the acquired assets and liabilities has not been determined.</span></p> 138000000.0 80000000.0 EXCEL 120 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( +V*858'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 #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " "]BF%6N]WZ6.T K @ $0 &1O8U!R;W!S+V-O&ULS9+/ M2L0P$(=?17)OITU!)'1[6?&D(+B@> O)[&ZP^4,RTN[;F\;=+J(/(.22F5^^ M^0;2JR"4C_@7A H;=B0* B"I(UJ9ZIQPN;GWT4K*UWB (-6' M/"#PIKD%BR2U) D+L HKD0V]5D)%E.3C&:_5B@^?<2PPK0!'M.@H05NWP(9E M8CC-8P]7P (CC#9]%U"OQ%+]$ULZP,[).9DU-4U3/74EEW=HX>WI\:6L6QF7 M2#J%^54R@DX!-^PR^;7;WN\>V, ;WE5-/NV.<\%;T=V]+ZX__*["UFNS-__8 M^"(X]/#K7PQ?4$L#!!0 ( +V*85:97)PC$ 8 )PG 3 >&PO=&AE M;64O=&AE;64Q+GAM;.U:6W/:.!1^[Z_0>&?V;0O&-H&VM!-S:7;;M)F$[4X? MA1%8C6QY9)&$?[]'-A#+E@WMDDVZFSP$+.G[SD5'Y^@X>?/N+F+HAHB4\GA@ MV2_;UKNW+][@5S(D$4$P&:>O\, *I4Q>M5II ,,X?+&A T%116F]?(+3E'S/X%/F7/Z3H=,H%N,!M8('_.;Z?D3EJ(X53"Q,!J9S]6:\?1 MTDB @LE]E 6Z2?:CTQ4(,@T[.IU8SG9\]L3MGXS*VG0T;1K@X_%X.+;+THMP M' 3@4;N>PIWT;+^D00FTHVG09-CVVJZ1IJJ-4T_3]WW?ZYMHG J-6T_3:W?= MTXZ)QJW0> V^\4^'PZZ)QJO0=.MI)B?]KFNDZ19H0D;CZWH2%;7E0-,@ %AP M=M;,T@.67BGZ=90:V1V[W4%<\%CN.8D1_L;%!-9ITAF6-$9RG9 %#@ WQ-%, M4'RO0;:*X,*2TER0UL\IM5 :")K(@?5'@B'%W*_]]9>[R:0S>IU].LYKE']I MJP&G[;N;SY/\<^CDGZ>3UTU"SG"\+ GQ^R-;88C'(CN]WV6'WV3T=N(]>IP+,BUY1&)$6?R"VZ MY!$XM4D-,A,_")V&F&I0' *D"3&6H8;XM,:L$> 3?;>^",C?C8CWJV^:/5>A M6$G:A/@01AKBG'/F<]%L^P>E1M'V5;SC MFED)O816:I^JAS0^J!XR"@7QN1X^Y7IX"C>6QKQ0KH)[ ?_1VC?"J_B"P#E_ M+GW/I>^Y]#VATK\>WZV22$KYI9+2,6D$N!LT$DN/R+RO JQ GH9%LE" M0AMNZ5/U2I77Y:^Y*+@\6^3IKZ%T/BS/^3Q?Y[3-"S-#MW)+ZK:4OK4F.$KT ML@'37[]EUVY".E,%.70[@:0KX#;;J=W#HXGIB1N0K3 M4I!OP_GIQ7@:XCG9!+E]F%=MY]C1T?OGP5&PH^\\EAW'B/*B(>ZAAIC/PT.' M>7M?F&>5QE T%&ULK"0L1K=@N-?Q+!3@9& MH >#KU$"\E)58#%;Q@,KD*)\ M3(Q%Z'#GEUQ?X]&2X]NF9;5NKREW&6TB4CG":9@39ZO*WF6QP54=SU5;\K"^ M:CVT%4[/_EFMR)\,$4X6"Q)(8Y07IDJB\QE3ON>;G*YZ(G;ZEW?! M8/+]<,E'#^4[YU_T74.N?O;=X_INDSM(3)QYQ1$!=$4"(Y4U#VT%SU&\Z.9X!ZSAW.;>KC"1:S_6-8>^3+?.7#;.MX#7N83 M+$.D?L%]BHJ $:MBOKJO3_DEG#NT>_&!()O\UMND]MW@#'S4JUJE9"L1/TL' M?!^2!F.,6_0T7X\48JVFL:W&VC$,>8!8\PRA9CC?AT6:&C/5BZPYC0IO0=5 MY3_;U UH]@TT')$%7C&9MC:CY$X*/-S^[PVPPL2.X>V+OP%02P,$% @ MO8IA5A7 'V?/ @ Q @ !@ !X;"]W;W)KW.0"UA([LTTI_W[724B9 ME)KN!6+']_AQMCLDO?U]$&4J;/9 8"[ZRD2IG! MIEK[.E/ XCPH3?R0THZ?,BZ\02_OFZM!3VY-P@7,%=';-&5J/X)$[OI>X!TZ M%GR],;;#'_0RMH8EF/MLKK#E5Y28IR TEX(H6/6]87 Y"O* ?,1W#CM]=$UL M*H]2_K:-6=SWJ#6"!")C$0S_GF ,26))Z/&GA'K5G#;P^/I G^;)8S*/3,-8 M)C]X;#9]K^N1&%9LFYB%W'V&,J&VY44RT?DOV15CFRV/1%MM9%H&HT'*1?'/ MGLN%. H(NZ\$A&5 F'L7$^665\RP04_)'5%V--+L19YJ'HUR7-A=61J%=SG& MF<&5C+:XR(8,14PFPG"S)S-1[#:N6L\W.(D=ZD 04ANI# ;C;08 MXG\!/MI5BN%!<10ZB5^8."/-X ,):=AT\)I5RLVY.=7'$5F!E+] MJR[I MFJ1]I'YU)G+(*^A\^&!O4$WN#]NZ!#/SJ$6Y5PRT5_$;[;9U GYP[O M-*X=$NU*HOTVB3DH+NU9B0F>N%H?-ZG:SU,;VJG4.DY@>6P7L.;:*(:.MRRM M%7-SKB;+\7!Q-UF2Y5Y;G;[$CL6FV*GKK-RL$^AA49A>AA?U_8:I-1>: M)+#"4'IVCB\)593,HF%DEI>I1VFPZ.67&_S, &4'X/V5E.;0L!-4'RZ#OU!+ M P04 " "]BF%6CST'J,(& 4' & 'AL+W=O\X-9?+=BU8/^X&1-[NB6-);LDG8 M+'^XH+N K*J]19Z4]5_PL+,U>F"Q*5F>[IRY@C3.MO_)X^Y%[#E 4^& =@[H MM0YXYX#K0+?*ZK!&A)'!29$_@**RYJU5%_6[J;UY-'%6#>.<%?S7F/NQP7 Z MF4_'X5@5]/9L% MDPCX\SF/4Q;.UM^4^U=+ZU.Y)@MZVN-KIZ3%/>T-_OP#VL9G67!OU-A!J+@) M%>M:'PQ)N9(%N/6R:J]JJ=\/D&-CUSKIW^]+EYA!;&*G,3L093:B3.W[]Q>+ M?).QDN\#"QK?DYN$@O<991]D2LVW'(HW:NP@:JN)VM(.1520)95%N'6S]UZR M:4$'=X9"8@4=PY*/A-UHLK6:IFQ%"YDF6^@-0MMR.YHD5J;A*#0YC29'J^FJ MH&L2+P%]Y*PJ:0GXG@-RE5!'D(!,V[$[0B56T'-,N5"W$>IJA8;9/:![ITCHWG8<0:1H!0W+@0J1+9&@'DFCX$O I^<(A)/A]#( D?]/ M()>)92_3[6Z,,C/3LU5#WT(*:FDP"">1/SD/S\;/KU(]ZJ9DCGJNT=TNY7:V MH5I.+5F@'BWGT^GH>S@>2\6)X+ =RQ97D,3.,=LM23,;)13! MG+FF,"%E4'(M$ZLDML2!SJL2PG'HGX7C, H5$U(+KM_-1=ZJM<.86WA!/;V: M)&Q-GJH,3!JP2"B^!=A=CBG,;,6PM"R#>IAQB<6&+D$2DYLXB5E,Y;6'2"G7 MP(:@4C3CR\!4[!.H91G2LVQ,>1D)\ILDOB-5:2K5B$0^8>QUUZ#$RC208GM M+<20'F)AMLA3"AAYI-KA1B*6' MW[H#RM MVL@%2L'E=C<*B9EE.ZZAD-B2"^G)=9A6TTF, N^!9/K M0"I0Q!*TH? 2)58\454(;-&%].C:SU# E?_#Y\F 5*1()AON=;\3*5HYV%(4 M(:B%%]+72Z_.IY!8!?'N#4&FS,Q"JOG8 @?I@;-=/2^M&A$E"-JV)Z(?T $D+Q=_-A=ZJM<.@ M6T!B/2"'>9KF&2A7A+<.CL&&6Z0QXS#:/2(;MLJ+^%^Z_ SFVT=Q65:Y27TX ML6$EXQ=Q=@=8SDC"G[OFD8N,(V@8@##PE60;4CPU9Z#@?><)XKUR%YZ8'R%H M2 _"L(2[V#7-;I4AM;.1IZ@N<4MHK">TOUS&58)#$E =T!S'&5B0= M2E,U+ +Y&!NFU(6W?B%P\QZ,W_U9B'!L^%YV!,F@VCH>9X+%2DP;DF.7U.$[L&GWLU? MK=\6SL'E):K,4%JB]O<^V53?RRY)<1=G)4CH+?9#X. _4$L#!!0 ( +V*859VMB?! ME@( &0' 8 >&PO=V]R:W-H965T&ULK55K3]LP%/TK M5B9-(&WDU0;$TDAMZ#0F'A6%[;-);AN+V.YLIV7[];.=!RT*':!]:>SK>\X] MYZ:YCC=N*[,"*)9'? 5,GRRXH%CIK5BZ,[;>"&+ ME FX2K_ 2 MYJ#N5C.A=V['DA,*3!+.D(#%R!G[IVED\FW"#P(;N;5&QLD]YP]F-G:/@R7DK[BS9U[G#@H*R2BM,&K!50PNHG?FSZL 7PHQ< 00,( MG@->JA V@- :K9596V=8X206?(.$R=9L9F%[8]':#6'F+$'8(RA] M/3S8(R?L^AA:OO#M?>SK5DTVZ"]V$_^5U+UN?Z M7= =C\/.X_!-'N?U@DA9:9\'I#TZ['-84T>6VHS4=7(R. D\W_-B=[WMIR_Q M>!@%_E/BCOJH4Q^]1[V>Z%)AEA.V_)>%Z+46^A)[+;A; XN"6-HY+E'&*Z;J M$=!%NZMB;"?DL_A$7R'UQ'^BJ>^?2RR6A$E4PD)3>D?'NK^BGNGU1O&5'8OW M7.DA:Y>%O@9!F 1]ON!G MG6EC)(& K.,9QY#$.XV=,23M*[&5F"D&+\A)=W_]BH\8(PEM.NL7V^!S#_=< M7:0#&KUF^8]B0RD#/[=)6EP,-HSMSH?#8K6AVZ@XRW8TY?\\9?DV8OPP?QX6 MNYQ&ZRIHFPR189#A-HK3P7A4G;O+QZ-LSY(XI7$O3(LY2D-.GB\$$GGO(*0,JQ$-, M7XNCWZ"4\IAE/\J#V?IB8)09T82N6$D1\:\7.J5)4C+Q//YJ2 >':Y:!Q[_? MV*\J\5S,8U30:99\B]=L-1GKV"O$1SMO)'5Q\;3Q3Q8?)UYD]#W0!#RKUM_ M'@9@<046=_YR$LXX 'P!]X$'/G[X!(I-E-,"Q"D(-]F^B-)U\1E\Z!R/AHPG M5M(/5TT2EW42J"<)B,!MEK)- ?QT3===@B%7=)"%WF1=(BWCGU%Z!C#\#)"! ML"*AZ?O#D2+<>W\XU*C!AT'"%1_^/X.D*GM-:ZIIRRGEO-A%*WHQX'-&0?,7 M.AC__ALDQA^JDIV2S#L16:>6<^3(V'6) M3V;JR00Z:+81L1Q! D*&$*. M(TJ08 MF2A?;2HI:_K"'=2.^R&F$N-*"=@&MD0Q,HH@RQ;[6$99ID&(6@PT6AM@Z&]& MFM(\2BHUT9H;C;A@>51Z,N5R;LB%=VUQVIBJ8*9I"9.IIX!A@HC=H^G(VD"M MI@7;T!RLN&-YIFI7 A7%-*&H0D81$SFB"!F%,.YI,HA:#4BK8;+-. VN7YK=<6LA7]QGV4Z*)4. ,1 MR0DJ<'PM(WVJ6E< ':V1:G5H.T[K+7[54YV4S3L56[> K1V!>C\RW>=YC_V MLF= #C*E%I!AT'3$1Q]/ <.VV7.;HM: (+T!\>@3Y0K6*@%(81"0*4Z9"A2T MI/15*-,ZFHVZ^;=F ^G-1KV:O:^-D>P5,#1=) J289!@R7FH8 [JNR51:SV0 MWGK,_5 S3S;!5G?"0%A\PE3@',+;3Q0APRP$C9Y'3-2:#*1_=>)/EO/9_#H M?%4&PVEQ&1;Q2UJR.LX\;X R)"Z4294BC M+Z.,,X)Z!K\U,4AO8KPXV;.>*<52Y 7%*;%!=9I<3%TFXJG#GM1;UX*(MF^_ M^;/KF_)UW^2!V\EKO^[= "SNPR#D/H;W-/C(WEZY?E)*U/JB7V[J4[)YIV+K M5K?U4$COH?J;6K8WCFF[4E>K8)8(\Y0P3/HFM=8L(?T[%%U?RR\['&):D@ 5 M#!FBVU/!+-L2%_OAT?[#EO*G[7(?IP"K;)^R^IW]X>QAKVA2[9 (YR_AN5?O M^+0T]0;4+7^(C],")/2)4QIG-K_M\GI/ISY@V:[:Y7C,&,NVU<\-C=8T+P'\ M_ZH=G P _ H !@ !X M;"]W;W)KF*><)Y%3>\34PW%ERD5.%4[$RY5H 712@/#,=RPK,G*;,B'K% MVK.(>GRCLI3!LR!RD^=4O#]"QG=]PS;V"R_I*E%ZP8QZ:[J"*:@?ZV>!,[-F M6:0Y,)ER1@0L^\:#?1^'VKXP^)G"3AZ,B5;RRODO/1DM^H:E'8(,YDHS4/QL M80!9IHG0C7\J3J,^4@,/QWOVKX5VU/)*)0QX]E>Z4$G?" VR@"7=9.J%[[Y! MIR>*7["I;RR#SC50\K\#H09ZR\DO?JC@< .S@ X!3 9Q3@/#8EDZ]D,'EZ?AE^&XZGHY]#,AKC?$@^DQ_3F+1;'=(B M*2.SA&\D90O9,Q5ZHSG->77R8WFR\\')MD.>.%.))$.V@,4Q@8DR:BW.7LNC MD@[XU)V[IMT^;?,A5N2Q3=NDKGN=NB:S!G7G9A?4A;6Z\**Z:ZMQ>%XR/+M[JN3A<3M8?L;4K.['_:,J^\(F*5&PO=V]R:W-H965T&ULK57;4MLP$/V5'9?IP Q@QPZ4TL0S) Y#F.8R)-!G86]B%UM*)>7"WW&!%TLK[3E[D7746@OYI%)$#9LBYZKMI%HO+EU7Q2D63)V*!7+:F0E9 M,$VFG+MJ(9$E%E3DKN]YYV[!,NZ$+;LVEF%++'6><1Q+4,NB8/*Y@[E8MYV& MLUVXR^:I-@MNV%JP.4Y0WR_&DBRW9DFR KG*! >)L[9SU;B,FL;?.CQDN%8[ M@/R>[!X9A)Y#I%G<4L5T=P O>3" X/CN ,@[35"P5XXEJN9K2,T'< MN$JE4Z;BOY%*PX>!(&H%/9Y@\I+ I;KJXOQM<1W_7<9;QD\A:!R#[_G!GH2Z M'X?[>^#1Q^&-=ZH)ZJ,*+%_P.4>U[P#* ,W] 8S"7*H%B['MD(0HE"MTPJ]? M&N?>CWW-^TRRZ)/(7C2V63>V^1Y[2 )"\L#INDGZM^-GT))QE;-2F)+?= M) MZ/0Q_=^Q*! TVP!N2'@5PJ'$6*Q0/A_MZW<9]\S&-0*\"D_.+EKN:K>->WR" MYBNGZ'\G_[M7^Y15NSLJ4*"<6S55$(LEU^6=J5=KP;ZR.O5JO4-"7NKN/YKR M%1@P.<^X@AQG1.F=?J.,9*FLI:'%PFK-H]"D7'::TF.$TCC0_DP(O35,@/IY M"_\"4$L#!!0 ( +V*85:Y 8 >&PO=V]R:W-H965T M&ULO5EM;Z,X$/XK5FYUMRLU#39@H)=&:@.H/>VVO2:]TWUT MB=N@ LZ"TW3__1E"DV 3VJC>_1)>\LPS]CSV# /#%S?Y M:,B6/(DS>I.#8IFF)/]Q3A.V.NW!WNN-V_AQSLL;@]%P01[IA/*[Q4TNK@8; MEEF7$Y.^T9Y8AH0B-> M4A!Q>*9CFB0EDQC']YJTM_%9&NZ>O[*'U>3%9.Y)0<>\?EIS^V!&7T@ MRX3?LM4%K2=DEWP12XKJ%ZS66,?L@6A9<);6QF($:9RMC^2E#L2. ;3V&*#: M $D&R-EC8-8&IF1@X3T&5FU@R0;&'@.[-K#E.>R;-*X-SY?>T;[/+,T%4NKF).%T!AB?TQQ$+!4;=5[NH&*P]/. MU5.%6;:'L->$^2JLCVS/DMB"%A@T;<);U:M*+&<2)5/Z4MY3MN"V3E]8:<][IY]#=II/,MY7U@2S'MJ4LJ--EJ(FL(2G>2(H[);T2>JW% M:I.IT_90F722^3K) JQH;B-HR!4-MY3;750C_LXF_L[['@&HR'1[BC]LD\91 MQVQ"%TD+=:S"+&Q! TGY3H7U(72E1X2@!>6:6"G]*LR#T,!N>Z3<3:1<[46] MD_'0]>LJTQ*S@HX429TN YUDH2:RAGC>1CSO9U5U3UW!EB.MW[$*ZD,78DF; MSC$>JHU.LE 364,;:&Q[4>,7U?5N1X?N.*UL?LTF)3EDR!V.5J^A+K:FM#NO M&> 'ZGNW\<%RZ63SM;(%-=NN^"Y&KI1'PC=A31FVC3Y\9Z??4>91JT*HI5YG@N]/?':-O!0?P??37GP M8E9[>&AB+)=[K4X#K6RA+K:FAMM&'OZT3AZJ73J"MMS*MZ#Z%I3?:W6/\F"% MM#;SNMB:"FW;>?BK^OEN1P?O/:T=/51;>O%P:& EY6EMZG6Q-:7=MO7P(WU] MM_'!GG6EJ)%XFFWC&->G6.VV2J=/VLPQRK"T@ M%\EY[*_?*R!@@R#)C+_$0(XN.E?W<83.[D7^2VX84^@A33)Y/MHHM3T=CV6T M82F5'\269?"?MB9V*N$9 MN\Z1W*4IS1\_LD3'JVI;=LR=3W[74.=^/:2LQ3EDDN M,I2S]?EHAD]#V](#"L0/SN[EWC725%9"_-(WB_A\9.D9L81%2IN@\'/'YBQ) MM"68Q^_*Z*A^IQZX?_UD_5-!'LBLJ&1SD?SDL=J 70VP M7SK J08XA6=**H4?0JKH]"P7]RC7:+"F+PIG%J.!/L_TNB]5#O_E,$Y-YU>7 MRZLOBW!VH3>(9^AF M(W:29K$\&RN8@[8TCJKW?2S?1WK>APGZ*C*UD>@BBUE\:& ,DZ\9D"<&'\F@ MQ7]H]@'9^#TB%K$-$YJ_?#@Q# ]?/AP/L+'K]; +>W:/O:OKBV^SF\7EWV@V MOUG\6-PL+I8F+Y=6'+,572Q.Y99&['P$U4"R_(Z-IG_^@3WK+Y.'CFDL/)*Q M ^\YM?><(>O32RB4/(M$RDP^*\>ZQ5A=#^^F&-;<]L[&=_O>Z,(F'IF00U38 M1;D$6U:-.IB_6\_?'5S]6?POI#R45261$E!7(Y%%/&$HJXGIYQ&5&[3-Q1V' M%$*K1P1M(*>*9[=E'>6*,WEJAK8X)/.A/!MN>U21E0&+BW2'51GHUM,Z>@YA0,W4*$)Y;BD9W'PGA3"@USF&\@;)K7"V5N:(H40J!V4<+KB2>\R M5=;WI^7[07NE#"A,_$D[IPRP$QMJ10]'TG DPQQ?TCJ,[$AWW@&Q@W89-.%\ M#]OM:#3A;$SLG@Z*&P&%AQ74XO+'Q?(%"@H?54(=U5IX+&N'+FQ4%!Z64;,X MYKK6%B($@@5"1#T6*"@9@ MX&*KW4U-.-#+'NFAUV@?[ ]F^Z?%Y>QR_H)L']10K\[V8UH+CV7MT(6-T,+# M2NLZ%Q%CL43K7*1H)7*P "$B$20("!8400YPA=8TTLWOT>C=P3>\VKO'M!9B M@]ZS<.#U1%ZCY?"PF)L?NJ4HCZ(0>#%;*=B[;>ECL9,S.FS0]JL=UI5V)]CR M.C7&"-N7*(S"$)'2#-_TI5P4#]Q:\9S$\QO M[\1-(*='1I!&#))A,;AXXJ#;@4A32 :YH; 8:"WRHD'4W>(%= VBS]^3.A7; M+HIXKM>FVT5Y.'!Z^#;"D P+P[TUC$2F>X2^@TOHCH5"-&^-25?&Z<+>5H7# M+W]M2A_+VJ&K&H5)!N57V5+?5CWUW8&:7O,,(N'Y!EN]X3!F/:N]63# 8#_4 MB8@NRG7[OBJ01@62815XL5ZSJ @(B'C&;_76.RJV2 CB :*]VBY!9NAT,-(T M:3B"VRK"!"-^6SB&!ICCV7W5JQ&$9%@0+C+H<%0R+9!ZB73EF4<"IU.ONC _ M\/W.@G5ADX"XDQXFC=8CSVN]]VC%;GF6Z1B$I7MD-#<2Z@HR@FW';G\L,>"P M;7MMG1L:<([3*U])H^_(\,>MDA+3O76 3/<+%/$]>]*I0@:<@71HP+5('[)I MI!:9#*K5Y6Z[39BNLS1!,9=1(N0N9_668YV 19Z5QWE0<8W?<,E1Q=91K87' MLG;HWT:3D6%]=/Z1'I6G,.VGG_$IV%YKMR8*8^YO](<:J=$ M"5N#2>N##U/*RY/C\D:);7&6NA)*B;2XW# * DD#X/]K(=33C7Y!?7X__1]0 M2P,$% @ O8IA5LL[M<"$! _ D !@ !X;"]W;W)K)>GBGNK)8PE]R2 M7,O*U_<,=[66@T1 @;Y()'?FS)DK>;GSX3Y6S(D>:^OBU:A*J;F8S:*NN%9Q MZAMV^%+Z4*N$;=C.8A-8%5FIMK/E?/YV5BOC1NO+?'8;UI>^3=8XO@T4V[I6 M87_-UN^N1HO1X>"SV59)#F;KRT9M^8[3G\UMP&XVH!2F9A>-=Q2XO!J]7UQ< MGXM\%OC+\"X>K4D\V7A_+YN/Q=5H+H38LDZ"H/#WP#=LK0"!QC\]YF@P*8K' MZP/Z3]EW^+)1D6^\_=L4J;H:O1M1P:5J;?KL=[]P[\\;P=/>QOQ+NTYV"6'= MQN3K7AD,:N.Z?_78Q^%(X=W\.PK+7F&9>7>&,LL/*JGU9? ["B(--%ED5[,V MR!DG2;E+ 5\-]-+Z T<=3),CY$M*%=-U&R$4X^4LP8"(S70/=MV!+;\#MEC2 M)^]2%>E'5W#Q'& &9@.]Y8'>]?(DXJ_*3>EL,:;E?'EV N]LCY0/3^%_E^IG@;[S2>F!4WH M!"K]@8U\5R%QI+M]3%Q'^CGXMJ&/3D_IUB/R(?#X8[[L]=D(BEJ@G\P!0>AM;5^HRQ9OS4Q&1TIL:Z3^X!"IC4RP0K4O6JO"&%)EVJG $Q4G:B*Y,9H'!^Z4NANL*U=0@=YY M0J;D"5XG!@ZF(""Q2D'I^RQPRG"..:XXH:J]R8E+5>*X1< MQ/F1-; H5J;!.$N0"DJP55N8E$4:M1=\%QL?DLK),>[!FPRIM);LB)QRRNZ_ M\"$^4"DX!YG7O4!2P91EYV>;]J25U8A2=G5%I;'<3YK.2 3= M8"!7>-UFP@0P,K60B[U+>;W*&XVD6X:##M((6R2/L@I'V4-JQ044U68/7P,. M30/[;@LWD7ID;(MX8)99M?$(#L)*->:JF2"ASPH!QNK6@=V4?D>^FP HP$", M[:&$8BX%/13'SJ2*2LN/9F.L. :C#?)5J2BZ(OR4>C:9O%P8N*DV0[>,NP2I M?)F $B*"*#><6N&'3#F4(.X'$P=F.T13T)>F5",9$P[Y_GH!,=4QGR725918MD M]9S'O@8VP=_CK&\,J >SR<&9&)?D.D9R=&YTPUUI["J#PGNR988P*KKGO<1* MR55IG/ 39OWL,0CT+@>@:'42N8-GOBPY0'HLAT\VGN=*JR%X($N^D9CFZL@= MC,;50C4F.(WRA20/!BP_L(T9/K99D;:8T*@4U*A'RFOSI8LF=],%#802[AO MN.X]!!K3;\WZV=&-C!K'5&_K4G#.BT+TUNDWR3;[?-SXA?WE9X7G&003PO?08_OU&# P/OO6_4$L#!!0 M ( +V*85;\%6_'?B@ $F& 9 >&PO=V]R:W-H965T2Q%__773Z QG-F5GM2M=W[ONF5S\#5\LVG:O>OASW;[J#NTWI7TTKYZ=/WX\1\?[5VH+UX\ MI\_>M2^>-T-?A=J_:XMNV.]=>_K.5\WQVXNK"_W@?=CN>OS@T8OG![?U-[[_ M>'C7PE^/XBAEV/NZ"TU=M'[S[<7+JV^^>XK/TP/_"/[8F7\7N))5TWS"/WXH MO[UXC 3YRJ][','!_]WZ5[ZJ<" @XQ<9\R).B2_:?^OHW]/:82TKU_E73?53 M*/O=MQ=?7Q2EW[BAZM\WQ[]X6<]7.-ZZJ3KZ;W'D9Z^O+XKUT/7-7EX&"O:A MYO]WGX4/YH6O'\^\<"TO7!/=/!%1^=KU[L7SMCD6+3X-H^$_:*GT-A 7:MR4 MF[Z%;P.\U[_XSG6A*YI-\:[UG:][A[QZ_JB'H?&!1VL9YCL>YGIFF*OKXL>F M[G==\:8N?9D/\ AHBH1=*V'?7=\YXE]=O2R>7"V*Z\?73^X8[TEYNGT,*@CWW0'M_;?7AQPH/;67[SXPW]<_?'QLSN(?!J)?'K7Z%].Y-W# M_+WI?7%=_.$_OKZ^NGHV.6CQ8>=!)=;-_N#J4ZBWQ;JINZ8*I>M]66Q"[>IU M<%71P?,>M+#O"M?ZXL!CP".A+C[6 ?]U@X]TQ0.<[_KQLX\W](^K9P^+LJDJ MU\*;=:EO'^#_Z66]#1_9)2;EY\RI2 B:31N!5 M,]MA_GL9O2S>#BU\TZWAXY-W+;RRAV_6,#\,\;U?M0,8T.(*WL$!O5OO^#FD MSM0E UL2'-$AN+S9Q,MBN,NP&#G8[ >+@J0)#";OL5-[)O" M=32L+!ZXU,("[(C"C(4^(E_A8..OS&<%<&[HD,PN[ .($-KV4A@#[+P-S=#- M$ Z$G5-^?0_E4V/.DWX]0?KUO:3#=!FS6:&()MS;LEB=B"1W.%1A[5:5YTTM M0?9@.%X@;:*1#-RI90$.JO"?W1[TP]+T5&FB23I<-DU0 V^JXN#;T)"\X/ C MACV-\J^K;X86M/07>*B'=8 \S4^@#\T,O2RB24JZH#;I?C,$AJ :2B^LF'@ MQGWM@45M+PH+I /[0/1/E\VQAG&[8=4%T/\65'I9_.3!4!5UTQ<[=XOL.16W M\!7M0 !;!R:/ICW_%%;8DUU8%B^KBC\6DZK&2PQ)Z^K.K=D&T2PK[^O"5R C M-2U5=CEC"&TLX(JZ8,U:GWB@*K$+K!,;691O,3;)R,?7U.PQ;4!MUWDAK8(E MA8JM&SR&O++L(2'56'KGD;V:A/!SB%_"K_9 /#2KU>N(DO/0!,W M=UF\][>^'F2+_&> F=W]T[%JE2Z G\CFA"WX8'CCRI\!/+$\ $< H^%[F[;9 M SW JD/;@#GEZ6"GAOV@\Q4-*2IN8^MW"#]O<4'PMR\>5$W7/43;X8J.C;JG M)YL:[1ZPK]O!B"!J):@#^=\_/2O\+T/H@>EO:^)L[T!H0&*K )^7T2TX]!>T MV8"XV5LLB'?9^);6.PAM/?(!5DP:"9L M/9A/:"@G$W#IG'=;.OP*[.@'RMB MKEWQ360Z:N%0DVC#HJS$D5\2D5)%P;F2I\=YJF9MWX/9HZ4[R4Q>]E85"!8Y MM (CY$627N('++>>&AB95S,=)]IV6."M;WMV!Q,OB.@:U17!!:3K>S1H;EJ+ M2E\WJM9 X2;78=6IUE_NO>N&5J5\GH3?H5QHCC9CXY&FQ*TLMA"S"?4@UD*6 M6%>B')8I L4N!B=3KP-/G*.#^V;$>7 C_O-J>0W13%4A4X^NFYFU>#!VXXII MTTB/ET]TI&=CBJZF'O]:'W^X+#YVG@2UZ\.>,.P[@FID*J9=#TH-AL(H1 1; M$7O",D&5P#$XHN(/P]\!B3(KI>"O)+^_98?#G)"*' MINUG5'(:HM=ECNIK# 5* S =@%0A!1CP$IY*"Q.KUH$' M P?XJ6Z.E2^WQ$?%?VC8^VZ!(3<"#;:_R)P3O 34; CR]&J.#1%D3RQ5B^+G MH=R:Q8T(]+>N&M@:UJC?3;UM<-TK1!CDVG$);(+B2N%1\ & \@-J&[H>\'2H M0006V,\C&&2#5?"(%6B77 >V#W$!*23^)^P]&V]=.W"'S1H*CV@M M8B",$4!,D&2ST%4SL$@ B&EI'W&9[*!GC$X4&L0QF)Y!#PE0TB5.\W(ZX,4: M.?WFSIT?<../X%9L%(;40LBW[\"1P5K0#U9HLK+8Z@#C[Y#I$+,)3PFJN=#R M,O!!5')=R9J4AZ1\A?X=_3*(\ I-*!H("YX62-AF0.]YR_P VPFV,1#[$VO MO\.NHJ5'< $3')"U"^ ,@0YVD#!G$@HV080N/, XC 71?P+E0,;0RD(0KVW) MT0-MW4;\ OP-LU&*#,6H655AZX3>"!I1>T,973O)&NV(>3SR%>@OAS7N),Q= M:QP+CK9$O<(@CF;"#2F;8=4C2Q1Q+F"J"M->+!WD^G@F\/(^W"(U\!!,<1LZ MFG5#\0,!H@;I 2OCR=.@(C?M:7'&$T&2T1@ ]]C&@T*MFK;E(!/]%?(<@FI8 M#"-?Y)2("^T M9(CQTZ[C[1_+,KN9WGWVM%,Z5F0P#U9JW)B>E[EP<:X*OT82D&6,.^DI8$H9 M\#% 2"".#JF&CP]-%T35:%\)>YG\ !+(4&%9W(!##1NP5+R4I*3PIIJ,D<:. M-PLA9^DJ@"V 6L'W<3X%Q"=F+6Y2_F1>EL7]@3JN@;P."R#TJ7(Q(^EWK?;'G M]"+L!@BOF>[[Z 8!S("8L07]/A.MS>0S'ZQ]5=^;!TI1O->PGD4*Z9(>%0_ MDCTT7QW<"3]?L)S[W$CCGEF9TZ?14+?-9[)$.#\0;Y2CA/\Q/H2/B'N&0XD3 MK\&+W;J>HX"TS)](,H#5D]\22D'7+E%*T8;N4Q8^4$"(455\: YA77Q]]97F%Q+US*:_ *@ "C3!\""^\%!S/1%TD>L#NP[ M;W*5"#I0QUK)#9UC9C"X/K"SKUFS4=!(KDJ[LKGHGJ+A%&"HE07G]B) 9(KNDXGMM,/K?R:X?*8%0\HHLN@8\[ MP\J8C H38(-'*C 0^)R%.U15H& O2_9TPOVU0_5?6T&A!8+3/WE0=ZF0H>9 M ZN4ZV']O%6SD-+9_/VB\$/;+(KOT$2 (3Z ?F(,[UNR_4A/#G'/0]1E\8/F MN(@>8M]K?Y"4GNQL?SK05KKREG8,IO$<)KI;%RHR;8"1Q/PM4MX,]QR%.T(% M= $0LJY(UMLM9D-5A$0SPT->ID/5!%: !]LSLRCG&O1[9,-K9M-;"C3*XCVN MX,&KUV_?/Y1GX6&DDA+[\,!;,!XUUN_4G< 2^:6;M]^_?[B<$+"0L2?;+MD4 M_[DG&* A RT5%T2"3\! F7,R[I._F!'KM?D6_"+%<3@D>,,5F*Q#Y"LH M(<8"$) "QN@4\"B(0"\,G ]U"9^TZC"WOMFV[K"C8"U%&Q""(S#QEIW(E\3* M9'Y1YTG715YA]O50W6%!%R8<6$$LAH-@KK:?L2X1%BU$I>$?W=$=)/]\8%2Y M!2 CPR>_B^2?C4?8=*Q_I)2@:V5@7'Q,>6O:5,P!=\/,BM@]MXZ6!"$:BI0! M#V^,]S\7.XL-5.P4S\YA@Y32C:%I\C3E7;;^@['.6&ML.TZ0"17&^R4TFK9K M4S6$72Z);_(.+/[HVI)TDU*AE'YL-AMT]12T-JBLR+.QY=5U\K[>O]R<_K(! M!L0MLLX4]\/*X?F>O-, C9X5P_ W3M7-F@9)Y:%U!!-/.=9D)G#__:3"HIA& MG\^Q#2_DD!&13S*/!Q@% /=,GD5>@CUV),@2>FN0\RU/<@3,MF/'+P.J05J(01(G":QI,-*YV34#;"9N M+[_0>?U2D-HBSVJ!J@/;P<<'7FV;INQB)*_)9TH91B6$8)=+>NL&[ TR"M,S$MFB=)#. M+J4^Q]7DS6B"3!0BR)8RGP/_ZK;IY0&B74/VAW$@;Q(/2;')<<@<\1+#?(5\OPR.0AER$NA+-L+2Z86#%P8E0>D]>DDL@J" Q((;1YD /F(R M(1>M57.KN]RB=(&9)>4E/01C>*P-4\@'4DPPL7DH4?@6F&6TTT;&4V8'6(P4 M76(NL-3L#VQ(CV[S_)NFE=AN"Q;Q@!XZ)=LFDH7T%XHY4$X%EJ2R,0%;L8I0PF6+?I%%\UG,\DO_ .%( M<+I'2AUR91 D3JP]YW$Q,85(TXGU/?'6T1,4:", @H'ZE/\:S"# [0;P3*_# M(*%#%^U_"MC3[CYC$)Q*$N"=UU(55X9/OL@&>@_T .L^>7*@H-C(2MB93H 6 M EARO$#"RB/U;/%K^@03!&ICRI2PWF!=KK:I22I+Y=57$A_K/=A>8@D'G386 M?MA@1;YK0;7G%A(1ZHF5P428.TNA["C[M2Q^-+4Z8>X$M5EP+_T&*:SGT.? M8>X9KDT&;5#I8XK"6*"GQ:.7) MX%#*17-N""I,PG8DVM@Y9J2",C2UJTZ_LM88@* =0^M=\!MCT4I (1/L:R+ MF@544# %\00W<$BX*_$KJ*+G[#Q!M9(-VA8,8%B#T/CUKF[@[Q,:%0VTSS)* M<6IN RVNBV,M$+A S;PL$*3.B MC6-9"V(Z$8L'^7L(>5J3,T:%,=U_1?;GU4/*E8W44^N+DD G;8TU'SLV,R%/ M^*M[2B])9'P^CS;#I11+3#)(;4DZ7W,M=M+2G!LA5JO1D9*\ 4VT&(J[1*[DC4$$#,7VBF_>"M->!E(S&<: M8S>%$Q:>85XF\3#Z4=V)S(<:YZE *?HL5!:L_UEP%]W'6/CR0M.]9.=A$M@= MI4D#G$B%DCWA05\:JZY!X;F#R!JM1N)F^H"I=^Z;E'[\$CDJ;K(]YMT]-L6; M23&:>!B;2;&E2T5K)DRD\/_-QZ#+V8/2R+-Y0\(TF,+5; M4T_18TY&D/,J1;?C#NY]OVO87L28X@]N?WAFIHM-+^!/*J[1:A),7HO[9E>][JO5O*LT?(%*2PG$&FE.+(CS1[,,:7J[])F@/NOAH MB0UFI@R=S?]HHM-O4$NVIJP,#<=R7ZB3YB"\A ML0REZ>_%ZBG$+HZ=ZKK7G+SIU;$=CJ_M2*)N,Q'C[]0YD.^!^J6ST+-K-OT1 MK=.$M%\5WP\MF#[M2]F$SY1UGGKV"0K%U5.!O'\#>$<-JKAXP"6BXQ/O8:S M[MU$,&C1J'2/P!V'HLRQK+X&;%=5&J6EM/XD44Q.K.L-R+*X:7ZN@T>\Y&T!6?-1,UQ*@AX5_>!X7!M.7P9PF@U% M()@;QI8(6OVTJ&]6Z+/1A#T)QC ;=J,2$ MM$W-8,,$I1XCKO=0L_D0*L:?1*2Q[;13\BGF_<#<\E^QZ[C3K*2T2FL4BNEK M:8%&7?R^X5;D"4&^]?!^Y7D:3N82570T3QQNWD-P#T72@,UX=O0E+3K&TX@, M2?*:S27R5AM>WK_]F X,$7LY7<"#I;*_)DAU#CJ%PW XEBI@+!DC(!X+4ER( M'0,90)?O)2Q18WPV+76O"Y$ MF''-3L[T45,S(;7#Q[D"5?FH4L'Y=0PU/^PRY&?558N>K@5+W<9$ "=$1+23 M$>&/$N>R;2?[PHW^LWZ/CN\$#"T@),7F5D\6EUQ>ER.I@T-_&(]>C?R@X*L) M!_@A)R@F;UD%.X(CK3BR6FM\F%W&NF^)0;!M,R"4(8VBIUA4HL=]"X&E1,(\ MC)T\2<6T>(F(3N9A9'$CZ7']G+@8A)SXGQ,%.'EN[ M6E)FVHN:<._B-W804HBWE](!>E\V)%K\Y.C:D]%4XKCQ\"@&E?#QW.AC_>2# MSE2OC3T,! M'W$(&C!OMSC8AY_SLMMK-3.$4Y='3/O@(2>..L#) 8"8H-HZC M+A ;^KL,9\V(1!NZ>$ F@V48BY7^,^7?B*DLU^<#3^VIS6'VL<,]"[56/C;! M@?N_)Y8[4*J:OR2O8XHLZ8,Q!8/P?]15O2,/4'KVZG54W26+(3 <&-<@?2KZ[,>SZ0M25#/2P&=(HMQIQNBA%B7 MOS\Y8>B)A].RWES]+$_8#P=M4=]H$97Q'#;2@CJ%+A9)"3*UMP'3GPC\(D!F M19-M9"-J75F&ZM"JL0+)AG@V"3D0!+O0^?-I:>>IIX);*E(#!:8",9>&3FL9@Q141K=R!%IZ()I50I7X!@FZNL"I9!+6/" M)38EI*8F!49=.H0WT[(,KB/60A-YE(;1J4->\R<>" A@I:X 5X\2 MYL@F>]Z/RS<(TK#B$51'Z M=18% -%M;F5_%3J),[^)(Z" MJJB:<^+PK@TQS0+;ST0FV%" ;+0OYLA,!RCJS\-M2U:3.;T M.'*BFUM'.8*/N@*BF= I/DTT9\8^"M/0N0C G+;(++'RL.'-A*V( L25 ;X7 M)'MB[(C!KDNO"24PZ"Z#!06['-+JMN.>'?E3\U3)#4R45QM/(1E6^>36>[27M&.L]" MS"G_3K;O#OF\U38&N2(FFT:6C,FP[[G*,T%/0M66EDWX3&EME%DB8G$O!:-. MFX8J]VP1XF2&HO>CPZV&Q_!9V*^&MDO-/:W#IM)X$%:[M2>T==MBU"F,2VE# MO=,FFFX-'0!RE$<.QL1583[,UD:8+XOY;5BPI1X99(7R&-@JA&ZYMBL6! U' M%^]Z ,:LO1Z^%:#P=FC-!HTJ%2!H/H5 $6);Q![AY01PICZ+9'9>F_20IB-F MX794LGL@H81JW4X1WEQ.OL &OZ%+X0IV%PKVC2='E\5?]0PI;B[V)=?>2]J! M$RJ:?]+,!X6-E:DMVKR'.6'\&XZN"E4DL1$L*F+^8K"LCAC[H'@-V7"F(J/9 M*\UW,DOQI4YLG,0%X_1]/'B%=(E0:F!\OK.2/AHUNL.KE)JDVR'B*8H95N7M MS^G. +JFC%ZP\07I075B_'"02\_L$1MKFG1=VB,L:9\(&O66AK.H;U%P21;L M41ND+Z7 7%4[O7^I9CJ3#-'^?M)M)_>UM=R?A0N>W,:<[38HE5N$Y7DAKC9U3*F[1E# Y2AJY^\%P=PQ+D2J)@<*U"M"D%G M*70R$,<+ MZ(Z2TF6'*+#5:QG2/=LC*1(R%O MT^$5"FMN)TCH#0BP,2AU :4$=CS98GS%LR)=^,:CZ2)0QOEP_S3^YR.:F&DE MT4[-/3HEZ!,O0STI#J&Z,97[X3[OVX:],358WB/24R M/$8$\17MWZ!+*4B$IJ,/< R4XS:TK.0VHIC/,4P:ZKC)(,4/PM(O@99:2TE MG9[4HWZ5F'TM'TJ64/K#N9!/UP%4W_F**4TH+9_F^MGM(ZP#R X?5/KU27FQ 1=>]&/+A6: ML!-ZG6-:CGG>=.FB:*%^T.4HF5 M3&Q/Q;:T^IBGXQCVCGMKLNP27M%ZH"O! M=\'?JLTFP>RPG1AVA4Y0Q.6;=5FCEP[9,@7Q@E4Q0+F'TS::4>9YDK/GFOQZ M]$GL5LQ&2X72W Y2[F=T8Y6X!BVG3C/O0?=BA1?)F.1FCB M[CWLB6O7N[-SENRN/S32.*,M;1@Y6#!(+0KTJ,G)M'.#IDM1N(UN(EW^*F_< M4G^BV5'Q\C97DK?G,EA+_=FL5AN(.=)9HXD7L+Q)I^AC40/6P^5RF\K%_ MT(-]:T[>2_<;';!M-C C%7[T6XLDU1A+!A,QIJ-1\ M> 5\3@$/GXR60N$GW\@!(8LRF&EMJ7%(_!F9(942/DAF**%$\\8'[N\^;\)5 MG2(<-7FCT]1^,*O,W1R8U=SS#MOV+-JK/)BEGD6.1.X\B#DZAYGET?(^'(B$ MV[ :^/XH:6D[7\<4^6BK7+66"Y&3I'^'M]504?%5V>1_X5&(A;I]MM16VG=T=3)@YU]\/=@QYC\^_CS;1WNTA M4]&113%_C=K5 #N!*D<:D>52%B37X>8YDD_>/'NYF.7_?S$ M)%WI^??F>> %_"5JEB$2L2S1HD02U+K@/JG6%O6P7W'[&8U':DV#CC>M;S#; M8*XI+_B*T4C=AYOW]BY(Y)4F1\?7CL&C'#'@UX%/^Q^DDQ1WB[K,L'F43K\M MZ?E<8S/2CO03.KZ\C->%C/V5VE!)BVV(%KG3"/Q4-W).J8 L/XP1ZT@S[,P- M#G$2,[0*7S"9-0=/8INA1IGJ)F(-&$<3Y]7?X[J2NZ F#_0AY9SG )#F]^8 M"\PCD^&[MK/8K&Z<=';T\SUXD5Q;-<5-V&OM("5^_TWL)"[Y7VPKF7FS]O%] M4MAX2-Y @=^%9NX1B-\ )$;B4".YR_?WB$/>S' _2E0%1&QX#Q[D,WQRM]__ MC2;%*#)YBN(=>L[:X:U_(!0(5\$ 8;7QC,LXN\G\(P[3@+K01[18QM-W&\_YW?R/E-J MI9%RO94T3QX[K_B/==-MSLC0M=\.U -2:;54^Q$&-N]HJL MU-'CR0+JXF'&E1E!OD M8*CXHS(+OC3(8Z/4*EIFM!2X$]2XP>G//_ M4AZL^"0<_60/=G%M-%>(9KNSRYK@,9AMW!SX9[$9-/;J)/N%-^)Q.I';H0F# MDQW0#&Q&YEHZ^+D^#J9$$\[KFL,9O]6DW7$?(5YF?7DCM$\"U2\T/[CH2V7"'>!U M;(U^!#.+/Z\!QNA/4\9H!&WSA,;OME3W4YL,UZOW_[:6:R)#@0:,*!XG):+0 MR!U4V!=%K(MG6:4M@+0Q2P3,I@'^Q8I@FE[D$,63Q\R&5))RD=2(.^C$B5[1 M$TL^KX%Q^^RJ'](>5P%VA@71JN(/](Q&Y3K._Z=>?C=QHQ+?C&F.,L7?.(#1 MS<7CC[^*/Y06AWEEAAG?._X8[QT7 SLZF#"^WX6.X\4S!M2 9>J^IC^+W(;> M3[.PI=KXDQC:B)%=(H_M0=[<'#.^)R:[_3N5[]5*9&T Y_>&/##W72MQ#\TM M4RD9>39O=I)Q?"]67@RQ-:$(]*1;?W)LNZ:\KOTES&*=GSR3<<=,^LC\[5OC M?;[G%W]:OW4MW\#+)293O5C$:]GU3+>&00O]@8KL3@L:VQ3]%_9*J7W8:M6) M6T+2_4"8:TO?< U"V^#DA]1>I8IBOFMR/Z'"*[UTBLIH,><7+\R-UQ#W> 2E MCW6X0]/UEY;MT5#.3FSJQ@) 9B(9VRF.\4^:11);,?#-MWE]Q\R3&48S4%QG M,_14OI0\)TKKL-[N]A"S:V$VHI; M^QN;B]%O0_&IFAVU/F+!.?YNBS#SYWCP$O;=.@Z8]>WJ5=A-M/G+XJ/F%/A6 M-WL6Y7QE?"D:]H!,6MGSWZ]20E&$SND41N&O>J![1[P76C2%B%J,3%M.Q#-O M\>BTGDSZ@OJ$Z6STGUFRT^\6I3Y=^A7Q^-,T& /K.O1W/P41D/%&=HPO'3PK MWAAF<48H:'G9(OV$79[B'52"7=X(J:_I/E*8#1=1O$V]#R,< ^]RBOJNRUS, MO3H3"(L//KAB&VY];265A#0!:H$9Z:X+\%V9U<]^Y^@N6*&_GR$7:_!5373C M+?$KNSFZIW[,NZ>2&]'U-]8F9#F8?F;I<^T&+!@$ON/2+PEGMP0=XZD\ M(>9LG2Y>&4G>E *JR.KEOHFL5Y8W7R/]*DM/R!VF+M4]P>-C_G) XON0E=O*+=U5[O(]W[,L/#VGC M+V9VCLQ :@RO+FZ(CW'F-VL<[?@'- MR-[TK["I]^)?(*L]-S%)8_CDS;KLQ_6V'*,MLU(K-T>186'-Y9\ZO(<_G1Q> MB++GY'XZL*C^D[3\\7$9*X[V)[8VW.2+3V;GJ_F'K?!2Q7G4 WXK$[S.W_E; M<_=RFHY2?ME^Q]M8;/_;G6O1>_AH37,K6N07I(I4Y3\/D?V(VF_H0L#F8?.F M_#9:GJ1(=PC:G_M+^C*ZKLR28FH3Z3<"SZ$8'N<4)^OW@-C1PDF7\/-'_8OG MCT('_UG#_]KF"/^EI,=KU[L7SR&$V_I7@')1VH&$;R^N+LRG"$N_O7AY]&UL[5QK<]LV%OTK&&]G1YZA M98)O-H\9QVG:[:9)-D[:W8\4!5G8I0@M2?FQOW[/!?B %$F6$S=N.YU)3!$@ M@(N+^SP ^?1:5?^IYT(T[&91E/6SHWG3++\]/:WSN5AD]5@M18F:F:H668/; MZO*T7E8BF^I&B^+4<]WH=)')\NCY4UWVKGK^5*V:0I;B7<7JU6*15;ZT[V4J%Z*LI2I9)6;/CL[XMR\" M>EX_\+,4U[7UF]%,)DK]AV[^-GUVY!)!HA!Y0SUDN%R)]O])SQUPF62W.5?&+G#;S9T?)$9N*6;8JFO?J^@?1SB>D_G)5U/HO MNS;/)IN,Y"F\F769,^?5NJ: M5?0T>J,?>JJZ-8B3)2W*15.A5J)=\_PL_^]*UI(X5#\];= CE9_F;>L7IK6W MHS7WV$^J;.8U^ZZWM\<>L'#.?.\QS/7]/?WX_/U_W MYW_F_$SK8'MKTHAOZV66BV='$/E:5%?BZ/E?_\(C]\D>VH*>MF!?[W?2MK_U M&]4(YK.__B7Q.'_"[,[8*UGG6:%YN%[QMF2OQ*1:0?]8JIGL.>REP--5(VKH M")ZMQ)1E1<'4C#5SP>IYAJG3W1O1G/_PPF&O7Y^S$8WKN4],F;[A3XX=EK%E MI:[D5%34P@APS682U%^R6A4K0X#KN>RWRN&\]6)*)L M5JF%>0B=SK,2SRR+5?-HV@J,)= M&S2O/=&204-3W=ITWZZJ3^ACHFZT#.CEM@C4JSJ#FZE9J1HF;I8P_<1FQ2;$ MHZ(P]T1CJ6!,LV*K^&EIH5KY/SS=BFHSKX1@"[)V)"%239G0 @6+I=6I,UIF MQJ5BV?3?$'\X,'A-4KPS] Z=Y'O4KEY-ZB;38@@!MY0PJVLM*#/V2MTTE6H< M]K ME^OF0XAB?*UL::Z=%FD:=D^ _B&X$B!-K*N)KS7GQQ5DU[^ON_KGNPOV0>3S4A7J M4M(<;<>%VEW:@GDM%J("C0O$=O($HU425$V)T9\?#0/MNG TG'PZ_LO/@[O,!KV$W\:C<7)A9HUVEPX;*J(19-5#?]9ZVE=K)9+:.[/4B>FG3U9*]UE6PW+!6G),2J2#TF,?=?V]T56AWN#IC^VU?&W M&9UU)O]FS(_W:;#P:X3/_ITQB_^G^=EG?AQ"9D1%+&TEYFL;I#7[$XP1MQL) M[2R)O>K3546,F U9.[2/N)BO]!2L)3RI1)$U6K%JDQ# %PTI7:?^)/T[\A.S M9KN[O!:5GMPB0QQVJWO,IE>R5NBC[HP0E)_!8A*)Q6IJLB2%@2L&YD G=8:O M('VD3:J04ST KXU=UD:X[,LRLM NJRU+E9N[:&#YX[3@:; M1A2270.%:F&T)AI'0SW,/:VOO((]=(QIZ_"-/L72D0_Z63=&6+]<[-*Y^\W; M6",2KSURI=U""R2 &"V$6#))&@@&[6QH',K^R7167C.6M'XB1#DDOXY>9/( MT'X8AF\UW.3Z3Q[MVE*_J[KE4W?;3KZ_)QYTO]O5[&X_J :K\&Z=F6N^X-/) MG\-B.DBJR=+;OI-U&@7CT5(T@OB%"3ONI0LE;Y#G')N%0;7OI+['CK<('"H# M[J/*3YPH"EC@>%["(NZX:<0X=\+8[TGB/'3"B+/S70Z-8YP@,;"A]X2E3N"% MS'.BV.W[\"+'#7RB7$/J9)KR;"F)/Q:F@73HENPP&PTV^9B%G$412^.$C;@? M'_=]IF'2_PXQ7.33--* Q=P)TI3QP.%N-$PC\# -CYT9:=:LO%OXSLE<8L8& M+7%@PLDZ&?KMY0FBE"4^33L(4A:[ _L")PBCOA_+);"1'V$Z(\_#'Y"<^+AB M18<9CD"Q[QXCT-QP/!VK1[X?40\.3^G*?6^M,5;V6/.\R]\\U.@R? MD5U6HK6/)/U:>\B (5JN,5$G=5T6A2Y+(",N5BUT+6$%/U'UW0W%R11-=!G_ MK9$IEW$G"M#*=5S)A#6M_ 75*X M(QHR#EC?C(CNNM2-]#">-0C7]'^OU/0:SH>T*TYCE(9>S (?EY2A*!J$,(:: M\T$7[J$NO3$C#S\!?10UE766MV PN78$312(4CP/]T#1R.4G<>Q"-'.EG3H] M74TIIC*AZ-G%.4SE4N8L<1';M,G/BRX].E>+"9R''JY-@K:F*;:7Z@!6;4P, MU970VRW:8<*9=A%KW<.A5M0UVQJ6M8YR/6ZF>&!#JEOJ#O.GB^R63>4,^FT" MAN9N[^UTI*#.-!4Z/::N$%73K"I)@?1[Y#>U'@5.8WV.6#@2')7G%,Z#]NE4 M+Q/&E:79E]6)P$2MFBVS[F9E]S)01"FD%LQ6Q68T)7! M&AXM0-D1D-P_$#G0&OIM9CO\X.V/(01H"[;9Q*BMV[QVC;M[VR1Z;=F;T[/^ M=^_7N[JMAC&T6H8;+3?O==;<&4EE;,*!$;DE9R1"JM8Q:T8Q_JIHAAR?;),. MQQ$+B4O8,*,C4#BR,DC9KVESI\A:F*"G!IF0-I.]8'\>7; 8KJ"+2:!UYE: M=D.:M@3!4(UAT];;O6D+[T%/\,,!K9\1N+T4-^RBPYEV EO_0";59+^(20]J M]24VH/7QHD5?;&2+DEYY6;99^O_(%A _N@U@;2RD=B,/@IK[X9#T/N[V4G0G M5//(2+&]U_KPVYW>SNW.G^#AXOL*ZSL8_4K>V+BGFC77I#O?+R8_](+9/K=S MOY/V;19J"E:1JN^&6XM^G![:6#X$ONJ%P_8G&WWW\3WX,$"'QW_NB'ZES7FS MF>B[=\CJCRLL6G)?8?T>@Y8_R4*L[RSVQ3M/Q11J-3UP"UX+W R.R &;$ A! MC$U(.:E41OU-(;^5G)AF> #"G!5?)KOIPVS=GPUAZ@&[ -P^0(-EU7W) 660 MH &SRV39)];6;D._$T"6 MD+F]P.R]-+2;\M8*+%+9G/E^X/^)\"\[_&]N1= MQVNXQ#_!8H*>6V)VU0WC6E73>LKO7 MPGX?0/,0 -.*"F$;'#>-";3LAJ8RUVUART'C4,R=,"0\TP^=)++PFM#A2<*\ ME& KEKJ.%R>[TFNON/[:?OW4'SR=!VAY#$;A<$Q&_EN0G^#<$#*B-8X MUC3Z ?,]QXLX2WW0N E%'@HUQCQ@"2?0BB<1"(_Q^UU%6P#-K>:9P(-F3S@> M4-DD93R*F3XB?:)F)ZNZSY"YYS,_'D"J .OQ5N^\%*J\/&E$M>@>W62>%WCZ M_U9XD\<&1.0&WTR38X-HIEL0S5&LD4H=5.#:@9@ZFM!LJ8FA;QL56X$ M@HG-<7 \(*$@VNJVW:*A;&C8R>N?)7G!$HWBD*#7T$D)5G[=SW5H+(8EWYSY MR(^H"_WWI9@T0P5WW,@[_N3^!<%^+8CU,! A M +$$A;H0SE #HCQP0MQL0PP2#5]RZ ($&,\1O.F'6IQMD$ CK;"=&C3%=0<@ M0.,FL;X2BAY;N"AWHI0S'CJN[]%X:91 NG7A(?JYAGW^'A"FP;!VQG2PGY\- M!OF?@?W8R]BUW[SNQW?]N!$UGW'5T=SAH7820A%HGO!F_TC]!-= M[Y'"J ,A(;X'$C)QD7N/+%NH92&N%/)LN9 D['U>W=6L 3Y_WP+XV$G,<&"2 M,O6Y(G>U+>7^HJPD^-QSDEDK*WW&8:LFG5::3 93U+-0>(7X"Q]XJ4HXA M9(-(.]<.ZB$2\>#.1/R3PXZ_UT1\ S;B>U+Q4M">GQ;I@R7Z'+/3@> '&V* M]M]!%+)'4=4'R+8$/2>TU.AR*B]U;#FK]"M>5I8.X])0!OI%@AT^1K8=/72R M/7#W*V;;_&LXE@]Z%U=5B$KZ>J MWG V[]<$QNZ"MOD?!]I^FS>*='"_MCX<+,:_&BPVA*>65QF$]J& K6$8C59% MR"AA=ZPA1Y07(C:<-49V_.YT7D\*&M+QG6/F!=Y+0)QZXVS&R3?B'AUS_ MWPI\Q7%D<)M8XSBI;X"OP-\*? 6$BW&76.>Y@6D8;@6^/L&@0,%Q^W<_](4^ M(Q[:<)GC<@-^15Z\@6#U#\6$-YF_]T"OL!P:#(TU:N4[<:+O'&[#HK\M],J' MJG)&");OI&[($L?WHZV 1XS)<3Q%D!7G#AV9A!C&D!T;\NBQ99=!,CED:CO8 MX4'Z$I=Y*6=1& W %2!3O]"58OH+*.R] MGH .Y-_V+S&PT<AMNLKDV7<2\0+:DS,^MB;%QV["W'&8L)<2N3*]7C#V7+LZ,M5MR;:/ MWYQ:'R&"W;_4GUJB3 [)F_D>45_:?\WIS'S$:'C&ULU5AMC]NX$?XKA"]W\ **+BIK; MB6Z$PLI*FYH[O)KUU#9&\,)OJJMIEJ;'TYI+-;J^]-\^F>M+W;I**O'),-O6 M-3?;MZ+2FZO1;-1]^%6N2T7#5^+S\+]K?ED\#;MN12R%LI*K9@1JZO1 MS>S\[8+H/<'O4FSLX)F1)DNMO]#+S\75*"5 HA*Y(PX6N=KN-F(*BE"O_\(=IAL.$T?6%#%C=D'G<0Y%&^XXY?7QJ]88:H MP8T>O*I^-\!)14[Y[ Q6)?:YZP]<&O8[KUK!/@IN6R-@<6%*/893(&JAY9UT-YF!SG^F:L)F\\2EJ79_ "_>:_J MW/.;_^>J!D:+YQE1GIS;AN?B:H1$L,+[_"LS# MC/ZJG6 +]M,/I]EL=L%>X,MN/M^RWW0C(N:J8.^DS2M-WZRG M!N]QS^"(4@) +%L1BWO/@EOF2L$:(W.!)^Z0JFU5L*5 7N<":5FPMD&.6EX) MIE<0@ST6)4D;UG 95YWARJZ$\12LDGPI*^FV3"K:H$TA3+4-5#SD_%*XC1 * M"6.^@%O#C9.Y;+A7Q7E0]4X]5G!8C%0$QPA8$7E%.&IM'>/%/3:C6NG6=EQ1 M&8-2/>0>VH3]!C8[2R2!L[0L1ZZ(!YM&&-]$%(+ 2/LEB>2$5K?PZD:Q MW @(],N3050*Z_BRDBAS\-L01BDAQ.3EEFU*F9>DO3: ]%6$D).J:6&AELP9 MG4H; ZY:N%(7NM)K4D&J& N$9R!"*F\6(P2KQ+VH[#F2Y.SXY.R"_87>V!]6$#&\'6<#RD6&?:D&2(X"+@#3TK M.MU.'@G.#@I^*LW*6E;<[,EZ(B0Y"/-E+G%[S 1 H4 +K!.?4[4N1/4Z -SY MP(F\5/*NC9*"%WE50"E5CK)15=1(3HG!K3 ARPP2>3-D8OM0GI MM!UNB;1(=A[,TBX17E 08KN!8^+4X ,6@#2 M>"H$F0"UG/@1FZ$'!W[S6+K,UQY@+]EO04P5Z!FZ5>2,G-N2K3 ,]HMDCBZJ M=GP#O)P;LR5.O*;]MO/(K:ZA\+:W%'$%ISP/5*&M>&./E7!'@Z6&;^F[_V): M !K6L5#\\R_KF *[R0O!U0;^ZR&Z*HHG?)1K8CR"FIGP_*,M"8CM,:7,_@,/8=[ MZV&L:C%^]Y/5N>_YZ?SBN__'\MC;)J8)ZKJ#%C<^I\[9^[N6FCBZ!1SF*Q'U M1H/285G,*#:;)<>S]+G7[X)S%P#G,#LJ@5K3.+#?Q3KAW?\\3/[E&W!P5VPTUAJ3SL]Q^]6E&A]N,G^K#_#!YM[D+']/[.A7$X<*-1H9I0@*%R MQ\*,VH4#NPWZB0=Z[FK-(;Q=QRX$-5[?-1%:I2C68B\V?>L:V*/0*)*TL=3H M.SO6<>+ 9$DC+/$49N"5G7U]VI T9[!5&3^1OVN._16I39V6-/.+)L MV H=PNJK[TC#49):V6YL)PO%,2HVZ5X23;K[P.-!9,DK/QJ'NQA_%!EW6;8W MCM)T,-^7:-L I/..+9.!/T.Q%R<:3Q)+R M322"(WBXB[9N**-+ 0F\U@@_VE:8HMX/A[2GQZ3\I>(#E\0C41A1AVGE:_U=2W%.9UI?ZR?L M%_%HD(RC9C=\&82+@M2UT1LD@_&@NHSM1K#N<]-4$H+'J+SL1ZI#LSG[,<95 M-W<6^Y&'TQGW,1&Z&5=P5/6QL3^6F-F_6TB^3X9(8# M=C !6QE=8QY%_EH9BGQ'.$_F\S-VBTJQ]J.VT>V:CKEZ)<,TCRSMB=\DZ4G* MWJ]6=)R 3C62H3^@T4R/TH[8#_;K=XW/TJ,#H+.N'1Y FQTGZ6+.;FFTQ\0< M9([1TD].LZ-_ACY+3M/%-Z,&U^-#<.>/)K+G;N2F@_O26@ ;W0I3/T%PAJO3 M_FM_\7P3[EMWY.'6^B-4HXI9B16VII.3-R-FPDUP>'&Z\;>O2^V;2.Q M#<19BW5HBR#MUL^T=+*)4J1&TG;V[W>D;-EU$R$!]D5\NWON>8XOI]E>Z>]F M@VCAL1;2S(.-M,R M6,S\W+U>S-36"B[Q7H/9UC73_RY1J/T\B(/CQ -?;ZR;"!>SAJWQ"]J_FGM- MH[!#*7F-TG E06,U#V[CZV7F[+W!WQSWYJP/3LE*J>]N\*&:R3 -H,2*;85]4/L_ M\* G=WB%$L9_8=_:)N, BJVQJCXX$X.:R[9ECX<\G#E,HV<]#.FM!S7Z0A=C2"04NGXS.-,)6KK@09'.:-\[>;FB]=BZ@ M*O@E&J5T*X7P#XP!9G](@9=\Y:SR?JMD,(+/"@R7:XK?7GO41W+$PDFN%?&R M&R8ACGYUT3V7)_BOF&"R0!>*K'XBQ&3I8X[@*P%42M##3('!>F=_FAV@0R\H MVOHDO.G9 @K60M%6O?3HG+;TDQU;4Z4S]B(?1S4^(I4)25';S)[\DGC0(RD!?[!?)X4DC*%3SV*X5G9HN.^]L69:+H#W5:P;K:K_[=MV3N9MS\/ MGT@9:0*!%;E&HTD>@&X+&ULI55M;],P$/XKIPQ-()7FK6]L;:5U@ !I8]H$?':3:V/F MV)GMM./?^Y_%SMN\\7BM]:PI$"_>ED&82%-96)V%HL@)+ M9KJJ0DDS"Z5+9LG4R]!4&EGN0:4(DR@:A"7C,IB.O>]*3\>JMH)+O-)@ZK)D M^L\,A5I/@CC8.J[YLK#.$4['%5OB#=H?U94F*VQ90$H<#,.@9&OQ6>HQ".B&3<;3B#=DD'W!UO MV3_[W"F7.3-XKL0OGMMB$HP"R''!:F&OU?H+;O+I.[Y,">._L&YB8PK.:F-5 MN0&3@I++YL_N-_NP QA%+P"2#2#QNIN%O,J/S++I6*LU:!=-;&[@4_5H$L>E M.Y0;JVF6$\Y.O]L"-5QCAGS%Y@+-.+1$ZR;#;$,Q:RB2%RCB!"Z4M(6!3S+' M?)\@)#VMJ&0K:I8<9/S&9!?2N -)E*0'^-(VR=3SI:])LJ'H/4_A:N/$5"S# M24"7WZ!>83 ]/HH'T>D!@;U68.\0^[\)/$QQJ2S" (Z/1DDQ"GG>%@T*Y(WD%_!'&O$PW[K?1[J]DC#@?)J PT]1E@ MQB#U2CBS>UOFMJ@#;Z)NCTI9"->5WCHS;4U&1$\PR3M0"Z!,0+YF1[F?5RO4 M.P&EJAVP0)%3FH F\U?W84/&ULG51-;]LP#/TKA OT5,0?2=N@30(T MW8IU0(>BQ;:S8M.Q4%GT)#EN_OTH.7&SK5\XYX,6O$&I_1?6\>#9_B@:60-6HK M28/!91X0:@P=YY!\&>#MZB4)V(9 MOW:MSTW$$>6L=U3LP*ZBE[K_B=7U_U.>G>&H9)Q;W.L-:D=F.XL=TWEGG.^@RQZ:?0!-,W@@[2H+ MGW6!Q9\$,>L8Q&1[,.GD?ZF?A MRC8BQWG$C]VBV6"T.#U)+Y+K(\(F@[#),?;CPHY#OY%#N(33DVF6IM7]TVK)[@I5 M$6)6*.1Z;+D*88O">+7\TO[ILV\LE&"#G0(T\; (Q:IH(\,&\93XFJ-E709H M94DA7^6^ 8E<6EA8(?IMDY/QE:3F;JSSG1CDQ):S1N\]@/A@!<Z[!H+(-; M[?II'+S#+KOI1_@MO5^$#\*LI;:@L&1H,KH\C\#TRZ4_.&K"0*_(\7H(9L7[ M&(U/X'A)_$9V!U]@V/"+WU!+ P04 " "]BF%6C)-\W]X" #N!@ &0 M 'AL+W=O)31!([+Z"M M5!AHFP:J0-L^F^2VB4CB8#L4_OVNDS9T$^V&]L7/>X[/\>-ZLI;J41>(!E[J MJM%3IS"F/?,\G158"WTB6VQH9BE5+0QUUJLL&% MW5M5"O%UC)]=0)G.W 7;DJC!WP9I-6K/ >S?=VH:CGC2QY M66.C2]F PN74F0=G%Z&-[P-^E+C6.VVP3AZD?+2=+_G4\:T@K# SED%0]8R7 M6%66B&0\;3B=<4D+W&UOV:][[^3E06B\E-7/,C?%U$D=R'$INLK%>I6?A!&S MB9)K4#::V&RCM]JC25S9V$.Y-XIF2\*9V4+1^2KS"J+)X>JI*UO:<3/Q#''; M""_;\%P,/&P/3\#@1C:FT'#5Y)C_3N"1J%$9VRJ[8 <9OXKF!'C@ O,9/\#' M1Z>\Y^/_[73@"=_GL:_D3+D9G=GP4Q/[Y 97AJ#(\Q/X!E8=Y M;J5!2.'X*&5!< [OT_;3/C__<$UGT]$3[H]GM_UGG#VZW0Z#2ZD-%77;&52 MHQ*K2\NE60N%$(8N]T,(??>4)W#=J:8T'8W;H&7Y8ML: C?BW)81AV](#[.0 M50YEW2KYC);3AOA)#"DM^V:Y;+01584Y/313;)X8*AM\RF,J8Q[!7&LD?$=7 M64$F":*Z(8OP*(6(A:.I\-1E?@)AY(9) /,LZ^JN$H;HB&)VZ2<*LFCD*XI3\A"-R0 MAQ#X;AHDV[CW[KFWDX.(?]5G6DV;US5F2$?CZ)C,YT,.>PL??H(;H58D&RI< M$M0_22('U)!=AXZ1;9_1'J0A,WVSH \)E0V@^:6DV[_IV 7&+V[V"U!+ P04 M " "]BF%6AL'+ZE8$ )"@ &0 'AL+W=OD9-5VDZS# $.F3G?//?="'A<[J;[I#:*!?5,+?379&-->3J>ZV&##M"]; M%/2EDJIAAE[5>JI;A:QT1DT]C8(@FS:,B\ERX61W:KF0G:FYP#L%NFL:IAYN ML):[JTDX.0@^\?7&6,%TN6C9&N_1_-'>*7J;CB@E;U!H+@4HK*XFU^'E36+U MG<(7CCM]M 8;R4K*;_;E?7DU"2PAK+$P%H'1WQ9OL:XM$-'X/F!.1I?6\'A] M0'_K8J=85DSCK:S_Y*797$WR"918L:XVG^3N'0[QI!:OD+5V3]CUNB$I%YTV MLAF,B4'#1?_/]D,>C@SRX F#:#"('._>D6/Y&S-LN5!R!\IJ$YI=N%"=-9'C MPA;EWBCZRLG.+-\+P\2:KVJ$:ZW1Z,74$*S]."T&B)L>(GH"(HS@@Q1FH^&- M*+$\!9@2GY%4="!U$SV+^#L3/L2A!U$0Q<_@Q6.0L<.+_T^0/43R.(3=&Y>Z M905>3:CY-:HM3I8O7X19\/H9@LE(,'D._=<(/@_Q41J$.;R"G[#@Y8L\"N+7 M__F?RM#11G65.%Z?Z]DJ';]$<"NU@5O7O:B K14B;62BPD1)6[EF=D?J#6\U M1%GNS:B%HC3TDB""-WNN#1=K,%ALA*SEFIRFJ9?-4XBCS$O"$#XK5B((UJ"& MN1=$F7W&.7R4XE4AFQ8I%87G$>/!I&E.1>GLT@"G-OGL8G81"9 M,(?,RV:SI\((2&4&N9=2I(3P1:U#]?'K8E[FLT:+15:#PWW*&>K60RE7B%<4&_X M.6KED1^?RS.2 M1S-_=BZ?67G@9^?RW!7P(HF/H(@?W3HJ@\JGW36$4W6F^Y'$TZQ0V+I;?25% M5ZZZ*TS7[UA;VD/Y<#^46U'S]CN;TM;9/2GDB%]^I5.@W_N$Y5I0]24[S;7_ MV#"8'HUG.DC6[A*B:6MWPO23>I2.]YSK?KS_4.\O21^86G,*H,:*3 -_EDY M]1>/_L7(U@W[E31T:KGEANYJJ*P"?:\DS8GAQ3H8;W_+?P!02P,$% @ MO8IA5CG:+M)+ P GP< !D !X;"]W;W)K&UL MG55M;]LV$/XK!Q4H6D"(1,F6G,0V$&?KRX 47M.7?:6EL\55(E62BMW]^ATI M6W:-QL#V1>11S_/PCKP[3K=*?S,5HH5=4TLS"RIKVYLH,D6%#3=7JD5)?]9* M-]R2J3>1:37RTI.:.DKB.(L:+F0PG_JUI9Y/56=K(7&IP71-P_6/!=9J.PM8 M<%CX*#:5=0O1?-KR#3ZB_=PN-5G1H%**!J412H+&]2RX8S>+D<-[P!>!6W,R M!Q?)2JEOSGA?SH+8.80U%M8I\![KV@F1&]_WFL&PI2.>S@_J;WSL%,N* M&[Q7]5=1VFH63 (H<XCV?L] I5&_^%;8]E:0!%9ZQJ]F3RH!&R M'_EN?PXGA$G\#"'9$Q+O=[^1]_(W;OE\JM46M$.3FIOX4#V;G!/27NG_B*UGCG[-=)5P8UI>X"R@5#>HGS"8OWS! MLOCV@E^CP:_1)?6+?EUF?E 6@<7P\L4D8>P6#DK'B3!4*H72=".PK5""K1 * M1454HN:^$%HN2J!R!NZ*XGLGC/#K:@T<5IVA/8T!W!6(I?'\-1<:GGC=H0.1 MDK1B+?BJ1I#4-RR7&^$,+DL0\F@:@];T>V@LK^"3TU(U-0(A-T1SH+X;B'^P MWZJHB$US(6%SB(D\*A H.SIJ&X<$83?^%.+T]C^/ITJG\W.<2\-3(X$%K[GS MA5M8X49(Z>*@(VE1"U5"%D_"/&,PSL8ARW.X^_ET_^S06/X55_W])23*PNR: MG>.62ELM=@.*C<,X3B- MVEFM++!PG#P+^FOY"*.4$-?/(1Z[MJU_P!?A>S;MF*5':/DWM3/JYY02OAT7 MJI/6L2@7J7E*EW+^]N$58V&>QJ_A51:R.']]>NY(.78\\@ M^^>@-ZQJ?0M>*4L-W4\K>D%1.P#]7RLJ[+WA-AC>Y/F_4$L#!!0 ( +V* M858/6Q&#QP( +8& 9 >&PO=V]R:W-H965T.8-78U#9-^^UW-@EC4QNM MV@OX?'>_^V-\+'=*WYD:P)+'1DBS"FIKV[,H,D4-#3,3U8)$3:5TPRR*>AN9 M5@,KO5,C(AK'\ZAA7 ;YTN]=ZWRI.BNXA&M-3-0-2,.5)!JJ57"1G*VGSMX;_."P,Z,U<95LE+IS MPJ=R%<0N(1!06$=@^'J 2Q#"@3"-^STS&$(ZQ_'Z0/_@:\=:-LS I1(_>6GK M5; (2 D5ZX2]4;N/L*]GYGB%$L8_R:ZWI7% BLY8U>R=,8.&R_[-'O=]&#DL M7G*@>P?J\^X#^2S?,L>0E^ ))1<*6EK0][+$LH_ 1%F-*1%#VFMZ5'B M9R8G)$U"0F.:'N&E0YFIYZ7_5V8/F3X/DLG*5SDM(PF6VFYW(*T>&_O.VZX]\1M MPTO0/><0*8W#;)H-8D+#+(L'5*M5!<8-$29(!=B&))PG&3[39$&^V1HTQNAM MQ:A9B*'QC&1A-I\-[$4F'"<$(=KVPJ.BM!K#CRTM[HK;*>QJZ2HF=Z" MF3SWU4:C6=( FKF):;#SG;3]6!EVAZ%\T<^BW^;]1+_"*%P:(J!"UWCR=A80 MW4_)7K"J]9-IHRS..;^L\<<"VAF@OE+X.>\%%V#X5>6_ %!+ P04 " "] MBF%639FRL2H% #S"P &0 'AL+W=OU:+?;9\6F8]UDR9/DO-ROOX>R MXZ:=&]R7Q'HA^9!\2.I\;=T/7Q(%L:FT\1>C,H3Z_63BLY(JZ<>V)H.3PKI* M!BS=I$GR;E))94;S\[AWZ^;GM@E:&;IUPC=5)=WVDK1=7XRF MH]W&G5J6@3PK?ZUF$UZ;7DJB+CE37"47$Q^CA]?SGC^_'"WXK6 M?N];L"<+:W_PXH_\8I0P(-*4!=8@\;>B*]*:%0'&ST[GJ#?)@OO?.^V?HN_P M92$]75G]7>6AO!B=C41.A6QTN+/KWZGSYX3U95;[^"O6[5ULBZSQP5:=,!!4 MRK3_):UJ$\TF 3CZ99)W\92N?/B,_3<5G:T+IQ6\FI_RQ@@G M](C2':++]*#&/Z49B^/ID4B3]/B ON/>P^.H[_B0AU\/>=C*SX;EN2K>^UIF M=#$"[3VY%8WFKUY,WR4?#J";]>AFA[3_#W2'Y;_80 ))>/7B+)U./XC'^L1W M$J5"Z%IEUM75LMF[PY<6] /AO# *44;4@)TXCU](CL0:8BCW,A6W<$%S:!)Q'\^@( MC>/MG$$6SE8"U&W0V5C;C&_W%K!QVL;LJO:V16T=T8[4AS%Q5,',VDXR;2I90PL,,L.'!L^2?8, MC\6E=2@@)-#O(7VJ4CKJ>;S8QO Y'P2PNB58NB(>.@L?I E*:HT;.AJ[)I]) MA_#%8CG](*3WA)&& \RXR"LX'\.XK2/=9;X"Q8B9A\@2C+@8_@=L0S0';^/$ MZ<(S!)\'2;ZS=B6-S*5 0K_=.IW%<%E MX)^)_UA\%,R-'-0I**9Y06%-9%"FK&#V)!)KD),IW/(KQH0)!0XXN39=8?GA M\LXP&V,I9>3XHQOIW"0Z '?U1ZVY\33FB1)MLB^VJK6* MTGUOZ%$^R_Y!.$@*K(5?]F-/+B7WXQ"3QGS6%)#@J*?3SJ7*36FCT#\)%?\R M&:>](Z\?+^60I?0-3)4J*W.S;F$#&!4_2[S* MR?$%G!<63X-NP0;Z=_[\/U!+ P04 " "]BF%6.L!%\R@$ !4"P &0 M 'AL+W=OWCOO/E6R*^J M1-1P5U>-6GBEUNWQ>*SR$FNF1J+%AOZLA:R9IJWX*4$U=4UD_>G6(GMP@N]AX,KOBFU.1@OYRW;X#7JS^VE MI-UXAU+P&AO%10,2UPOO77A\FAA^R_ ;QZT:T& L60GQU6Q^*19>8!3""G-M M$!A];O$,J\H D1K?>DQO=Z41'-(/Z.^M[63+BBD\$]4-+W2Y\*8>%+AF7:6O MQ/9G[.U)#5XN*F57V#K>,/8@[Y06=2],&M2\<5]VU_MA(# -7A"(>H'(ZNTN MLEK^R#1;SJ78@C3[E3 M)Q>](!=&<"X:72KXJ2FP^!Y@3$KL-(D>-#F-#B+^RIH1Q*$/41#%!_#BG66Q MQ8O_LF5.+MDO9ZK@6+4LQX5'::Y0WJ*W?/TJS(*3 UHE.ZV20^@'M#HL]U%H MA#"&UZ^F41B>@,.!&X22W2)0D4JF>;.!ROV@F(,X5 +HN\6 M)0(S*!7U$G5LG1'$)__X2ZG744>RV?<2_874=;F^$S.).MQ$PTWXM[6Y>&)^ M+I2&Q ^G$:U)EM&:S@*X+H74;TUTAGQ93/_C"-(@@D]"L^J9-WNX:3@UZVP* MJ1_,'E6_[MJV0I,4))LS5<*:G$WA=0^ Z\45T^0'"N.SO-M2?/Z-$.T+U1^% M[_\(F?48/7[&:>0&*>KG/NI+I2 ":CKJI/6W27T7HHJS%:^XYL2<^%$2F$BE M$[/&(7RDI^[JXC.Y6:$IF)6F2G5H>)>7K-F@+32')585WS!7D],L@\IW_/0W=@GE]2CAB5I@A@T+6>[+8XCVVC>0#3*(![%SZ4* MKG+1D?_)/H2C'PPK^6GTF [G3'?2A6-/>QI&ZTF+,B1)#,TR9OQY9STFUA?; M+ETV[W-3_R 0? *QGV8S0Z84Z(1*G,@,9K/$$!.(DXDAIA!&@2%F]E6@-DU3 MW=J\"P^8Z:SO(<[0EMW7MD=/_'0ZH1L5A9W;M\1D'TDBM9:C*)N\^4YNF((3 M/Z9+SSHI3<;'?CPC(-%L7".+_=ECD/>]MN/!I%.CW-AY3H&-GQMZ=J>[D?&= MFY0>V=V\><[DAI-&%:Y)-!A-4@^DF^'<1HO6SDTKH6D*LV1)8R]*PT#_UX+> MY'YC+M@-TLO? 5!+ P04 " "]BF%6%D&IKJH) #(& &0 'AL+W=O M#+?G.^ON M_%:I(+Y4IO87LVT(S>OETN=;54F_L(VJ\4MI724#OKK-TC=.R8(W56:Y7JU> M+BNIZ]GE.3^[<9?GM@U&U^K&"=]6E73=E3)V=S$[GO4//NK--M"#Y>5Y(S?J M5H5?FQN';\O!2J$K57MM:^%4>3%[>_SZZI36\X+?M-KYR6=!D636WM&7GXJ+ MV8H<4D;E@2Q(_+E7U\H8,@0W_D@V9\.1M''ZN;?^ \>.6#+IU;4UGW41MA>S MLYDH5"E;$S[:W7N5XOF.[.76>/ZOV,6UI^N9R%L?;)4VPX-*U_&O_))PF&PX M6SVQ89TVK-GO>!![^4X&>7GN[$XX6@UK](%#Y=UP3M>4E-O@\*O&OG!Y;:M* M!Z <_%QJ/J7"LO9%V('UOI9!V4\N?+@.-HTS)/IJ^BZ?43IH_7X@,, M;KWXOBY4L6]@"3\'9]>]LU?K9RW^6]8+<7(\%^O5^N09>R=#\"=L[^3_$7PT M??JX::JEU[Z1N;J8H5B\M_S_'G3?]L@Q+' MI^)(?/4ATY7BK4=1^-SI3!5"UX+MK46P(FR!@\AM[:W1A0SXO=2UA$5IA ]X MD,[:*4%R$O O%9AR#DO]5CHEVEH'\8]OOSE;KU=OWMW^RI^.W_R3/H >G,[#XUNO/T[V-D;67D#@A&V=*+2#8E@7HU158VR'(!?B;=V)1G8Q MS$H62C2M\RTP&*.+INBXW@_$0'XM!$1$P.-HELY'I-C$?GEQ#W>%O5=.!&@> MKZ$?C9:9-CITB">WFUK_%R9EP.^=V$#.ZGT\,XGSD[/2#A) ;VPM>E@ MT_KID=%:V,JTFC]MY;T2M0VB@Y%,X9 'P2#+OLVWG*NMA)$:1JXXK2V4KD6PG%\00CP\9ES+ M#O3HLXHUUV:_@RBT08I[Z;0*'>NAF]Y'YE$- M DTXHYC&40O 1:0TJ@%5$_>!.AB"'#\ 9D9!5-A/IS6 !9 !AN5K#$4,6ME M&FP%0;U9<@MG&V2E/05,)9? _EEBDZR!"%NG"W ?O%9.NH4E*B? M8IPU#51FBNE@C.G9.'NO(;!<>#P$$9 <=I.,[D:C3ADN@R3# K9X6JW'Z@5U M"NQ O7E;!OH4>8"^##K%>B8!'.N1$$)" 6^LRP&0W'H (/%/0H/.(#$4-C-Z MDR AZX,=F>>N)56$%/5I&!R/L#\PD+3B+]OE0EPE+E*]95@1IUT0("X@S)." M]FC('*4?L\2I_!%KZP_:(/R?5;A^?S47_[FYY1ANVZ8!0W[3GJ6X;G M9XM5+]!]5P!$'=H%O% DN$QN78I<.>[D3J%=M?O9"=)M5(@E4D$)4AF$G47O MD8X$R>#:P+G%\XG?4+>AVR&"%R>KQ;]&A_P ^01BLE!*[: ,IE6Q3K5G964E M"0PV:.<2A(_*YV(Z^#Q%YUX>F$ZL[%'7]U1IDB)6(H*/G"&P2B5#2VH;?Z%N M3@=A&H) A"014FQZ5]!4X;=X>WL-)C2;+:,C1K@ %'1<9"?S04E@E1QE/ M8H(B2IDDCHX%+>/YG$6B*$@"1"5((VSK'PA$7T\)^?Y08OF8U^'1!)0XXVB^+-3I=4ALIJW# MD.43][PT<7XA^M&DZ15FA&@,XZTB;G"SS]KN*)/Y'2_A#CJ=3V5!PQUN7[(7 MJOX2A>Y00\%"O";11,C#25R$$V H7;N&2]@+S5S020^4"*OBE2BX!< M>9DG3,F,4=(?_L*U+HN"972>FJQK+,_067=DY,X/4/=,?4"!\I&[8A_!0GPO MJ9OW@^ T*8ZF;A+VEB?YH3OFVN5M1?>)G&9EL !]%/<2'V]E2B3&]JI&CO4\ MB$16/AJI-CS'=GO;K8936KM?FH7=E-( 3 M3>@BVATZW453DU$Y 31-SH+:1J:,A@Y'P_$2?(='6VN+^&S'A@W=E?*#GC4. MN3&HF("]N8J0JC 5/R<0W$E(RZ:VA[O_!*^]$@2O%,T6<1C%'9>'<;#0DIP/ M7!K[*@$\)A4P70?+^4]6$W] MP;:!Q[+^M4*_$C2KY)WB%$MOXX6D=[S/CZPHB_2- EGTEZVV[GO87YNHY!== MM=7D-I*,]@UL NG3\$AZ[5)W8V%-V8JVPZFC05>7'5]A#@]-G6FX;]KTMH5; ME8P$_#1&+(VWZ>V []\-]$C"A[*E$2V.#'WSKJ.L^+Y5@3CD5$;#D"KX=10& M2'YQP^.HQ37-@BU<\0\O((]='+JOOAK\[XQ;//9N=V0!UYX]; MA6)TM "_EQ;)3%_H@.%_7ES^"5!+ P04 " "]BF%62=Y3#C8& P$ M&0 'AL+W=O(R59;IMLV/9Q0!"1U-WQN;OG M3J2OMM:]\R51$!\J;?SUJ RAOIA.?5Y2)?W$UF3P9FU=)0.F;C/UM2-91*5* M3[/9['1:265&-U=Q[8V[N;)-T,K0&R=\4U72[>Y(V^WU:#[J%GY6FS+PPO3F MJI8;>J#P2_W&83;MK12J(N.5-<+1^GIT.[^X6[)\%/A5T=8/QH(]65G[CB>O MBNO1C &1ICRP!8G'(]V3UFP(,-ZW-D?]EJPX''?6OXN^PY>5]'1O]6^J".7U MZ'PD"EK+1H>?[?9[:OTY87NYU3[^%]LD.U^.1-[X8*M6&0@J9=)3?FCC,% X MGSVAD+4*6<2=-HHHOY%!WEPYNQ6.I6&-!]'5J UPRG!2'H+#6P6]9^-&:4'KQK2FH.#0P!98>4-8!NLN>M?B# M-!.QF(]%-LL6S]A;] XNHKW%/W4PJ2\_K\XU<>%KF=/U"*3WY!YI=//5%_/3 MV>4SX)8]N.5SUO\:W//JKVT@,3\17WUQGLWGE^+ G/C)B!\:O1/STQC,V5AL M2:R5ID)(/ U$?&E=>,FE':F-.>FUJ)WU-:JF\>(HE!3-9[-+MB'N6.PABKWI MQ:+ _/)X+*1&E2NS$= -5MCUFIR0IA#*^X8$6UO;3L93WC@5%/D+<:2.16ZK M"H7JV0M_B26L(>@PX8!YL(QU3T99)RSWEY5U!=P)$&I,-(I10:LPV('U'H]9 MV.=.U2'UE)PPY'=XM97.2<,SQGOT&#?IU!E;[92'8;L6E77LBS3"&N(%]DLB MC(1VQ:8A=N#,^!,_QA\#''\>&X.9LIL=O!13V EV0]@7X840'%=A(E[;(>8M MY(2WNA!UXWP#;EL3]8@^[DCNQHE['4RT= @6:P&1G8)S+CM9M8.IFI54NUMK*T 9('.52 MYXV.A<=LR7,4(F\=>U34=HTFWYEZ^_#[,8][;^(7\NPR):)(W&J"#QAPS \" M-Q&W9M<'W8/PPQ!A1ZTC&9O5'^!$QYG$4S8<^U>,B.=;3?)E+7.E$UOW#HW%:^D+^7XL;"S&@KS:I%Y$'P#5;%+13!%P MJ0$'[W#@Q7' R$*A@P0GH[-^YP-5J#7.S"Z!2B8KDHRY+^9]YB'','XR0:*U MBH=].=TC=(BJ2IE.=@9>][L/5&X+'&25!YY@7:K/0^8>EFB7B4_KE$,96]&P MU<=MT2E\VRI8\-#\,/-'IJE6@(PX#\O&-AX"_O@BLG*VN/S73YQK&]QZXM'V MJ?%1O_$>SW%O@:*&"-H&V4,.PG_%A^O>3' M'+.'UMU8$1?B(=C\'9I%RUO3?CYBN_=@&+D\?I1.ER([S<1B<2Y>>%*(M;.5L+_3>_:XT3J4#'&+!OC&T]3A[WWQ7QRUC7?L7B1[6=1[<7I)-N_ M1ESX&X*2U+O)Y^X.T\$MKB*WB7=5/@_@RY@N=/UJ?QV^3;? O7BZ2_\H'3C@ MA:8U5&>3LY.1<.E^FB;!UO%.N+(!-\PX+'&E)\<">+^VR$T[X0WZ'PEN_@10 M2P,$% @ O8IA5G8@__BM! 60P !D !X;"]W;W)K&ULO5=M;]LV$/XKA H4+:#8>K$<-[$-)&V';D +(UE7#,,^T-+9 M(D*1*E_B9+]^=Y3\DLX)@A38%XLB>0^?NWN..D\WVMS8&L"QNT8J.XMJY]JS MX="6-33<#G0+"E=6VC38 MT>Y(,CP<;]%_";ZC+TMNX;V6WT3EZEDTB5@%*^ZEN]*;3]#[4Q!>J:4-OVS3 M[.MWTQLB@$:I[\KL^#@<&D\<,LMX@"[R[@P++#]SQ^=3H#3.T&]%H M$%P-UDA.*$K*M3.X*M#.S3]RHX1:6[8 PZYK;F Z=(A+J\.RQ[CL,+)',-*, M?=;*U99]5!54#P&&2&C'*MNRNLR>1/R-JP'+TYAE298_@9?OO,P#7OYL+]E? M%TOK#(KB[V,.=W"CXW!4*&>VY27,(JP$"^86HOGK5^DX.7^"[&A'=O04^C-3 M\C3&%^V I6-VPHZX_GL-;*4EUB,N,,>7$I@%9W'2N)HY7"YUTWK'0^'H%>E> ME(RKBE5">@<5@RULB[ VP+YY_6J29.MNTX+WM77(A&A-1O'INY0>1??(QPG[0 SQ F6P6N&-2JY TTI]#XCA M='G#=$MRL6Q4%&R$3/-BHZ.AD^+*GLNS"N!6DSC+"GP-\U. M\3?))_^ECO%MZ&)'E'X(W[VXY1*4.^K7.!X5:0@D1G!2Q*?%>%\?^XAO8W49 MTI,.4 CI(,E8,AAGG4=((AVD$YI.:'JO%/Q4A *ZQTQ:!D%LAQHDP<6=TH@W MJ2P.!KQMI2AW%4=3#K^RUJ-A%]\&L'!0(G>E] 1;3-[%8XPQPHU/@T0(,46O MDH<9B2GF+83OG[R/V'59- >G)UYS* $' E +G6T,NKS'S#L@/7$-_4-=<4FA"3GKY8Q-U@_<, MZMV' &MOMG70B[_R)MSP>WG15;^-)WF)2\+0525]:+,VVLL*26'%+@'4C[&] MJ"I!O+D,.OK_M+ZX_MH1OJ(!VB@A,5WT2[.C'/.6L9\0^LOD_)#62^7\$.5A MR(_U$\.#=J\!LPY-K46F7KFN\]O-[OKFBZY=W&_OFN[/W*P%RE#""DV3P6D1 M,=,ULMV+TVUH'I?:82L:AC7V_F!H ZZO-'8:_0L=L/LW,?\74$L#!!0 ( M +V*85:O%]AD=@P &PS 9 >&PO=V]R:W-H965T>H6D"X#--/.,\VNO-M>>QVV;N1TB")$XH4D=25GQ_ M_7T 7Z HRK+CM.DD8XD$L-A=[.-; 'J]S?)/Q5+*DGQ>)6GQYF19ENM7EY?% M="E7HK"SM4S1,L_RE2CQF"\NBW4NQ4P/6B67S''\RY6(TY.KU_K=37[U.MN4 M29S*FYP4F]5*Y ]O99)MWYS0D^;%;;Q8ENK%Y=7KM5C(.UG^MK[)\7394IG% M*YD6<9:27,[?G%S35V]=U5]W^#V6V\+X3I0DDRS[I!Y^FKTY<11#,I'34E$0 M^+B7[V22*$)@X[\US9-V2C70_-Y0_T'+#EDFHI#OLN1C/"N7;T["$S*3<[%) MRMML^P]9R^,I>M,L*?1?LJWZHJ2]:5#T:S,6I6I2[,D=KC''EU5V933]=O(5< M,_(N6V&M"Z'5=9.(M'A]66(.U?-R6M-[6]%C(_0H(S]G:;DLR(=T)F=] I=@ MKN60-1R^90?[ ]RZ+;?N(>K/X/8PO5^R4A(:D MRF#+Y-2M%0F11QC!] M="ET]XGN/C6[R\_JNX2'3K-%&O\/[7%*LDV.;FF1)?&L'H\/>'-)LCE!3,GU MZ()L14'P?YXEB _%*_+=WT+F\.^_^!-FLT&4T98S]OT_4N25G;;#E)&9#\Q\ MH%!4H07(Y;U,-[(@D>N0@#.0B\B=2/!&I#,X:/Y)EG&Z(,QR_9!PR_$=$D8^ MN86%B'RZU-UFH))D:ZT5:@5AB+\N"+F.2WZ4*724Z'YB!L^/BU+I[%Z2T'(# M2CPK='SB6G[DD@_S.:(5@P7V+TTZR]S%&Y#*= M@N&)++=2IF0)R_SQ^OJFFG*]3N*IF"2R(5>*SR01VX*4"/XE*9>2B%6V >NJ M/\Q$B:M5H^U VP8>'[6;E7C F )15-F-4"%5YCEZJPE%4D&6@Y"$M3#N5ZQ+VEI-3QPX14Y-$43E3 MCT'[" E-2U&6<+YCXDH#OT%0/-TIXRYL\NNRTM,$BS>/2PP02=,=WI#6J6@; ME\M*,?"$R@WD9YE/8Z6DV2;7A@-#M+0!*O5JXU.NDF;0LT@LQ2WMN$67M@7* M7$N=[)('NW)S\N]ZFNM"K+$4NEUF"YPO83I[=-S&C)D+6""N5+%;@P#0##YPJV*#HWHLX MT<:FUD7/9H_R>AH8ZX0>I8Y4F]18G9ZA3>&SA:4] [TQP5S&Y09:4JI*=' J M,Z@OO;A'N-ME6VQ%/BM(7&B#G=:])[UX!V%SF.160P M#EQW(0FB7)S-U*S, M]LD#'+^Q$9# M8].S^#Z>0>GD(9;)C)S]_5SWH>S[WF%&EBGDMXCK('W1.O5=!M^JGO+=7:_Y)XCL[:*,Z)AW]-Y^[;=5-2 M=)95H7W%416BD"-T(R+56L,;^+-&:U58^PKK_-3/CXTUCO;XI?7Q\3'7M2FW MSXM%+A=*W[O4JKPP-NY61V;EDLV;G](2+EK$TP&E)K=T-E6ELO;%.Q0$.19D M@T#5O/M=1X(!*2.W-.]N\GC:]?R7:0[-RS.DUSHHXNU;D51H8)#".S^A%G4# M*V!.^^:4<*["1_/LVI'1QD)DVQ_K8-6:=1T6NVZ^9SO\Z"7_T.;\5I#(L:CO MGYLS1S8/CR;Y0Y7=>B0M[C@F18_;@(S'4AS7)H,6 7LM%IB:3V5%XA!C<0#T&RY[M MN1"#]M\%1^OMJ9^_5PD?\,?$&0H&?+L\UTNE@=M^)JF# H4RDR%'V0>W3;?A M@6$N':B)VY SP T#N/P-+4^++ M#]Q-=T?/M#MPF).'F?/Q,:.9LY^D]^71D2&WC2FU[3J-%G4V;5:IETW[30I6 M1Y634@HG9 TS( M1MM.>6A[O*/DH1KJQ9%(-?O,0UYR"#I14&P6F=2W&A[&U"<-=@-X)R#K^#2-C#\2J:*8VS#9%@UHW MZ9[BM'A& ;ZWJ/[Z#OF+N-NHQ'%Q?MQ=+N+3']0-6B%/%5I.(AK>^+9 MG5+K04CI.=3R/=,,886LA3M#D%B5J76^/P,XLSP6F,B%4MME)K@90#C*E8D= M@F:NSU"F\_X8ZA] 8549W;)%N45#?V?2H,<6]:W0[_&%'O0@U'+#T H9[6N# M=L\W,M<'36I\I7JUPU;TO>/F[K>NOHN_SO;QT^WZ> L?L_3CB[<17S 2V%,* M..BS\Q'M3MI1#J6=X\NW?L\O+-\"3X5OTZJ99], (=8,T*YK.ZU"@L!R7=/@ MPG#,X#;:U.*BV&"F0F/^[;?S;RG=J/P9"=@IC]$MN\?;0Z'W#F &)Y1 M!X(=)"4?@IOO/(6C=RTA0F44F0KP7;,P>NQS5$%-!QY9@6,&$F1E?GQ].52D M3LIL_XBQ]T_39[>,$?60Q4V# L0PS,7MU2E^8,":R6RV>E3U: MTR0K5%S2.*DNK&IL-?-(Q7ZVV\\UX_GZ*=F^_'\_)QLOS]!WSX]TZOD_$)Y M_FE;M"YG%HUZP#DR$U<_YS-E6;MJ\9"0HUY9Y]G\B_9G [7EZ9HI/K#IRVRF MNM2QHM#W=ND1OG8RNFC//5ZJ9W:WB&,\D>D5C= 8'4BE'(&A3Z?OFHDN72/4]+J6//?9D&8O>71UXK[6LCG^Q"FN1 ME_$T7@M]C6D60[8RRZO[6BSD%DUUK.93J).$G6%I>I8+UTUJ[J\ Q;.]-_]PB@[Z%N HH/A M!G587769*JMN(#7.>, -Z]M:DSIH5Y=]U:4,T_(&UF\:OY;@V M^Q;X;?OVC M%M[!0$O=:?'Z1RVN80:--I]PN+-[.O,.:WIQ5Z_Q7M!9^XH)/'#P7NPWR'<%X/V1W"<3RT?!82\^B7,BL(_"8][_$\ MXUW& @1;IT< *:'0^&+OGA#UP MA]V.V7R@KN6%QJ-]/)#\Q*\HFQ8]&>JH"Q\#AZWA3V0>\%VCDH4ID M^CQ"YO<(,9=J6AUPJDRFHX0^@[7EU13-\)"&\ M;.BN=*'SK7D[5.4FP/+#G.R/YCJ(_,GAO%[AEXOGO:-QJ(;O')T;5U6_/)[O MNU5_:?P"8B7SA?Z=1P&!-FE9_1BB?=O^E.2Z^@5%U[WZ'967SH"9H?V!S]7]02P,$ M% @ O8IA5J%-O_K*"P H"( !D !X;"]W;W)K&ULU5K[<]LV$OY7,.YC[!F>S:=(I8EGDC3MI8]G*RLW3RZ MN&CRE5K+YKS>J IOEK592XNAN;YH-D;)@C>MRXO0]V<7:ZFKD\O'//?:7#ZN M6UOJ2KTVHFG7:VEVSU19;Y^F5IXN+R\49>JRMEWVY>&XPNAE,* MO595H^M*&+5\/0LIO6\X%>MMLWDLR!)%G7]G@8OBRJ[*D@\#&']V9)P-)VCC]W)_^'7E8U-OA:'5.(T^L*B\&\SIBHQR90W>:NRSER^KO%XK\4;>JN;Q MA<6)-'^1=[N?N=WA [N#4/Q<5W;5B!=5H8K] R[ RL!/V//S+#QZX@^R.A=1 MX(G0#Z,CYT6#?!&?%_T)^<[O$]!MC^_?3B'QJ-G(7#TY@<\WRMRHD\NOOPAF M_C='F(L'YN)CIW]4^<=WOZJM$D$F_B&FY_2#A4+$*J'=R/(KW0@E3:4*3 N[ M4F)9EXA*75W3 O&N-;HI-(=+\TA\_446^M$WG_V$25O$.UOUH<^_@R_G0\,V M.X%22:BF1?!B<%"Y*?B;:4M.+BRTD);2>"%,RP) MO2C*1#CS_#04_X+:C,CKMK)&8U$486=(C_G,%T'HS>?^0"O =!IF(O!#;Q;X M(O6]:#8?7K\<;"/4+;)LH\A"L%AKS'TV^K^RSW,2HK(3!QR$[$PP]V9I) (O M"U+ZGR8'^@\BS\\2D7FS;"Y.,4C\LSOZ3[P8"H]AA S_YQ/'"#,OC*'[& 1B M 4/$,_&M6JI.MW>X.C4JKV^4V9WU#"8@.0?]* M$ZOGQH8.<@NLL.P/S\SB M.$F4WN$/$IYF7N9CV6GH^;/@;& P G\Q-B=@#UPF$W5"Y?$\% &\D]P'DAQW M&X0ZV\-SAI!5X8RPE8T(XZ^$AZ.^_GN2A(=2VVP4%\MRYZ$2-U M*1T64$! MJ,AKP)^FY]_K6?TDP<)#P8*[@LG!$G12[[#= 0$F M2FG=?BENZA).2 &&UFVTN$Y2HNRRL$)1D2$C(Q1+@U" MKR!AMM(,>=01DN1R8J.,K@M/8,)J'+2#GRP;-1I2CLJ%!^7*6,R/^CKPD5X] M5[S+%*-XGD $;H$YZ5D1C"PI.1@(XZSB-NLUF:302YRO6*3!V8[KLU!_P8F* M0I,&P0*.-_G>\::J^C_O!@?;#J0@3!\';%S^_>'K'49:F7D-=ZD;7;=/Y M2',^Y-TWG1/5%0*PZ3-+<8]U),A@!><4+1>ZA+XIE2 +0@Y7T#^C@#]4I _7 MW:W03QUC3_/E0*NU7*!3,I M;^)@Z+PTZWQCB*C=\0+U1ZLW:\J'*?AC_$6>^PN0NC3YBM<4\,:R=JO8Q>'] MK5'./$0)$80I0#G@O#GJ<0"8]Z:VT_"X:UN$=A8R<$Q0^W^:*+)7^"?*I1%= MU35KO"-Q&@--)@0R\G=(1 M(1%]73&J6=5ET;4^G3=PQM6RVI=4;C:ESAD"4"K

(8 ;6746EL*$6JV0('MV[2+1N-P1H5CW-2MQ;2B%7V^1YY!CNOW0I:5 MABMO*?E4M-80&PO*@C< -*Q'J%13-G6 #>ERH5@ $'V'M-IAHF;H Y(-96%4+M'8.G_?Y_"I5.?B):]$32*)0-.H MC421I S@.AFG_(EH2FSKMJ1DTA6:XEV+\DMTII7#U#>:KX$ZLBXW.V)6&:07 MVKZ"*]#;0>VLBJI&3OMVX M,C9N[YAJ4.9:6\-+#=<[.HKFJ7S#KB0(@.;8]EEVN 7=FOU]K=Y_MN4[TS$0H8[2 M94+J!=3?(7.B19T( DG 9 ]%)NB- M(R^>I8+:ZW[M"RQPK=%T;5^D!N51BNA#EMN-H>E-YF?N2:6"<__=H[GN]Q@7 MFN@;EQVYU3V ]S0,W*GH^=US%DWR/.>%-0,O!G6L.RR* MSSZF7ZX/LG0AV58]V.?$4S<,E5GL($/A.=/YR$$)^$P;G,/B_IGX(\W27RM0'UE7K9%![A=+KWM\#@(^L1>&G"9 M],^.^>?1^X7^^5M70Z=@@=IH@LV['C0W77G"R?IO@K=_U[/K+SYUVPN29.?\ MM.OWNQ:%FX:GC9;BM$3B]-QD,Y%%(LXGHMT%M*[;'2W:/R<@0^D>M1!A,D2%59D7H"U60:G MF:,AB$5$:S(OFX^.X]8@-C!'JR(:!$DJ(J#)2;%XLW>KJ:FS0[5#6V&X@ZMR MX%$7$EV/95G-J-4,N\:^A=K#ILXU3_)%U4/A:^5[5?TW.JZ^,P P6ZAK754, M^I;.O5(O0F+(O&@>B>\-Q59_/](U2<$W0][L(,\L1D:/(O&3W#2<0EU/[PJ= M8J19(KE:.:2M+'7X.Z+$.&$'\&Y@9 ;[^!T[=\(?0-#"VU4Q9DKL^U+,SH,! M][+RNSL]XNRB%5_:GLW $]2Q#/4#?4W9^[W)13 MSF\WQ-<^UYU[#=<&HU_Q@7V5<,B.*QOU5GTM) ++EGI)5B+#:KN"&.,QNN'+ M$(-OXU.P'2IONJA=J=H+2]Y"YT8OQKHPKL]P.5U)[NN;0'$*!NSW7?2JV G5^ M8X)GX4)?F=G?%6+GQR#5R.# M S0$(++TW:?X84+V$ 5T)?P[A?Z92W8P=Q9!5AWJ/&;3R6RW]4?X;X'^[F#/ MU19G\3VC/YE]1;!H1VMGTUE%^*V4U%'C53)Y]4R5U[I='Y[S/>/YW2%+5[#F M!W<2O'LYT:[ONR^F+RJX&U,M?\VXC&?7?E?D PS X_OWCJ?G4P M+G>_W?A9&M0V9#ZUQ%;_/$U.A'&_AW #6V_X-PB+VMIZS1]72L(6M #OEW5M M^P$1&'Z4&PO=V]R M:W-H965TDD+#/MBB^3Q[KF'QX?D^4:JSWH-8,A= MS86^\-;&-*>3B2[64%,=R 8$CE12U=1@4ZTFNE% 2S>IYI,X#*>3FC+A+;"B[RAXSU;K8WMF"S.&[J"#V#^;&X4MB:C MEY+5(#23@BBH+KS+Z/0JM?;.X"\&&[WS36PF2RD_V\;;\L(++2#@4!CK@>+? M+5P#Y]81POB[]^F-(>W$W>_!^QN7.^:RI!JN)?_$2K.^\'*/E%#1EIOWZ?WO4\[$S(PV],B/L)L69Q+8512 VYHIR* K1/;D"Y MQ<86^6/)V8I:_C2AHB2C^;741I]/#$*PCB9%'^ZJ"Q=_(UP4DW?H8JW):U%" M^=#!!+&/"<1# E?Q08^_4A&0)/))',;) 7_)2$CB_"7_%2%=N'1_.+OG3G5# M"[CP<%-I4+?@+5Z^B*;AV8%DTC&9])#W'TLFV)?-X7B_2P,DFI.7+_(XBL[( M#\4GKZ "I: D[^$61 ODXQI()3D*"1,K8NB2 W&L";0V.%BLJ5B!)DRX9CDX M4+V#90>#4-W[T:<.:YB<_>O_B.;QP(#N:G!N"!9EBQ(WU&5$LLB/YQ&:%G(E MF-,C65GLMTRVFM]_#?4XR?UPFIWT<2FW$X;!-//C)"5O18%"K#'A2LF:+%N- MZZ$U*62]9*(CUB<"I7T6S\GKJD(IM&YJ>0NU(PV)PM5 Z1($[CKVR'&:ST\. M9!.3+/=G8?BL;-+!R)]&V=CZ5J5?:HOU<5"?T*91\H[A M20-(X5&2)D&.DL]YS^] %].84X,I([]&DB7@B%N(+]C15W[5FE;9 4Y[LV8' MC=Q!8];( $7;5FCLTA5#^V.I2$.5890CE)V1$\N7#0"X71&3_5302#3%'8DQ MF"P#\@EZA#;P"&Y,P![&#W+-PY]Z9]I:V;M$[VXO9%QEY2(+N#,D3G'=W9&R M86;M^H=MOL,+=F-Q5;AVR%1B?PD M2\A'187&3:4MV>BK='D#N[5Y]'OI,>+C61*>[&PX1$YQEL:KC%V($CA>E>S^ M=>7-68&W,#3;X9/J<3G+5CG>D)FN +I-BGYH+5O'80]1=:7X-<@'@79]B#P MR5$:S+9$H8^C)$C&CB&%>Z!8_6 OV7N.&K=5[%RK([ZM;JO66-?\/MAW[9SL M/#"0J)5[1MF3&4NX>VN,O>-+[;)[H&S-NV?>.ZI6#$6<0X53PV"6>41U3Z>N M863CGBM+:7!5W.<:7YN@K &.5Q(OF7W#!AC?KXM_ %!+ P04 " "]BF%6 MB4GK*UL# #A!P &0 'AL+W=O^2#S>?1^_(WG'5:?TG:D0+7RMA33KJ+*VN4@24U18,S-1#4KR[)2NF253 M[Q/3:&2E!]4BR=)TD=2,RVBS\G,W>K-2K15^ URB$(R(97WK.:%C2 _8_?.Z4RY89O%;B M$R]MM8Z6$92X8ZVPMZK[$_M\YHZO4,+X+W0AEJ:A:(U5=0\F!367X<^^]OLP M BS3)P!9#\B\[K"05_F:6;99:=6!=M'$Y@8^58\F<5RZ0WEO-7DYX>SFG:U0 MPW7%]![-*K%$Z1Q)T<.O CQ[ C[-X(V2MC+PNRRQ?$B0D)9!4'8OZ"H[R?@W MDQ.836/(TFQV@F\V)#CS?+.?27#R6(8!GS^.=T5Q81I6X#JB6V]0'S#:/'\V M7:2O3JC+!W7Y*?8?;_]I^%MED38*7L(#HMXJ>HMIA$+5C>8&2U [*H4O+3?< ME<5+C8)9FBZ4L2:FG[1<[E%:-S2\1,U"^92?Z392.5HBE"45I+&Z+6RK*1RX M)#;F"LQ 5_&B@HH=$+:($EJZ&=JR.QKNM*K!4E>'OG7!@FJO6?$?:"";- M!"Z?4@N4$742+HZT?B':$DGE@1NEC^ .BA=(&;&2RH83KY?7(T,&EK)QN6V5 M; TI)U%8-T(=D8S/BF"D8GN$CAW]MLGQSL6>A.K/-Y@#DHJ@SM&X[1;HE+J@ M1BO3A*@Q ^7V3X6P(PK5N:4LVPI:V52J(S%5.#4E_9[3^NKAJ9H>:2[@^;-E MELY>_;(_%6%++=K7X7C\F/]?9#I4_^!VI3LVLK$Q/7&@63Q?I#"-L_.,OHOS M'*Z?O(]%00?H1[3#X]N9Q&PO=V]R:W-H965T+]7>MK+'.PUF MWW5"?[O!5AU601(\;7R0N\:ZC6B]',0.[]%^&NXT2=&$4LL.>R-5#QJWJ^ Z MN;Q)G;TW^"SQ8$[6X#+9*/75"6_J51 [0MAB91V"H-\#WF+;.B"B\=\1,YA" M.L?3]1/Z:Y\[Y;(1!F]5^T76MED%90 U;L6^M1_4X6\\YI,YO$JUQG_A,-KR M+(!J;ZSJCL[$H)/]^!>/QSJ<.)3Q+QS8T8%YWF,@S_*5L&*]U.H VED3FEOX M5+TWD9.]:\J]U:25Y&?7]_MA:)&J;$4+M\(T\)KZ!&_ZL=]4N&5D*8ZSCJHC MYLV(R7Z!F3!XIWK;&/BKK['^&2 B@A-+]L3RAIU%?"OZ"^!)""QF_ P>G[+F M'H__T:Q'S/1Y3'=[+LT@*EP%=#T,Z@<,UB]?)'E\=89Q.C%.SZ'_)N/SF/\H MB\ 2>/FB9$ER!?\? SXV"%O5TK;L=V#%ID4#/MW>&K"DK9S?UOE5C>AWI)8] MT S1!$ NPAB:-**OH95B(UMI)9I+3R'F5W_L3P=F3S/&GYG3]7/Z?U'H\:1. M:G?,3@5V*B3P48L:::!4:N_2UEBA?'"U@"1+8,;"LDSGD*0 CS5Q#I7-U4AYBEH5YSNH5(?4ZD?\@59D'%*6 P]+GL'[J;LM"D=[MLB((+)M+DU M38>92C,LJP7!:L3 HGUTDY/$(HV#[;3,O]]SG+9DH%,6B=V7.+Z<[UR<[[-S MN=/FDZT1'7S9-*V]FM3.=1>SF&O ]IN--/J:IV/#!;77:R MPCMT'[I;0[W9$:50&VRMTBT8+*\FU^'%3<+K_8*_%.[LZ!TXD[76G[CSJKB: M!!P0-I@[1I#4;/$%-@T#41B?]YB3HTLV'+\?T'_WN5,N:VGQA6X^JL+55Y-L M @66LF_<.[W[ _?YS!DOUXWU3]@-:Z-X GEOG=[LC2F"C6J'5G[9UV%DD 6/ M&$1[@\C'/3CR4?XFG5Q=&KT#PZL)C5]\JMZ:@E,M;\J=,S2KR,ZM[K"B$CLL MX%4[;#'5ZG+F")H7S/(]S,T $ST"$T;P5K>NMO"R+;!X"#"CF(Z!18? ;J*S MB*]E.X4X%! %47P&+SXF&GN\^&<2G9[*=,!)3N,P22YL)W.\FA ++)HM3E9/ MGX1I\/Q,E,DQRN0<^K_?CO,P?VJ'$$7P#$X"PD/DFC#7/8%S'G:H G1&;Q5#0J,K99W*+3C,ZU93 M_QZL;GH.S4[A/456ZH8TBU=[.+LW1U\62DY6E<%*Z.W /ZM+MV,P(F71YW0S^9KQ V>Y MWGA9*9AYNJVT)S1YL-)?#,@QY3S3?%-9DV"ISM.T1+(G,@\.R\'GN$@'O\SS MAU'R+-^''+:#:NY( &K2AKSIBW$IK-6DBISI3KEZ;.,Q;-^QE)WU/OWA-CY> MC.ZDY7&]WYVLWN: ZJI8+.C)OY&CO3@8M2,M-X7?O M:W3?!7Q2A \:;,](+>%*7[3A7./-I'WD:!K:_V>-__;XA./RO?EVB \0/MB' MXX(@W+T/#C_WJO.G"/=HIV1;*8YH;^:/(TY).F?4NM\7X9NXR.-_I2B/2\=[ M[9A>WV7Z4+7#.!-!L !2;I$FRQ^I=1R))2E1$E,3'40ZC45"JI E).3Q0W4F M;0\"TJEE.-(R$A.TYV_,:^U(TK[UYI^>-#P IHO M-=VO]AUV&PO M=V]R:W-H965T>YEPVWPD]MQP8WM76M"-BZ3>X[QZ)*0JW.RZ)XE;="F6RU2&M7K.UNFL M=00"C:][S&Q4&06/UP?T=\EVV+(6GJ^L_JRJT"RSLXPJKD6OPR>[^XGW]KR, M>-)JGWYI-[R=O@W N4B?>@*+&\%D&L M%L[NR,770(N+9&J2!CEE8E!N@\.M@EQ8W?9KSU][-H'>;O&[R -0XUTN]PB7 M T+Y'81921^M"8VGMZ;BZM\ .>B,G,H#I\OR2<2?A9G2?#:ALBCG3^#-1QOG M"6_^/VP<$$X?1XB5<>X[(7F9(?4]NRUGJQ?/9J^*BR?XG8[\3I]"_T_\GD;X MU0:FNQZ51[/3P;<3NF8OA0OL41Y?>^6X(J$U MV9I"P^0; 6OC[K,RE=I8^L5NE ]*^@E],'(ZHV=[4UUI MVU?T0]1>%A='9^ED=O'CA 3)>' 2BZJBSMFMJMA%;;4R0I^T2C.!G5,X]5;W ML8RAPE3DK*C(BYK#/4G;=EH)(YF"135,Z7=0[WHG&P #5^$&W2M9E*ST*C6$ M'X/X$&X#0<$;LN#V;5R/E#86;IGX2(S'TZ.?#'X MK!5_P4U2"^^'J,=%.$H-9:3N*SY'8W(N4A\>3' 1A-FH-0(66#;&:KNY?^QV MZ&A@=;B#%W=HR?$KV05,$4(PUTJ#5\Q*CVG!U92N^QC>9(Q6K0K12@P'0M[% MP'\3V@KQ3(F2LEC]S8>,#DX8+]) F.RE)/P90S'FR)C,R*PU,C$A*D_&!K@O M# G'1PIJH1QMA>Y'-0_%M/<@7AZ;A#I.R3?#<'AX/HS8C\@+A1+27$.TF+Y^F9$;QM:P";9+HV)M \*4 ME@TF/;OX />U14KO-U'!^-]A]0]02P,$% @ O8IA5MB0\<@E+0 7)P M !D !X;"]W;W)K&ULS7W;DMM&DNBO(+1GYT@1 M;*J[)8^UEJT(W3SKB?%*H9;6Y[5(%$E8(,#!I2GZZT]>J[) -V2=S?V83QJ M JC*RLK*>V;]>*R;S^W.^R[[LB^K]J<'NZX[_/#X<;O>^;UKE_7!5_!D4S=[ MU\&?S?9Q>VB\R^FC??GX^O+RKX_WKJ@>O/B1?GO?O/BQ[KNRJ/S[)FO[_=XU MIU>^K(\_/;AZH#]\*+:[#G]X_.+'@]OZ&]]].KQOX*_'892\V/NJ+>HJ:_SF MIP%25G7]&?_X)?_IP25"Y$N_[G (!_]WZU_[ MLL21 (Y_RJ /PISXH?VWCOXS+1X6LW*M?UV7OQ5YM_OIP;,'6>XWKB^[#_7Q MW[TLZ#L<;UV7+?TW._*[3Z\?9.N^[>J]? P0[(N*_]]]$428#YY=3GQP+1\0 M(A[S1 3E&]>Y%S\V]3%K\&T8#?]!2Z6O ;BBPEVYZ1IX6L!WW8M7KBW:K-YD M[QO?^JISA*N'[^NR6!>^??3CXPYFP7_.5?KOYZ^7P&R*=S[--4;EJ7;@R:V$"#Z>M:S/7^.S D\(K195]J@K\ MUPV^TF8/__(OSZZO+Y]_NJ%_7#U_E.5U6;H&OJQR_?H _T\?X^1-#K-XH.QN MEVU]Y1M7EB=\X@\X,+[25QU"=V@*@.=0PCSP;0? ?[H),_[MY$)L(;/GSM*I<7KLIN_+IOB@XH.GN9PS$JVJYQ72TPRSSF)?SU M[9?USE5;&*7>[XN6^)""GJQA?ACB9[]J>F"4V15\@P-ZM][Q>PB=KW)Z#0X'O?5$7T-0-K A]1$1 MBN^?3;3(CKL"!CL?@\_8(@/2 ^[H&]S$KLY<2\/*X@%+#2S CBC(6.@K\@@' M&SXROV6 N;Y%,-MB7P )(0O/!3& SMNB[ML)P &P<\BO[X!\;,QIT*]'0+^^ M$W28+D$V'RB""?CG#!;\+7/"[^W'!>)HFV."WC),A=[R;(0)+*OO4%4"BHN2^3Z\AGMGMXN.K\Y*,@W(/\P*CSL:V:NT F ^Y7Y MS08T3WV\2,9_ 46[O7LZ9CJY*T"")G,"27PTN''Y M[Z ],GT"1D!)Q>\V3;T'> !5AZ8&07T^U[GRVIB84A6C=^A GZ+"X*_ M??:PK-OV$7)5E[4L[CR]65G!QKJ@#X3QE MO;;?P>Q!!IQD)B][JP<:%MDWHF#)AT2]A ]8;C4V,"*O8CA.M.VPP%O?="PH M1SX0TC6L1 @7]'O?(:MWXZ7 C_L_5 M\AK,N;)$I!Y=.S%K]G"HX)"_V9OOYHCMU_']C] M][,,^E/KB=3;KM@C%QIC\5\W EH\<%J)78V+8Z1<=$@@(9-1@98!H!K8"; Z M,(\KMV5\ U7MW6=O!B<;I6W[_8&/$C$'Q^1$6M.>A2C_3F1ZJ)MN@BV,&U!5 MGMI<(.E!XH,Z![L E$#"N]O5_98.>3L''D* 7@?2=N/"A+.V(-5!*?A9J%:9+_W^=8L;@"@ MOW5ESQRY0AY35]L:U[U"K8O4'5P"L\&P4G@5Y!#88 6>>!1_(&WQ%),"Q;H/ MJNK,U,ZV[(@:35EXU)]HEUP+_!=U)6(*^)]B[UF Z-H!.\Q:D7B$B!8< MD F";!:ZJGLF"5#L&MI'7"8K"1.,+Q -ZG;H)$,I#8J^BYCFY;2 BS5B^NWL MSO>X\4<0;=9&1FC!(-^W($QA+2B+2V2;B>5[@/%WB'2PJ 6GI+ZZHN%EX(O( M:'0E:SH\1.4KU#%0-P 27B$;1R9E%5 OB-9H1\SK :\ ?]ZO<2=A[DJ] M#"#L=VO.D2):N$+F*I$WR-3!XE?G@DT#5_<(C3P$DQQ6[0T MZX:L.U+*:H0'N(PG:8<'N6Y.BS.&\00%97EMD-"/5B YR*EQ(/*7RI+&-P M8H>;A6IO[DI0G4!S!OG+WBX@G^!3NHG>K6E:%O$'QW$-6";IQVYBT+>7).XO MG\SY'Y\%N?YL5BJ_=NUN3);?_55&_PD*S:[8[H +LK(/*AH(TPO$#""(=D 6 M 7)@6Z "O<>#'JRQ;M=XG^W9H0Q4 (?F7LO\M[#,?YNW+X, !U40#@CQ_K%U M?\,PV<_)V=J,OO/1"AA5/E)K-9SO-2!V$>W\R$BRA\#*'YE'!W?"WQ=\T'TJ MI9!H[:'3MU%2-?478L4X/P!ON$,._V,E'7ZB;31;%;8D>P-B_-9U;(K%9?Y& M1P/V?/0IJ6FHVXBIF#5%^SFQX<@J1]-RA#F1AB%+5V]LFTXPXHA^>?,Z^U@? MBG7V[.H[=7]%Z!E-_PY:%4"@_J^'X8-'ZHH,6B?)?A!LH'V/KA*U+F0RC;@N MSPT7D#B^8&VG8M:&%._"WIVR8"_!5'ARS/:X0#6LL+*7 "VAZ&W*?0M\#'<7 MT3FQ%S#0#G5)U4A8&I(>1#88(7/P_2AI_U\#GEI\UL8&.PJ9HYK0R5D1,E!& M9^8B UIY*PS4=X":/^CP&-FQKW-?1L69O94UZAI[UWP&Q(:9<"7H=X>WB+[: M.:-2B5R]4M$N17K]C5514&7KEHWJS>A[*[]V>!C,$0_J51NUKUG;/GB$P)8@ MP@8,E* BX')4W277#EDV/F=51Y1__5'E]Z9'W6J!GNG4TMZ4J#&DFF5TN/'Y MO%6V$*,M_'R1^;ZI%]DK9!$@$0YP/M&1XAL2?@A/JN.?^PF6V2_J^"1X"'UO M_$$\SK*SW>E 6^GR6]HQF,:SK>YN75$2:P,E4=C?(CI3<<^1N(.NA+*H+!%% M@(5FB\YZ)2$YF<4C7J;#HPFH !&^9V112*#0YXB&-XRF=V1IY=D'7,'#UV_> M?7@D[\++""7%G>"%=\ \*HPB9R).8(G\T@@ M9 CP3>+'P+;ZCO-3+0JE,&"^J'+XI5&!N?7UMG&''5FKT=S: TUME:,:O$141O:+ M9Y[.NM KS+[NRQD.NC#VT J,41P$'?C=!'<)>N%"CC3\HSVZ@P0E#JQ6;T&C MDN&CW$7PS\8CY7QX_NA0PEG+"S8,CC&809N*COBVGU@1B^?&T9+ 1D62,LK# M6R/]S\G.Z@9*=JK03^D&T:\>;/,H:?(Y7O_1<&<,A3RD%"B/]HCH>MVM3 MUJ2[7!#>Y!M8_-$U.9U-\D>3#[C>;%#4D]5>XV%%G TYKZZ3]_7NY:;PYS4@ M(&R1%::X'Y8.S_9D1L>^NHQ))I>SZO%[M7)I/F$N_R"?ZVB"R3>/-LVLQ,.+ M_!J$#KG>(^-"BO2C+ 0/3M!"V-QDU!X2(-))IC44UDM@/XWK2SX"JG-TM,0; MHG;CS$1T^-2CX9FI.?8"LB*HRV"]P,QY!)GL+Y#R CE3N1<,F4>IJENI^43_,*,7>\UN4[* +P5YM MZSIO@W-'8R+D10YLJ:R/'(-?U\"!<:/08R?.#J1.XF)+"6-S^L=F,$%"BL'L MD&BX XW#;>/'?55TAAU_'/IVC"\JLCH2I3)'>#.XKZ)3RWP\X:I7PC!**8R\ MQX4C[=>4%4(N.78:(-\'WE5LT!>%[E[@;TWQ!VT], +QH*@UQ>ZG9!E"5^*K MP* F)HAXT(\VHS2^4'!D 2)&U4]8%AO Y6DM?"-'ZJS)YYD=0,"8-]'SHTKP M/WM'QAV)392N&T'I^,)!+X%#BJ?GZ,77#(0")P84&Z0)P"/ZEU+26M6WNLL- M4A<('F(>Q = /!PK@Q32"LA*&MD\I"C\"@052JZY$-+5=3Q;U_/G(SH*87MP M-1?H6LZ%XXZ>N#\U(I)'AVK-^9.Z$=M["_+A@!I4] :/>+/I+SQT@$?:_S-7 M.$4%R?;%TR:6/+D(.42#,QK3>ETTZWZ/WL*UC[LM(0V@1:]67/2N+K/7R4>6 M6X(&NR7:4-(68E^01JFQBJA5_I"UUM>9 \QM8OH3 PD1@I(/+'GFMJBW\$%Y M'L)0DGY$>CXH14?R;7/X'.A?9!\'&M!SBI: $UETXJVC-\@1@@HJ#-1%!VUO M!@%LUZ!O=CH, MJW01I&ATK=LI,28&6A/:TD=482/?LCB:@_P .H^>U(G M@,T@*F%G6E&$T< @-01 6'F$GN5?1;^@ T->N@XPPT(>J1E<%$Z&2-KH:!=W*9_6H"VH+<$6@3 MYXLDY42W"YNF!W9#G,&ZS/ZCMF..'N&=:SFI";0?H 42 G+0&HFDLW/G'FD< M=$2CXI+F[X5DV'LI%#$+^6HV?_C%WT! L]9#_M@!UQCE>7]FP"P\!DN;5]1J MA0FGNXWA5^8]AL#DH2F1"8#(''': @"QR,4$Z]$A^).#V M/WB.:9$VG3.7W0)7+M9 -'Z]JVKX^X2<3KTS9V[(L#.C8< S%A&#V,FV(BDH M="G"B"K0^$4],]>,5)"N;,F:J235D2R]7='D@_36)VKE2<2*]A6,+,S+&=W8 M(!I2TL=? MSX\194]/R,$Z.)X:E9>H"YW6$"FU8S,2TBB1RLSXD;A3SN?1M-KH MEPN>*8G(2C;_KD UK*JK"W)U4,8AG$]'NK?_@E2)9HA2I7KLV*BOW%[\R$,N MU'AE,I*XDF%1 /I?+Y"SJI4D;*YHQH3UK:3S)GIT.M-0H50=Q^J,Z,R+. S" M77Q&HJOV%@0I'A:,FEN-,\BT(?&ET ["I/:@ $*!7M$K+\T M7%WM]G,!D:1(#LC-U#90UNL/T6=]'SK*;I(]YMT]UMG;43(:>1D3Y#$94TEK M=$ *6O_'&,%.S7\/Q2)6#EW-U_R\'S541A6*;QDHF_BY:).]0FMSF;TE9PWR MXUC/0JF)E^R\(DF:"Z,)Y+3WW:YFYA6LKK^X_>&YF2[DK8%P*SG-0MVX\CG0 M5XZJ#AH%I-'7DHAA=V#ZW97O.DK7V93J;T)=4G(_$K,B9CK#&_6^6,/'E=\4 M6N0C"H-83Q-3%JWUY3GSD<%,T/>]QO#@)$Z\&XJI:*-0B%#-B:?$+'2E?9SWT#?%A3RS;%%XJ;C+W[!(GBZJD8!?\ 79/RW''QH"0) MPQGY#JTIUC6,C8?LE;)@T+3!H2CV(:NO0-$L2[5C8V!J%"@&)T2F>T19V#0_ ME80GDGQ?HT$5CE(:!U$Y=!JXF8!&8"6SGI]8WW,U7YA#:!PW=N[S8?:2:0(( MW8=CZ:+'_JAZ("Z&4ROBPP+4AYH,1 RM8$J?;$702_4C.?O\&:7-G]AV:BA< MBU$&?%J7UNG@$LN492F9F>H300Y"-H<)N6T8H)BCR.%2*N#IBY(U<0+22#DB M$_D5G<0@>/BO4#G1J@M=RCW428#1'RGC0$;P<\WE%".GZ-;#]Z7G:3CR0%!1 M?;6H'FD*SAT021$):_:#A[3HX.Y '9G(OMY<(&XU8>[#NT^Q')30R]X<'BQF MS:@W7>>@&DLV#$*D#\:2,0K43 N)S86$F\14D>=BH*DD.)N6*G $RVA4\@L' M=^)=H^"'(T7+.(?.X%MDA[)O:0"=-P?K>SDD2K&R4M(=-1-)HL;4(_KILC% MV H1_VD<'T06UO=W*NYY[+I9\(*=O+9VE7@T-9<]6@"+K\Q )F-W+W$F%/W, M2#1W@/T,GIBF L>)RT=AJ&0I3(T^/)_;D&)^ MY20RG1]/O#8GEH7:2F51,_9(:>JG"2FTZO0D:GQLYK'::S0,U^Y +(>B:^3F)A\.JOV<'*!J.S"( MX 0+N3PQ.U%5M#:6-$\47X 0"R'\"!ZYQG3J(DV5(1R(.L*,N2 [&5D=>@L1 MM_66F1S7071<(R2U8T%Z 5OBFK&0L"/40"Q)Z45=T /HHHX?3)*8(,DSRF@A MQ*N(0A8.+ HI@1AA"*WJ"I?DZ KK#_L7:9-KC6V$EZ<\IV)T7)31Y R#DJFP M M%2AE*VAE5F3O!0,V)\VT3E3:N.K)'(#MFP94R[8A5F>RR=/TP.WL9D%E<- M@AB()EL]S2$U5!/#6-;T$:V$ %Y0 M0ENKCP#03$FQ%XV@#X\L.TIMKD6Y ,R)B]-6(AKW[ M'6U\0.-6$BSTNZ3VG8*4R^P?L),H=D.GB@UG-3"-E?R4?P4><,#%D1V1@;B@ M<+NZWMC0;(K@;8+M.'AB+F&4+2F((>X4Q9G26G"VJ#T0AM?DJ AQ$WIK8 %U M0=XT.4I1!<^%V%TJ%IK1O5<3K2XJMIO0=1-"-8&$N+4&VC*Y%=TF-PV:%:J4%!RZ>B@TB]3DX'5%/A;,@V MA?@]GDTIZ9C>%@(8. O)LX$NF&)DY;=%59FZD3SD51$Q17')GID@>E7G#P+/ M].) 3+13Z\@'BJRN@& F/1G?)I@39A^(J6]=4,"\LA_$C\*IG6 M:&TF7YDLQ[N4+NGA=0H^@L0-(*I5HO^N_*EF@"1W00Z.!H#"X9M&T]ENTI[1 MF6RBY'3NFW0_A7$ M10>F]DX+K%M-!U Y\B.;A2*JT#-G0T2,E\7T-BR84P\8LJKR:&*K"MUPO%TX M"#*.-G3. <2LO;81$$7A7=^8#1H$;(#0?#2!@HIM-?:@7HXHSI3[$MG.&^.H M4L?(I+H=#MD=*J&8:NU.-;RIZ$"&F:!]&\T53$,5W3?4P"^SOVLU/&XNIO-7 MWHL#A%T[Z@E3'PR9C:4)L5H/C.F5\!5%^ (546Q0%E5COK>RK((8<]-X#)S8!<- 0JB@1+B$*-4P/M]9<60-ZD/@4W*24I^;4 XU M@:HT:S]V/Z%VF/2!M2_H')0GUA\.TES3ULI9UJ3KTM1V<4 %I5'[S9Q9?8N, M(]/ CYI"#B%Y_[SPZGP0I45G>Y,-S"C2\:OPZK"3V8BI;Y.4^ 2%>$74:!(' M.8FS+V!T48V2 ;"H#KWR--H?.#1)CQ93,B2[OF!_-T>LL(H 5*Y%[-6J/F$= M;0F(:KG^OUX1XBI<]RX5H)N2*)@U.PQ-" %?K9N1&98NT/1846/Q.;:Y"=HD[Q@3(HCP\RIAE49X4H:JQR>JY]20%[,(9]T=@ M_%(E%R+=JJC%P?3-06898\7(=M\=T?U-B5?D'O@B.0\+-6[4]VB\FM:"M'6Q M-$C(7UTH$# +[&RA#8$'A6W#K+6(HR+MW,8$P"<*"V@H8R=H0E_55O E>O)C M2.K,F4],+IZ'>QR!R*M3GSII1K&C8 CRQ"6;?(48.]:*U^=A+1";&= M'K#5E[3-"T&!UVE)Y5DC+:(=#A>(#B8INGD1NN",;S&I);>89Q:R6F*_J!$? M"4F;%GNAK#FQ(6IO ("U02D9*CJP0T&6D17/L]@^DT?312"-.+4G*7X6. M2S(\6@3A$\TDH>XR1$+CU@<(!O)Q&UA6TERU.V4NGC\3M4%41>[2S\\#8M8.,B:-FXA-6--F(!*X M"BQN#><@ M;81/:'/ON8%^D7H(D:24+$! M66?4^2+TK%!;R.2D)#QI7/P,<:2#2??/VNJF%ZO31=A^<61T-E>*[,M8KB*. MN[F =.RW>C7?+O4#[*MKUKNS$F,2^:.QZ3\S8/:QEKPBS?A#<\9JJ)3!0:\: M1U$S-6ALN<19AB,^_-=I7IL*.779BNIA'3AIZC1KD#&1G\_Z!@RA6)0V\@'& M7*E'1XBTP'HXF\ Z%PD'T?(A#=4';2H/WLJ *WIL#/)9,HCM^:[F.^W=3'1J MY$KS43+X,P-F]#A[)WZ$WSR?4K)ZZ(FDSO'+B$3,^?0@">J3]Y*Q2!7T]0;0 M0"$R?6IU;A5;XNM%[5OG1 ZAQ8DC7;O0R2P1)"KKB[E"["/U6!RF+)6J;>[1 M"BR416JHB*805>-\D$'CC^#KPMS&V/!Q="KQ"'V\^7\Q/ 'JYQYTPX+];YBF MZ6/'!1.H%:#>*K;MCE@WZ2TUO>)HT09DQP4IY:+=@RG2V![Q,BQ/)!WJT=77 M(GL4"VSD54X'.-]XK9"@K182T-^FX*4C)+5Z CZ):5X!5]E@Z=1@*62H(OF)82N5>*T'G32.$>;V(WM!Z/*M"-" M_^^>=]BFU-%>I68_Y9FRS39;VSPH;4X\CFGNE.NZIECUW#)/TA#/US$&/C)0 M5ZZE$7^D]%?8H.OB9KVK41_[U3==R,.[4,\@-<$!TH9O$N4.5;?PD=TNJ@>EW@_LNBV=]S/1?I0B'=,H-3# MSWV:0#$L),:JN6="877: C?.$Z^@>G_SJ4TNA!J%*[[_P;P/N("_Y)@ENIMP MEL!1 @C*77"?]-1F5;]?<:(>C4?'F@8=;EI7HU_&7(^1<5OI -W'FP^V_R_B M2MW(PTZ+\"K;5OBXX 8:!\G^Q=VB?#Q,^*7:S26]GY[8!+0CW5WG\XO0#V@H MKY2'B@-Q0[!(&S>04^U .,50NUQ5%2)N$^A,&0YA$GW9JE.AVV]*/0FIH6J/ MJY@(T7(<3817=X?HBN*"TF%0AN13D@,T1[\W14T65Y MV#NS*>OLIMAKE"6ZR/^7\$E<\G\SKV3D3?+'#_' AA8/1A7X)FWF#H+X"D5B M0 X5@KO\< @!1-[Q#'^2B3VEG^E]SDH*]'25%]AZ9/@;!5[5K MN&)45;[,Y35?\!>-ZZ&XB,E8K&O_O0>UY/H9E@A?/EV,2)-QL^(>PF0$A"@9 MWAC)L CW]O",.W:7:_&5G&-K3=S-/Z=W\BY6:JF1O.*EI)D>6XUB,P[(2MW5 M=6O7OP@M?FM.T,>%+KC]5X5N>3VG&+(RK0,#*G7T4 U"^4Z,&/;W1_^_J0+! M/E:NW5$\U$40=ZZ-36+3+D.8U[#O]R:;4YIFPE#A.DPY.?$!]U0F8:ZFZX$P"8"6J<8RO M=)G])R.829RR\'S7E1RBHFX,@>T,Z5(H5I-E;J4]+N*H1=);G_6-8 ^X*:CY M6I8VTX(5+Q*XN!'81Q75>[(?7/2%(F%&>1URHU^!S>*U3L",OA]C1@/5-G5H M?#.GNAO:R+A>?_A?R[E&/!3(P CBH5,B$(VT=<,,,D)=J#^6! HZC8DC8-(- M\-]\$$QZD)2;/+ED-,3@G0N@!KV#:G.TP50(CKT!Q.V31E5T>EP)NC,LB%85 M+H8;C,H1K__!0>>A^:Z 07ND>G7%AVC9_,F ME;###G-I",M&\H+2*346HV/;-:79"/=!%O.?T4J:F9GTE>D^=L-]ON/&N<9O M7<,-T#DP:&).BW KAO8$4)-LH1'NJVN[!H M#TQ[CO-0&&===]1T%G\47+Q M:K!W)^?0,NHBOPL%$ZO&ZV?2L&,0.K$$:=C)]9S.)P$\O\$EK6C&]-2B]+9@ MGVXGG+E[D4I:>LTOEGMLSL_S-.,[/[@..^ QAYI:"26#-_8&[L7@;D*NA=I1 MPBJF"81[PP29OX=R6=AWSXG/22\_Z3A(AHWIELHTKIJ#'*3^0/F/FB,5_!## MI4F6KS9$2F[XU4R!>R(O%G$FV=9Z$T$=>/XR^Z3^#>Z/:"N(SE?&[04Q4 MRY[?GZB (@F=PRF(PDN54+RC[EDTR I1@S(T;3$1*A5#Z;W6D]TC5F+R4?T7 MINQX;U[,KL:DA]MP11G:X[H.O8M;- )BWHB.8?O.LT"2019[IPJ-OUNK(^HN M3[&!FN@N;P74-]1N&&;#163O8L;*0(^!;]E=/M<,R#2%&M&PN%S%9=OBUE>6 M4HE(HW(O:D;LE0*R*^'ZR3U[B2G=SV&+PHN$E73*%&/I9VF3J&6DH!YFR=+C1?)6DXN*XSEA'# MZJA=1ULOSM/AH_R1U++E+Y3,;-_BI+9)7)RRAVBHFDL5)8OCD=0%KM2A8V[@ MY'E9%9K:L9"@VN3GLH")C7I0)["<(Z:1*^N;TS22R$_+M39J/Q(3<[07PV1W MO:U6J@C^')$X;A(4ZB]$NBH_WH<+1>3>-TTW#P=#ZWPIAWX.ECM$"B-3YE.W MK\U-GB>SV=&9" W#E>6-P5',]@#\-',#IZ&]\5M 57KQ#9B5Y]0S2>]?IG9BF MC[[7?HYF.S%F?7HDTD:4U3 M*UJDK8:%JM*[<)([++\B(V+.@7$=[S2ZGK^%Z!GDZEQ5PFWI-68>YV=3$G'1,^&,K/ XM_; HD*=%-.-+2F)Q M;,CYRG'2#9X*MGU?CAV+I)\3*?_4WCT?P?3XW7MJA&!CC&*NM;@;&91Q$MNQ M2<'0+^?]RT9 3RZ*"G).W#KSPO7#9%-H TI4WU MI+%]3>_#U3 H]S:RNL(42Z4+K-C=VQWK"V#4AQ"^3_U^I,0R]E9UP- *7.M"5J>$8J3>AP,!=+9#E:#'#$PB_'#ET#3E M+L3!C-<^\=T+! EZHR@U80_R@JX<#+F["J J*RW8<$ZOJ7(]J$6V] S['_%= M US(P](+T.RQA(SLQTZ;N@#ZT.%(M6O4K861UF)_R-QB3?>")%"L0!WT8C,] M!L)62D^A\-[8.V.N4*JTC&'.$$(89P9U>M@_#O>6\DV'U\+P'L5VO?-7&-QC M&^2B!5)N2)$28X?%%8Q;[&I1A2-"XE6&UCJG=^AO\:F&4Q=)?I$*]G YMJ/E:SFD&\*>YZ_K:WM^K" M/7BYM'I4/_C:0;)7K@7KW9\_&*1VH<23QA?H3!=<261<(WXA;2OYN]&PBH_\FK*(I&5\7=6]=$@=5VO_B\9&S45OY\&K M2#CT]?/+FU?ZZ+UJ(GK6!(Z7-Y\4MIAH:G[4NH8VV_8%7T:/&7RP@Y-Z M@O$MSM?,$J!:\&3OI)VPCE/ ,-TR9#]PQVJ*M4M89B%:$K:]V8?NR:'/8AU3 M9<(')@ET@QI>B'%??4,@,,[HYXDCV,E]@\?82Y-E@? M0/D>(A8/J.!TG4I-3:3EX"6^EU'GZ; +&@XAO. S04]W!Z)%_3-'X-ZYS+WX$,MSZU[XL2>^MX%2BH J_8HP"H_$_ MO+Q^\!B^C*^_^/$ [/57ZM& =[YMX-/+Y???/>#J2?VCJP\X9+:J.Z!Y^N?. M.U [\ 5XOJF!;"_^/U!+ P04 " "]BF%6O/1V1?H" K M!P &0 'AL+W=O M0?!OA5>HE =B&B\=9M2'](Z;XW?TFZ"=M2R%PRNC?LF,REET%D&&N6@4/9CU M%^ST!(*I42Y\8=W:GK!QVC@R5>?,#"JIV[]X[?*PX7 VVN*0= Y)X-T&"BP_ M"Q+SJ35KL-Z:T?P@2 W>3$YJ7Y1'LKPKV8_F"^&D Y/#O46'FD3(U8,DX[O$6+EVS!&R=P:S25#JYUAMF_ #&3ZQDF[PP7R4[$;T(?P61\ M ,DHF>S F_2*)P%OL@7OSA Z: 4.Z6N]CX>]_1TY=[5(<1;5/F-VA=%\?V]\ M.KK8P>VXYW:\"WW^R'?&ED[;,UE/G=H?K,L\J&6$F/%9"= MR6DM+ YI'L--8[6DAK>];2Y?_7@P/Q,@ ^-C>$-A'7Q';E>E41G(BO6LNDH/ M^/%5X*/L=3<.\T:!DCEO<<+15GY9>2BX[DE+[4@HA1FW*RJ[1H5V"ZF6SH[" MQ1L-C&&*T*8=GX5&4]O+^M7^);AL&^!?\_89N16V8';,.&?7T=$G+HQM6W,[ M(5.'=K@TQ)S#L.37#*TWX/W<<(/H)CY _S[._P!02P,$% @ O8IA5B%* ME]Z6" ;AP !D !X;"]W;W)K&ULS5EI<]M& M$OTK74PJ15;!XERX;$E5EFPGFXT=Q?(FNQ\A['\BY>[I[NE_W#(YO"O.Y7&A=T>TRR\N3P:*J5B_'XW*RT,ND/"I6.L?( MK##+I$+3S,?ERNADZA8ML[%@+!@ODS0?G!Z[O@MS>ERLJRS-]86AGQ*IGK2UW]8W5AT!JW5*;I4N=E6N1D].QD\)J_ M/ OL?#?A]U3?E+TZ64FNBN*S;?QM>C)@EB&=Z4EE*20HKO6YSC)+"&S\N:$Y M:+>T"_OUAOH[)SMDN4I*?5YD?Z33:G$RB 8TU;-DG54?BYN?]$8>W]*;%%GI M_NEF,Y<-:+(NJV*Y60P.EFE>E\GM1@^'+!";!<+Q76_DN'R35,GIL2ENR-C9 MH&8K3E2W&LREN3V4R\I@-,6ZZO3UY,]U6J960R4-/R57F2Y'Q^,*I.V$\61# MYJPF(QXAPP6]+_)J4=+;?*JG]PF,P5/+F&@8.Q-[*?Z"";F'GFP% ME8Z>/$#07?+5J]7NU=8U7I:K9*)/!K#]4IMK/3C]X3L>L%=[>%,M;VH?]=-+ MN-ITG6DJ9@3R68J#AH?0:FTF"Y@<.M.)IB3+BDGBC!G>2%?K$G3*4I>P;0AG MMO5>"[9_ZQ^^BP23K^A_55ZN5ZOL[M'A#[HZ_^FL;;XK;BM35&W[GQ>7;?WW MU %%T_Q45$E&%_!']'(:WD:TH$"A2GA 1!=QC M<4"<>WXH6Y8X]ST_X'0.[TKSN$6QIX1/P@M"UM(0@<>4 MM)P[B 09B+=*K7Z2Z;^!,0#9JJ15LC\CD% <5A1$,NPU%+ M,_:CMNYCNT!:,6)%(?=4'!-7'F=!)X82$$/0Z]J$G2H?ZO_!>:R-L1(G,/*J M]$C?3K+UM.:_?SPJB"F25FRE8@I9IS[E*3]HZ61IJ'DH96 H>CVW)I;BW&"<[ M6L768M"PQ\;(=JZ7H,Z9(!6&EAEAMQU&/6T/0]GC[*GR79JGE8:T,TUIOKU] MH[6GU?_<\MR%*VTHF1NM:Z.RUN^\Q^+N(EV5$-2+&:/ 9Q3!1AA.S6<]8X4^ M,?3V-BVMP5.E)XN\R(KY76U3C+@7**QB'D-#>6%OL6*P $:?3#+5E"=+G#/\ MJSDPNUAVDSFL]4.1OY@4RY6N+#C@?!/+=$/2+7+;B-XFW/'_8U%,;](LL]X5 MQB%Z?1&2DBAB0E?0&6$(-^>=+SS#7;XU&O^(<\L?'?UMKMNVWZ>9?A8"'X*XW;8 3@&0#"W*-EO;/AQ'C;..?\<$NG$BO@5@Z7M1T#,P MW^-11"*V?D8Q\P3 [5%X;$)8'\LP>,V=AZ*C2%7%''K93P*P'B(^H5!4F^J.Z[$N6_S@0I(,.Z]2.(]?JP7 '$>C&H+C'1 ,/+20"\_!?\SB&H85E/J+MK967&7I/-DDM6#8 MJCE4HPZZP72/;)H# S2 ^K9EZ:Z;:^T%1S0,?1LK?(1UK/VEE;5;K+LCWY8< MT<:2!$+G>J8*T,O%KV8\:UBPF$Q0(%9 MB]T,QND[! < ^FCL@OW(X2V'+\" ,<_BL?2=.?>!WH4&(6J41[D;VFVH45'H M2AOVPQZ0([#$G)!P,21NV"\.(EBWZSS$/_]J<+[0Q2K3U\4M_1UHA?NV-B5= M0I_0PN3S5X/;;AN'H0'D!-SVMAQ"F69JDEEE[RO?NTS6);DM*UAHH^ (S@X] M0=F 6D3(V&/H59&GD*&=WX/9;;_A_0B,^I/XC+.$^0@O0O:+R'H .M_#Y'&7 M_2JQE7PA@Q@&_N'IUU,EE,)B'SF"S?UA=#&/7$X N_HRB%>1[U)@[D6^M#I@ MNY%[&Y2XS]UO)QR'85"C2>C0)98U'"NY$XZ516NDL'824_5"?R<!'#5]F[3=.PRS6 SMEVV6+QI]PU5;/H^C%^W M]69^W(SM3@9Z*_VME=OMKU5VMYGF!M-=6KY8Q_(+5-I78;-^N]ROMD;9?Y6J MGDAX#GUN:)0DGJ,M?X^VK+D\3U/;Y=/H%K3H%NS%D[/-(W -;?7[-MF$RA3D M/MD ZNI/-QC8!5?[R7^MH_PYR=?V1=L^Z#]6_Q=44W\^Z ($$[+?$/T&_V)N M/M9Y"^XAL2^_0V,3DL M"1= V&.YL,'D*2;.DC*=$#_J"<6/6$3LR(_H39JM;;#!,.L/!VYXE]V,>]^ MX!1S]Z4+:7ZQSJOZUU_0^JFUU_BWB=FGB)5R_0,2]E1B)!FZJ]; M=:,J5NZ+TE51P0-==:'A'\9.P/BL**JF83=H/S&>_A=02P,$% @ O8IA M5AD>DNM( P P0D !D !X;"]W;W)K&ULQ5;; M;MLP#/T5P@.&%3#J6YI+FP1HL@[;L )%N\NS8M.Q,%G*)#EI_WZ4;\N U-N M#7LQ19D\.J1$4?.#TE]-@6CAL132++S"VMUE$)BTP)*9<[5#27]RI4MF2=7; MP.PTLJQV*D40A^$X*!F7WG)>S]WIY5Q55G")=QI,599,/ZU0J,/"B[QNXIYO M"^LF@N5\Q[;X@/;3[DZ3%O0H&2]1&JXD:,P7WG5TN;IP]K7!9XX'9%,/,LQ9)>R].KS%-IZ:8*J$J;]P:&PG8P_2REA5ML[$H.2RD>RQS<.1 MPS1\QB%N'>*:=[-0S?(ULVPYU^H VED3FAO4H=;>1(Y+MRD/5M-?3GYV^89Q M#9^9J!!ND9E*(V7<&GCUD6T$FK-Y8&D59QND+>*J08R?08QBN%72%@9N9(;9 MSP !T>LYQAW'53R(^)[)*VR>J+LWWS)4MI'2D-)6PJ9&B^ JBR!]'X2GUK_#D;,,% MMQR)SIH6IUQ2SAT/PXD7J^^4;O%.)J$_&\TZ\:]R^ ]R&?K3<7)*_7^YC&)_ M-@L[T6(-E-5%7U87OUU6:<&(BJ&B.JZ?\A>7PC#^G^U> BLFJ+31U3!==!5U MQNZNBWK;D3^>1/!.IM1W#4*N54G]C#;6<)<[TQLF?I+,8%TP[<*RA5;5MH"= M5CFWH#0(97X87_CA)(2;/*<.Z;)1JGU[^[M\*$T=30(^-DGJO5[-PK,!TG&W M8P-LX[$?CA)8,T/C43:;QV:_8Q_XT'/TV:T(=#]%-VF(]=;""H[9: M(G%RCP=#Q[:2MNFP_6S_/KENVO(/\^9Q*$LMOQX6],9"[0SH?ZZ4[12W0/]J6WX'4$L#!!0 ( +V*859$H;Q4 M" , $H( 9 >&PO=V]R:W-H965T!+_7;WW//< MQ;Y.=T(^J1Q1PW-5B1DXGF9 5T[24:U?5$EEJG:K2 M#3QOY%:LX,Y\:O>6+V-A;@S\%[M3!'(R2E1!/9O$SG3F> M(80E)MH@,!JV>(5E:8"(QM\]IM.%-(Z'\Q;]N]5.6E9,X94H'XM4YS-GXD"* M&=N4^D[L?N!>CR68B%+97]@UMC%%3#9*BVKO3.NJX,W(GO=Y.'"8>$<<@KU# M8'DW@2S+;TRS^52*'4AC36AF8J5:;R)7<%.4>RWIM" _/7^0+$6X3!*QX5K! M'298;-FJ1#A],(,:3%U-<8RUF^PQ%PUF< 33#^!6<)TKN.8IIJ\!7"+8L0Q: MEHN@%_$7XV<0^D,(O"#LP0L[U:'%"S^K^CVQ#53T/I2Y-.>J9@G.'+H5"N46 MG?G)%W_D7?00C3JB41_Z_)XN8;JA:H@,M"7-6M*REW0_[,F72>"%%_#9D>JP MH:MK2W$X?VMGRG2X".#A&'F(1L.Q/X$H',:C&&Y0J7-82K$M[+VG9P<2B6FA MH11*H8)3?QA'\<",DY$WZ,)$\= ?AQ#YP[$7M[L])8B[$L0?+D&2,[XF#@6' M^CC%]^K1'^.C^7_)R]L30^*J(?'VZ*;)VX*5C"=4 _VJ=%0=_Z54PS#TX&HC M)7(--6-XE(7&KR++E,F57),=6U-K4!ITC@=0 MK1M5,8I' [C.,H(U.:[$%NG5US;+%)'>54Y1F]2_^ 7^H$=2 /;K^)P4DC": M?%P"40\C_^/43Z.@CW((]L-^[XMU#][W"HF2Z6)$S]REYJGO=KM&>=GTAQ?S MILO>DB+2 B5FY.J=C>G#E$WG:A9:U+9;K(2FWF.G.35[E,: SC,A=+LP ;J_ M#_/_4$L#!!0 ( +V*859"'-&PO=V]R:W-H965T M[%(BCPZE'PXWTKUH$M$ \^5J/7"*XUISGU?9R56 M3)_)!FO:*:2JF"%7;7S=*&2Y*ZJ$'P7!Q*\8K[UT[F)W*IW+U@A>XYT"W585 M4[^6*.1VX87>/G#/-Z6Q 3^=-VR#*S3?FCM%GM^CY+S"6G-9@\)BX5V&Y\O$ MYKN$[QRW>F"#[60MY8-UKO.%%UA"*# S%H'1\H17*(0%(AJ/.TRO/](6#NT] M^D?7._6R9AJOI/C!9>;C_AKI^QQ08_F>&9;.E=R"LMF$9@W7JJLF';+#_;82T[K.@5K#""&UF; M4L.'.L?\;P"?B/7LHCV[9704\3.KSR .1Q %47P$+^Z[C1U>_*_='FJR@T@. M0UB1G.N&9;CP2 4:U1-ZZ>E). DNCA!,>H+),?1T1:++6X$@"Y".K#I.]CC< MZ96H1KB60)Q\ YN7W8.83B*I@F$\6@ZF?0G4G0RGD&8C(+I M>!\]] K^0" 5JHT; QHRV=:FTTH?[2?-92>P/^G=F+IA:L.)J\""2H.SZ=@# MU4F_@" #5!@ &0 'AL+W=OSW>2'6O"T0#3Y6H]<0IC&DN/$]G!59E& M(<\[4"6\T/<3K^)E[4S'W=Q"3<>R-:*L<:% MU7%U?, M#C[G$\>W@E!@9BP#I\\C7J$0EHAD/&PYG6%)"]SO[]@_=M[)RY)KO)+B5YF; M8N*,',AQQ5MA;N7F$V[]Q)8ODT)W+6SZ6!8[D+7:R&H+)@556?=?_K3=ASW MR#\ "+> L-/=+]2I_, -GXZ5W("RT<1F.YW5#DWBRMH>RIU1]+>H45LJ)=M"><]87B , CA1M:FT'!=YYC_ M2>"1ND%BN),X#X\R?N'U&;# A= /V1$^-EAF'1][D^77G/8\T>L\-ETN=,,S MG#B4#QK5(SK3TY,@\2^/J(P&E=$Q]ND=I5_>"@2Y@F9?,1Y3?)SS]&04^NP2 MWOJE$V@I8[M#V.__'6!JW*)]O7$+@Q8[:-&7Q%RL-"BAS*BO;F$2VG#?'3!$:T[,M% M+FMMN!"84UZ98IM1J&SP.4NH35@,,ZV1\"U=6 69)(AJ^Z+!XA'$8328BL[= MT$\ABMTH#6"696W5"FZ(/D>Z!%G).]B_'+/(#=/8[F&2^(<=AR/K.(S30XXM M.F;!__F-X]BR^%:2D,F MNFY![PXJ&T#_5U*:W< N,+QDT]]02P,$% @ O8IA5K]U2C7M @ G 8 M !D !X;"]W;W)K&ULE55M;]0X$/XKHR"A.\DT MB?->=E=J"X@B@2H*=Y_=9#:)2.R<[71[]^L9)[MA0=L5]R7VV#///(_C&:]V M2G\S#:*%I[Z39NTUU@Z7OF_*!GMA+M2 DG:V2O?"DJEKWPP:134%]9W/@R#U M>]%*;[.:UN[T9J5&V[42[S28L>^%_O<:.[5;>Z%W6/CXT6?Z"4K4]2M,J"1JW:^\JO+R.G?_D\%>+.W,T!Z?D0:EOSKBMUE[@"&&' MI74(@H9'O,&ND=(''\P/ZNTD[:7D0!F]4]W=;V6;MY1Y4N!5C M9S^KW7OOVH4.X,@:M M@3^^"++,GRO?$K[S\LL]UO6,Q9_!"CE\5-(V!M[*"JN? 7PBMK#C!W;7_"SB M!R$O( H9\(!'9_"B16TTX46_J_:4R!DB/@WABN32#*+$M4=58% _HK=Y^2), M@]=G",8+P?@<^N:>BJX:B9[:0ON#K'!D3W$]C_;R1/ZKG_LKQP:'&V4LW$S7%C6(6B-2!=.M$K*B&NZ$*T73M(,!GN8LHRO#DY#% M 8>W3ZVQK:S!8ME(U:F:DB8)2XL$(IZR. SABQ85@A0]&BA8P%/WC7+XI.2K M4O4#6H12/:(4+F<8L;R((.0L"M*%9QIGC/ @*0H6)AE78C\0,*Q"]TK;] M;V+YFS)"HA^$*25+6)0')V7P.&=YF@$/0L M(:4'%7&8L80"H[1@24PG0/V;\X+E03Z-:5 NJ+AI*.TL[- M8UE=6N_5W'%^N,]]^Z/0=2L-=+BET. B2SS0CY0 M.P?:WRIE#X9+L#Q(F^]02P,$% @ O8IA5K;KLAS5 @ G@8 !D !X M;"]W;W)K&ULE55=3]LP%/TK5I 02!%)G#9IH:U$ MV8!-8NKH!GMUD]O&P[&#[=#R[V<[;<@JZ+27V-<^Y_A>?YR,UD(^J0) HTW) MN!I[A=;5>1"HK("2J#-1 3Y?1^;1G\0[P0&&M.GUD*UD(\62#+_G8"VU"P"#35H&8Y@6N@#$K M9-)XWFIZ[9*6V.WOU*]=[::6!5%P)=@CS74Q]@8>RF%):J;OQ?H6MO7TK5XF MF')?M&ZPV*R8U4J+4 MKVP-%4@JZZIHNX5&M3W&I0FC[!PHA$VHI&?#*-] MW$Q(+>FF145]/XSQ/NI& O [:C:QQ6%_F SV<=] 7]U.$4[\=)BVV#W0M=AH M*32*_#[^$/1K-D>]V""&'R'F=56Q5_1 G769%9/X#9K_-J_:V)I6R+E2)FJN M+X(USWQ%I+H%"#):&&IZE?0_)Q@V; M0(O*.=!":.-GKEN8'PA("S#S2R'T+K +M+^DR1]02P,$% @ O8IA5O_[ M\0Z/ @ ' 8 !D !X;"]W;W)K&ULE95M;YLP M$,>_BD6E:I-0 9.PT"9(3;=IG5:M:O?PVH$C6#4VM4W3??N=3<*R*8W6-]AG MW_W\/\,=\XW2#Z8!L.2Y%=(L@L;:[CR*3-E R\R9ZD#B3JUTRRR:>AV93@.K M?% K(AK'6=0R+H-B[M=N=3%7O15(M2,.5)!KJ17"9G"\GSM\[_."P,7MSXC)9*?7@C.MJ M$<1.$ @HK2,P')[@"H1P()3QN&4&XY$N<'^^HW_TN6,N*V;@2HF?O++-(I@% MI(*:]<+>J.?9#/XIC0@96^L:K?!J*#E]@)F\0L! M=!M O>[A(*_R/;.LF&NU(=IY(\U-?*H^&L5QZ5[*O=6XRS'.%I=EJ7NHR!?. M5EQPR\&0-]_82H!Y.X\LGN#\HG)+6PXT^@(MH>1&2=L8\D%64/T-B%#:J(_N M]"WI4>)G)L](FH2$QC0]PDO'?%//2_\_WT-I#I#)88@KE'/3L1(6 5:" ?T$ M07%ZDF3QQ1&)DU'BY!B]N,?"JWH!1-7XT0YRQ7&YQX&G)S,:IQ?DM2/>?8^% MZJ]_?_ZOGWLU^P8ENULN58O=P["A &5%5B"AYM:0=!I.TXRD-$RR?,]?6B[7 M("UF_MASPWTD+AM>@1XXNY/2.,PG^6@F-,SS>$1U6M5@7.]@@M2 GW429DF. MSS29D:^V 7WH=AV&QE.2AWDV'=FS.$SCG$RS<#*AK[W'0Y]$M%>Q+>BU[TL& M$^VE'8IW7!U;W^50\7_S.< >,/X3B-U!+ P04 " "]BF%6")['%:@# O"@ M&0 'AL+W=O M92FU#339BG98UR!I5^PC+9TMHI*HD52<_/L=*45U$\?K5@S[0AVINX?WSEOL MA/RB*D0-MTW=JJ53:=V=>9XJ*FR8FHD.6_JS$;)AFK9RZZE.(BNM4%-[H>^G M7L-XZZP6]NQ2KA:BUS5O\5*"ZIN&R;MSK,5NZ03._<$5WU;:''BK1<>V>(WZ M4W=-*"5OL%5!V?GB>&W#+]SW*D]&HPE:R&^F,V[_8VUG6Q9,X47HO[,2UTMGL MK_65V+W%T1ZK8"%J95?8#;Q)XD#1*RV:49@T:'@[?-GMZ(<]@DO)SF]^A7)) 4G']FZ1G6Z M\#2!FE]>,0*<#P#A$P!!".]%JRL%/[*3-I%)XK])Y>!3Q%];.( I< M"/TP.H(7329&%B\Z:N(ARP:Y^+"<*8 MM(J/H:^NJ;S*OD80&RA$TXD66ZW,C@I.,LW;+=1&<\!;JD"%APPX?L6+9UGH M1Z_@1[\4D)X*UL;D*?H/9'+(@$G,A&]_$^YO@G^MS8<'[BF$TA"[01;2&J%M4K-TBT.LS8HEUS;?, M='0%61I#Z"9Q1FL4S?^S1'_(]]CKGVWW)Z79#3F'%"87D!5?T\HFXLD=15"= M0CA+(9I%CZ5*K@K1D^O(P0@GSPTKF3B;(GFD\213XTF^N_'0J];+(2[&PP]K M82]NA[K/\7O^>:Z9_!Z?D8/N']\J&V(.43PW M1 9!Z!LB!]:6H"NDP65#L9@PDWSL X/%';MK;!^>NTDVIQN5.@/>=+VV"4F2 M2.WA)$SGI]_([6?EW(WHTHM>2E,$D1OE!"3:[=",(C<__*IY>X]X@W)K1Q4% M-A^&]WPZG::AU\,0\)5]&*7>,[GEI$F-&Q+U9W.*E!S&DV&C16='@K70-&!8 MLJ*)#J5AH/\;(?3]QEPPS8BKOP!02P,$% @ O8IA5F5%//FB @ 0P8 M !D !X;"]W;W)K&ULI55M3]LP$/XKITQ"("&2 M.*%TI8U$V:8QB0G1O7QVDVMCX=C!=BC\^YV3D'6CK2;M2\]GWSWW/';N.MUH M\V!+1 ?/E51V%I3.U9,PM'F)%;=GND9%)RMM*N[(->O0U@9YT295,F11- HK M+E203=N].Y--=>.D4'AGP#95QS((X>-VX%^O2^8TPF]9\C0MTW^L[ M0UXXH!2B0F6%5F!P-0NNXLD\]?%MP ^!&[NU!J]DJ?6#=VZ*61!Y0B@Q=QZ! MDWG":Y32 Q&-QQXS&$KZQ.WU*_JG5CMI67*+UUK^%(4K9\$X@ )7O)'N7F\^ M8Z_GW./E6MKV%S9=;$+!>6.=KOID8E )U5G^W-_#5L(XVI/ ^@36\NX*M2P_ M<,>SJ=$;,#Z:T/RBE=IF$SFA_*,LG*%307DN6Y3<(%SS6C@NX?@;7TJT)]/0 M$;:/"/,>9][AL#TX,8-;K5QIX:,JL/@3("12 S/VRFS.#B)^X>H,DO@46,22 M WC)H#1I\9)_4;I+8)>>[D[WS3&Q-<]Q%M#7;]$\89 =O8M'T>4! I+7 NE2*P'>4%N8)R>7IR/ MO$G?I][$Y"VZRQ'6-EA,8.%T_@"Z]HUN@3AT]:%1PEG 9S2YL%C * 4V8I D M8[BA5%_R[8U[8C&[?&.O\L=&6-'5./ZJ'4)RLC=Z4(3$9DL+B?Y+4G\1N[ZB M<*NQ*S3K=GQ9XMLHU_7XL#M,R*MN,/P.[\;K+3=TLQ8DKB@U.KLX#\!T(ZMS MG*[;,;'4CH9.NRQIRJ/Q 72^TJ2X=WR!X7\C^P502P,$% @ O8IA5OJO M2EL@ P E0< !D !X;"]W;W)K&ULI55MC],X M$/XKHR"M0*J:Q'G9W-)6VL(B0.*T8N\.(<0'-YFVUCIVL)TM_/L;.VVN)[K5 M"K[$'F?FF><9V^/93IM[NT5T\+V5RLZCK7/=51S;>HLMMU/=H:(_:VU:[L@T MF]AV!GD3@EH9LR0IXY8+%2UF8>W6+&:Z=U(HO#5@^[;EYL<2I=[-HS0Z+'P4 MFZWS"_%BUO$-WJ'[N[LU9,4C2B-:5%9H!0;7\^@ZO5KFWC\X_"-P9X_FX)6L MM+[WQKMF'B6>$$JLG4?@-#S@*Y32 Q&-;WO,:$SI X_G!_0W03MI67&+K[3\ M)!JWG4=5! VN>2_=1[U[BWL]A<>KM;3A"[O!M\PCJ'OK=+L/)@:M4,/(O^_K M_\57$NV+6>PH@7>+ZSW8<@!CCX"E##YHY;86;E2#S?\! M8F(VTF,'>DMV%O$]5U/(T@FPA&5G\+)1;A;PLJ?+_7*]LL[0Z?AZ2O EY^& M\S?FRG:\QGE$5\*B>#C) M9-)!%#5PU4 C9.^P 3PHZTB9]63RS]2/Q3#D)4) MO/8,J9L!KM?4WKP4;#NI?R!A.%W?@^[\4;&0%P7DQ#0KJE-1E,T940<.I)R$ MACZOZCT7Z)5P%M()2PKZINR2ODE6_4R=ZMOZ+DLH^RE^Z\4#EZC<25WE)"_2 M4$BJ8%5,+HL2;GZN^*%6R[ ]Z90.0CI-&"33D@V*B$0Z32N_G/CE\:2A\:ZTHS8>IEMZ-]%X!_J_UMH=#)]@?(D7_P)02P,$% @ O8IA5I%N M6$QW" K"4 !D !X;"]W;W)K&ULS5IM;]LX M$OXKA+>W2 "%%M^E-@G0=+M[>[CM!LEM%_=1L6A;B"QY)=EI[]??D+)ERK84 MN0VZ18!((CG#&7+F>8:R+I_RXK&<:UVA3XLT*Z]&\ZI:OAZ/R\E<+Z(2YTN= M0<\T+Q91!8_%;%PN"QW%5FB1CJGOR_$B2K+1]:5MNRVN+_-5E2:9OBU0N5HL MHN+SC4[SIZL1&6T;[I+9O#(-X^O+9333][KZ8WE;P-.XT1(G"YV529ZA0D^O M1F_)ZQMB!>R(CXE^*IU[9%QYR/-'\_!K?#7RC44ZU9/*J(C@LM;O=)H:36#' M7QNEHV9.(^C>;[7_;)T'9QZB4K_+TS^3N)I?C8(1BO4T6J757?[T3[UQ2!A] MDSPM[7_TM!GKC]!D55;Y8B,,%BR2K+Y&GS8+,42 ;@2HM;N>R%KY4U1%UY=% M_H0*,QJTF1OKJI4&XY+,[,I]54!O G+5]7V53QXO;L"O&+W+%[#99627ZS:- MLA*=_2=Z2'5Y?CFN8#(C,IYL%-_4BFF'8D+1;WE6S4OT/HMUW%8P!BL;4^G6 MU!O:J_%?4881(QZB/F4]^ECC.K/ZV!>Y?LSC6A\_KL_DS^MR&4WTU0@2I-3% M6H^N?_R!2/]-C[6\L9;W:;^^AWR,5ZE&^13ILDH@(,'NTOKP8'V8N#[H3^9> M0^),\EF6_ _ZDPR&P%YD]>"LS-,DWFB!"Z1:991#PA=6Q]$EZ#?RQQ\"ZK,W MZ&NOL-4KP B[VUWW_]514<=6(V8"PWV@[@.!32ZMAX5>ZVRE2Q1R'RE&05V( M[B.(81!-,8G P/5G@TO%%M :;9QI%)4#TLC," M^C5_WQ'PI=:\AVR:F$R)DW4"&12CSXE.8W3VCW,[AM WK>M6UCPWLNL\A1!( MD^JSE:,AIH@J'.Q,E)BCNZ1\O)@6&E(7DK(>"U.H329PN#/ ML"+E.1+PMQTL!H2-;,)&#@X;BSS;V2VW@F/'XJ5?Y4O%RZG7/[=1WSGBPVKQ MH OC:K?,VTW*-,^S6:%G9M_VM5FRZ92[TZ: ,I"S;?DUJXH$:I_)@:;?Z]1T M8E,7DZ3<*7L'M%O CJP @+9M'Z-T=6C4[ZL*H#^+W8EOBV2R&_EO-ZRVC6? M)(LD38T9Y^@F KH$D:AJ)6#MWR[4#N-9Z'O$2G/W9E#S(+!*J$PG.JD:JGTF.^[&@7# M /)#-7:O)H55!*+RJ')7BE/,!*P>=]L(%LWJ,2&!0MQN2; ?'EF5,\F\(&S9 M#O#$^!%OSXCR0M5VD^(P&. & S=$R#S.F&NRP(*#&Z3=I@:OVZG7CU!#&?0L M;*5DD;3*T1I:OU^;-UME*O(.(XD/)06AKD&^B0^&W;1A:A51HM,J2JNSEAW[E?Q<_[*/M,:C<]KG[\K5\]/*"^UPS M>*9]P4-"/*2MYV4Z::O-D,=(K$/D+LIFMB1I^BV'E1LJV^Y2B\K:7:](@,,Z M0PB!#*$4!]*%08*50(0''A$,RJ^PL^\5U'"4.YJ@OG-3KWX&SO&8\*&PHYU] MKUB !=MI$ARWN(^%IEM2 :3@0X*K=A^ @("^0%$0E9B1G2898.YZ 'P QQ8I MX,0!!"U:FDP?@<*4>Y0= ML6 W?HN(>&%GP.8*D'@'*$#7-9S7 MF-.'-OUJ7PHUGJ\NNQ*F.W$LH5_\U%U<[A>&/T=)L2G\ )T(HMW;]>NK MZ(1//"G<0(0XI$VU<5BC$6G*O W=GD%MY FJW,*!$,RI6UL<5%"$F2#KJXRX MI%X@6%N&R)XB"#*>.V;!<9L$ $E[=4@9$ > MA$T>A(/SX$O(MU_[MR;;7=H,3Z"N1!I^-.M(-8W=[_L4M!FZTV#_MX M;?CAK#WR*P]G2AA^<).&"DP48+C+ )QCOUD0I3S.W7@. B>>T:T3@77L)66Y M CD._!&ZC,HDEKN9CYS," "%KZB;;B&6$<\H#]'0@CGGM!= ,G=8\]SU\X%V@Y@H:=\%Z> ]MGPT^/A0EK6I\EVYF4LNLK%UQ M!;C)D1YZ(?[NYR%_,,$4L'Q0-^\*K>?YY1GMWP/!=!/#J13330I?0C''6>'N M='HQC/!"Y'+:6S_.J$?"5C$8NFC9)AH@'WJP+ )8(&P=5@1F7_7*3YFW:-SE M%87)R[R?X\3WPL!]QTE#0Z@"M]Y[PJ&H\5/"H4NT^(1@T4>,WP+/N8+C&G.M M8A1SOK=?3#BGU[\9O[\#BY_#;PX4PULU$ TPE7LG9@B.)C_Z\-OY>9\,QN]) M5,Y1J:LJA>4\"N9H"5'1#^C]T[T<0)\*QMU0>PBM#5JVT/08=O;A90LA^_"0 M!9ZD 7+?RA/J*:@X-V%N?B;>[HOYE=[LTQF5'E3HY^X1E%+2-Q-%%&H$.]-A MY0J%*S\L5'L,:!"3*$^1\/Q ]LB/'XH?#AM2.1+NB76S>_AQ] M)UYK)OUOO,?.!S0+7D&D[3%?J0E M.N:.)+H2EEB <,DI_J]QLCF?)C.5R+=K" M?-)W/\E>GY#X9;IH[#^[ZVC#=,:RMC&Z[#=#@E)5W2CN>SN,-B3N"QO\?H-O MY>X.LE*^%T:<'-7ZCM5$#6XTL:K:W1!.5>24*U/CK<(^<_*ARG0IV;6XEPV; M7XM5(9O%T=* -1$LLY[-6L.XYS#?]?D$/SXHRBT__@*_7[21S$O87]E8Y4.:=GR"PWPH2-XV6Y') MXQFBH)'UK9R=?/^=%[GO)J0,!BF#*>XG5PBZO"TDT^N=G"N)T),CJ1WV'K/& MJ(R)*F< )Z!7'=)D^JSOOTM\E[]C7SO"4RWBV3KKI?D_I*@[: S;R*_CA3]> M>/^U-.>B$KE@0>IX8<)XY'!@$R)P-V:_5LI @BLC#- >>HX?@<1W.$^8'SEN M[+._FXVL6:;;RM0*1)QCIT]#&KG,\YTT=8>S/#R._81YKN]$GLMBU^%1NGL] M 8=P@$/X:CC _5M=RVZD3Q9QY3N+%]!^'3USM<<=-0I8X49*R.1:ANWCFZM )X-L M_D[PGXXPZ">.'\#- 0X(&'P>1.R]7$N(E1^2:E[+3-_*^F&Q$S#$D2G.YXG' M8L<-GF)Q#JF39 'AT\"#.B&/G\D'#>>)D[@@F_N.&WF+04 .^0)L#B$>I Q' MYH3)@]1G'@*!D I-7H70:$!H]&J$YCN3D"U$TTA E3)4H<1*%*)L=MC4=:AXL@?RC5=N2 BB&?#:) M451]0O$2=;:Q-+F\17_645D4Y\JT*&_V)9V4P:\*5D$ZY"F0YB%77FLCBKW7 M1X'0.]_G3N+;[!L"U3^/#+DS^!?JI2HCJAMK\?Z(>8"4'%)(!+'CA^&"7)&+I/.;*%K1]:,%&F)!PB'X8S<@(A29*7Y.AZ7)\+6' M?WA>YN@VE%-HH5 QL4+%ZP7@2(344L6.1Z4'T$?U'#'"[9&J9"Z[V0)6?&Q( M9![[VG^3]SX2MOCU;+HBH;12.?R5NFV84CJ2N=@D\8^):"H9\:#Q7^R MKZ!R)HJ&E&4MA*D-KNQ6Y:UN%$6L5=M+D#GF29!2,^(G>_0>SES6..BU75?7=J/G[OMIV_$X!(6BS:WW>\?(^\[&=*!+XL6> MS7/N8@J?4ZW/*Y)C,B3'Y-7)\7&M9YFHZPLO5'0TQS, MPF+.&4\8$&0LCCRZ5VRAS+?SW';\%%&K@%H*=8& MC7SB>*!-$@ 2_;V+>P31H*%/]Z#L:!!W>$94G!9>&#..5F-?B"9 FPZ@35\- MVK:BRGU3J7_UO?NJNT@B">FB8#U^#\%W^HS_?>N^:S$?'.APHZJ*(A$:6BC& M#D>"PATLY>S'FL)3]:FR[[:]=T/^[A(MBP)4%L[9SV+;V%3>2LK'7<&5MB4M MD.2-&-)G$G>-'*<$/1(''?4@2 1?NKTX$QY=CK[JE;*^L=\NF^Y"V'W@&YX. MGT=/NZ^">_+NV^I'4<,:#2OD&EO=-W$X8W7WO;);&+VUWPA7VAA=VNE&"O3* M1(#W:ZW-;D$'#!^-3_X-4$L#!!0 ( +V*85;DK"05FP, !\* 9 M>&PO=V]R:W-H965T^VG-H& M8K?#.JQ8D'3;9UHZR40ETB,I.]VOWY&4%"]SW;3 @ &&I1/OGKOG.;XMCD)^ M4CL 31[;AJNEM]-Z?Q,$JMA!2]6UV /'D4K(EFHT91VHO01:VJ"V">(PG 8M M9=Q;+>RW.[E:B$XWC,.=)*IK6RH_KZ$1QZ47><.'>U;OM/D0K!9[6L,#Z-_V M=Q*M8$0I60M<,<&)A&KIW48WZ]3X6X??&1S5R3LQ3+9"?#+&^W+IA:8@:*#0 M!H'BXP ;:!H#A&7\V6-Z8TH3>/H^H/]HN2.7+56P$?H.>3&;Q"-,K^DZ/SG6'&HE-:M'TPVBWC[DD?>QU. O+P"P%Q'Q#;NETB M6^5;JNEJ(<612..-:.;%4K716!SCIBD/6N(HPSB]V@BN)4I#UK2AO #EDSN0 MMMEHD5^W#:NIT4\1RDLRNF^$THI,/M)M ^IJ$6BLQ2 &19]W[?+&7\@;Q>0# M8NT4><=+*/\)$"")D4D\,%G'%Q%_IOR:))%/XC!.+N EHS*)Q4O^"V7.">+2 MI>?3F<5WH_:T@*6'JTN!/("W>OTJFH9O+I!)1S+I)?35 R[FLFN B(KH'9!B M1WD-BC#NS*%XJA1@7[>.\CD6E_.\?I7'8?*&?.WY%BJ0$LI_#=S# 7@'@^B$ M:H*-[7"_&'H;D2SRXWF$KH6H.;.+&VFA:@;9+D?CC-KOJ\ MM#$!PV":^7&2DO>\P%U-H2B5%"W9=@JY*87:M%O&7:=]PG&?G,5S\JZJ<%\Q M,*TX .Y2VHJ)TP/W 4[@T2E,)FD^O[K )B99[L_"\)O8I+D?9\EY-MG,GX;9 M-[ 9E(_]*,]?S&N(FN1I=(E?,GI.YWXRGY--AUSX4]KIS)_E*?E%\/H'#;(= M!R)_&F5?G4C/G^,R?#YPZV;VI7D5^4F6D(^2&PO=V]R:W-H965T M[@_MJ75IW$&:SAJ_Q >W7YDZ3%?8L156C-)62H'$U#Z[C MRT7JXGW MPHW9F\/+I.E4H_.^%C,@\@)0H&Y=0R\02$<$3 -H, 5;X6]5YL/N,UGY/AR)8S_PJ:+3:, M\M9856_!I*"N9+?RE^T[[ &FKP'8%L"\[NXBK_(MMSR;:;4![:*)S6U\JAY- MXBKIBO)@-7DKPMGLLRU1PTW)]1H-G'WA2X'F?!9:XG818;[E670\[!6>F,&M MDK8T\$X66/Q-$)*H7AG;*5NPHXR?N!Q"$@^ 12PYPI?TF2:>+_F73(>',NSP MZ6&\ZXY+T_ DQ]NR!NJUH!8):0:[J1DF4 MUCA+>=UYI_N0[./$IR=3%B57\+]6*DM+W>LKL[\_Y/^!7'?_0^]VQ=PWV+X1 MPW7^U%:F<@W[1J/@EJ"Y,O02;# :1Q /V 6C[_@BA1OZWRJYIG>B$)H2!6J^ M[?1<8[>3!?#B)[51[9^3#:91"J-!-(G@C%A&%^=PC\;J-K>M)C)H!)<&)A,8 MCRDZB:)>WVB0IC&,!RF;.D\R.E3U<*\3:Z2*N7EC2%\K;=>4_6D_TJZ[3OX3 MWLW#6RIX15H$K@@:#2>C '0W8SK#JL;W]5)9FA)^6])81NT"R+]2RNX,=T$_ MZ+/?4$L#!!0 ( +V*85:F+\U!(@, /@& 9 >&PO=V]R:W-H965T M!F3Y,.R++4KDPX>D2*T.4GW5-:*!EZ[M]=JKC1EN MPU"7-79"W\@!>SK92=4)0Z+:AWI0*"IGU+4ABZ(L[$33>YN5VWM4FY4<3=OT M^*A CUTGU+=[;.5A[<7>:>-SLZ^-W0@WJT'L\0G-7\.C(BF<4:JFPUXWL@>% MN[5W%]_>)U;?*?S=X$&?K<%&LI7RJQ7>5VLOLH2PQ=)8!$&_9WS MK5 1.._ M(Z8WN[2&Y^L3^CL7.\6R%1H?9/M/4YEZ[14>5+@38VL^R\.?>(PGM7BE;+7[ MPF'2S5(/RE$;V1V-B4'7]--?O!SS<&901#\Q8$<#YGA/CAS+M\*(S4K) RBK M36AVX4)UUD2NZ6U1GHRBTX;LS.9I'(86*=Z-ZSJX@?1'\# M/ Z 18Q?P>-S^-SA\5\._U+4$V9R&=.VT:T>1(EKC_I$HWI&;_/Z59Q%;ZXP M3F;&R37TS1.U936V"'('I26\LX3+6O1[U-#T0/VJB'F_!Z$U=;7H*V@;L6W: MQC2H+\5SW>/K5P6+^!OX77^JX4C][\IXOKYT_B\*-5V>^=A6_EQ@YT(,7Y2H MD)J]E&-O-,V-$IMG>X$A3F/P65 4R0+BA,,G4Z.ZJ,F"M%C2-TH8^'D0+8L% M/"H<1%,!OM \U)1JFU?I(/PTR#*^ +\(6)XMK!RQY8)NT3-=+$FAQ!$'/[$P MRR7%#R%3_-M:%%8VOXR)88L)7-6<'B+.U2*7"DDLB-"$<04=>:^ M:5#D^9S>/,B71( %.27'YT&:IXM+%SH\FT8=JKV;N1I&ULU59M;]LV$/XK!Q4H-H"-Q!?+4FH;2+(,[; 0=QN MV$=&HF6B,NF15-S\^QTE6W,PUVN![L, P\<3[Q[>\1X>.=M9]\FOE0KP>=,: M/T_6(6POT]17:[61_L)NE<&9E74;&5!U3>JW3LFZ=]JT*;C73/UZJUNWE"D\.'!]VL0_R0+F9;V:BE"A^W]PZU=$2I M]489KZT!IU;SY(I>7N?1OC?X3:N=/QI#S.31VD]1>5_/DRP&I%I5A8@@43RI M&]6V$0C#^'./F8Q+1L?C\0']YSYWS.51>G5CV]]U'=;SI$B@5BO9M>'![MZI M?3Z3B%?9UO?_L-O;9@E4G0]VLW?&"#;:#%)^WN_#USBPO0/KXQX6ZJ/\20:Y MF#F[ Q>M$2T.^E1[;PQ.FUB497 XJ]$O+):JP2T.JH;W9BAQW*L?/LC'5OD? M9VG -:)E6NWQK@<\]@4\RN#.FK#V<&MJ5;\$2#&X,4)VB/":G47\19H+X)0 MRQ@_@\?'C'F/Q[\EXXM3F0XXXC1./"V7?BLK-4_P.'CEGE2R>/V*YMG;,U&* M,4IQ#GVQQ--7=ZT"NX):>]DT3C4R1NW4DS*= GU4K\=G:)1MG-RN=06MK8;/ MZ#M02#F09G0]E>OY:%Z_*EC&W\+WDEC3#EM 7];C\:GY/Y1T YG&ZAC0]?#0Z[M@RX,9YX-F4T(P!$XQD10Z,4L(X@]O.88\C<*?KNE5O;J4/ M_6Y=K9RN)%"6DU(PE 4IRPQ*06C.X48:64O@@DS$%'A.*$7(DO"B@"NO)=S+ M2J^P&G1*!(8;15D Y:0HZ!BO*'*240&""9(C.!<%R7-QF#]#I,E(I,E7$\D/ MU$<>;*T+VC3')"*117N+4PPYO\S_E"&_Z@HO& 4%UFT"$Y+E6?R?"%CB@<9) M#X)/R)0+X-,"*X@R*U&G<._L2OEX.&-1XX04E13J*@/ >.=9^6 MWZ'N^5CW_%L:2-5:WSG4S'&GD'B/>X(-PS1O6KP=:Y#>J^"1%_BK]9.N.\P. M.8*WFX'*=B8XC6DB50;E^115SD?V7U'BR[7_8 -F\<\L7_8'R@N295/ 'D%R M4?Y;7^",E$@EP5&P0SO(.1%8UD)@R^ O^P!VD2Q#HI7TB(S(#FQ'*#-L$OFI MLJ='=SOV\:9_P?AA]X=K?OPZ/I*NAK?!W^;#"^M.ND8;#ZU:H6MV,<4C[897 MRZ $N^U?"H\VX*71#]?XT%,N&N#\RMIP4.("X]-Q\1=02P,$% @ O8IA M5JH;TF'[!P 7D@ !D !X;"]W;W)K&ULS9QM M;QHY%(7_BL6N5JF4!N:%),TFD1*FW1 M@6"=SF$[I[QHG9_6C_7E^:DH=<8+UI=$ ME7E.Y<,ER\3LK!6T'A^XYN.)KAYHGY].Z9C=,'T[[4MSK[U4&?*<%8J+@D@V M.FM=!"=)-ZH*ZB/^XFRF5FZ3:BD#(;Y6=_X8GK4ZU8Q8QE)=25#SXX[U6)95 M2F8>WQ:BK>685>'J[4?U#_7BS6(&5+&>R/[F0STY:QVWR)"-:)GI:S'[G2T6 MU*WT4I&I^G\R6QS;:9&T5%KDBV(S@YP7\Y_T?F'$2D%PN*$@7!2$3POB#071 MHB#:MB!>%,2U,_.EU#XD5-/S4REF1%9'&[7J1FUF76V6SXOJ>;_1TOR6FSI] M?DD55T2,2%\RQ0I-ZV=C+V&:\DR](6_)[4U"]GY^<]K69KBJJ)TNI"_GTN$& MZ2 D5Z+0$T7>%T,V= 7:9I[+R8:/D[T,0<4_:7% HF"?A)TP6C.AWO;EX9KR M9/OR %A-M+0^JO7B#7HFMR:5A7F6I61%^F!.H[Y@"ZX@)L)-<]'M:4,29\^U NXD)(6X_K9V2>? MIO6I\N6*Y0,F_UVW,'"$:D<_45.:LK/6M#KYY!UKG?_R4W#8^75=MC'%$B0Q MQ]G#I;.'6SN;BMR\@JGYKD.MO63P0-3*<=/%,T!G5 [WYS_('5.:%V,R99*+ M(=G[AU&Y=I^"Y],E#Z9P73)[8*&OYTABCN='2\^/=NTYNY]R.2]J-!R>S-%F MP\%"7\.1Q!S#CY>&'X-K[#-9-V5%RDAMO@)W"E#,=Z? %$N0Q!P3WRU-?/?* M=@IX/M'FX(*%OIXCB3F>!QW;$79>TU[1,)N@L]ETN-37=2PUU_:51CP %WIM M,BIYJHV;-UJD7\EMP;4B>]H MMQ#2SRB,*;"F]_Z!J99@J;E^6@@,8 J\-,$DM"A*FI$18_M5$E.3T;4VSJ6. M5QGTH/N$9.'QO-W9!<<%%N0"F)S>?ROYM#YEP7AA4E0/52W!4G,-M%06P"34 ME\($2C^8B T)6[I9*C8J,Y+Q$8/V/%@;>J5!Q2PL-==#"UH!3%I7O.!YF<,1 M1.4K5+4$2\VUSR)6 #--3RC396I!Q$!3;EZ?S]B6KT*8:)X& MEOQ'$BY9JH54]4;P:33B*9/P.P;P(+Z11E5+L-1<@RU)A3!)O7S3WS A8"N& M*[V-WP5MA9:V0AANUB2[1]7D[0W3.C,FKR)NW9\VMJ;P@-XI1R4L+#77;$M8 M(ZW0;MH [H6@M1B0M+S;70$E<($]>:?'XH MI3G72\EJ6S_P^^IV0^^ 2F2H:@F6FFNP);)PAT36H UMHJA$AJ7F>FB)+&P@ M,GK?2&2PA'<$48D,2\VUSQ)9^&J(K&$FAT!@48D,2\W]'HXELJB!R)X$]ON( M#![$-]*H:@F6FFNP);+HM1%9PX2 [WS E=[&[X+((DMD40.1/4_V#Q(9/*!W MRE&)#$O--7OE^WPO260-@T$)1B4R+#775$MD40.1K4FP'Y'! W@G%I7(L-1< M)NX"RR$)9!$-9;\$,YB4_JWLO->%3M1K:;3Y(@P?Q3BDJ MMF&IN09;;(M@6+I(33*KKU[P0IN>E@\R<_8KTPXH4KWDY[1J!9:9-6T %%IX MJ!#(+"J78:FY?T)@N2R&N6R+S&[Q5@,\B&]F4=42+#778,ME,8Q!F)EM&"H$ MOH(%EWI[N@ODBBURQ3!RO;_G\P[_,TLGAI/9+PW5W@,[S]X1B4M+#777TM: MW9@U;6@U85!JSFR6VRS\!C>D45%+2PUUU^+6MV70ZV& MH:#.%2[U]A25M=HK%U[)F1S7%[!1)!5EH>>7-5D^NKQ(SD5]:9@GCU\&)\G\ M4C=69G[EG2LJQ[Q0)&,C(]DY.#*MMYQ?S&9^1XMI?7F7@=!:Y/7-"3-MAZP. M,+\?":$?[U0#+"\I=/X_4$L#!!0 ( +V*85:E?8*-V!0 $>( 0 9 M>&PO=V]R:W-H965T;>V9JLR8R1 M0#9Q56*IN_724I_)SN[Y2FS%I@:#%W"2.;_^"(PMVL)M-+ZS7V8P05<+8YX" MJ1_UNV^+Y>^KZ[)<=[[?S.:K]R?7Z_7MV]/3U<5U>3-9_;*X+>?5OWQ9+&\F MZ^K'Y=7IZG993BZW&]W,3OUN-SB]F4SG)V?OMO>9Y=F[Q=UZ-IV79ME9W=W< M3)9_?"QGBV_O3[R3ASM^G5Y=KS=WG)Z]NYU]K>5[.9ANIVH__[-"3QS$W&^[??M#%]LE73^;S9%6>+V;_GEZNK]^? MC$XZE^67R=UL_>OBFRIW3VBP\2X6L]7VOYUO]X\-J@=?W*W6BYO=QM4>W$SG M]_^??-_](O8V\/UG-O!W&_C';M#;;= [=H/^;H/^L1L,=AL,CMT@V&T0/-W M>V:#X6Z#X;$;C'8;C([=I?%N@_&Q&WC=AU>N>_0FCR_VT:^V]_!R>T>_WM[# M"^X=_8I[#R^Y=_1K[CV\Z-[1K[KW\+)[V]?]]/Y-LGV'A9/UY.S=^>OG>F\\\_KQ=UJ,K]G\[2^C7M#_Q^9>/9W--H]^<_^@AQ_?G:ZKW=F@ MIQ>[H?7]T/XS0WM^1R_FZ^M5)YI?EIYW?/H6=G_[Z]P,[=OX"<[=A>EO&=S"AF_EPN_REXWLO,I&;$>7G:F_& M+S+BI2O)'ISM\45$ME.BW7SL_[?[ #EGQ$;\?/WAQEQ(W MDR^^5K^?>Z;K8-(C_G:\[HM,=LR3\EYD]!%OB)[WXALB/YYQ_0D6QS.N5\JT M>:7./QQ@K/3H/49A;^OV7H[" SOU\7[C_N&--Q_\WJYN)Q?E^Y/JD]VJ7'XM M3\[^]A?;^;SJ_*^;IS47U' MG%Z6R\ESGZ^<4MND(;&0Q"(2$R0F24R16$QB"8FE)):1F+['@KUPZ'7'_?&3 MH&D^RO/'X^Z3H"%WS$"8E4?!8QX%QWXB^GE9SB;K\K(*IM7ZT-&KCTZJ;2"1 M6$AB$8D)$I,DID@L)K&$Q%(2RTA,!XVH\0?!DZ3)FP^J\LA_$D<''A2,^T\^ M]D#[;L7,\#%FALZ8R:LO5^?JXYM.EIT?2A;GUFV3A<1"$HM(3)"8)#%%8C&) M)226DEA&8IK$MP\%#4*@B=?V')RR(+$#(19.>5U'X-J,PG.D51Z M\GUZ3.;0*NMU&U M4,I=E9MS<9U7-FG2F7T\5E MITJWSK+\6L[OROVPZZPGRZOR\,%Z-]PZU4@M1+7HA5^AW_FCG"P/_8X$NA\2 MU12JQ:B6H%J*:AFJ:53+4:U -4-I=M#Y==#YV,0(-]4ZVD@M1+5HIUG38WKC MY@E2OGP33W0*U3#IU@CVK13K/. M7SF>^YI^:+Q??U:TX6^&BU -5"5(M03:":1#6%:C&J):B6HEJ&:AK5$:@+5)*HI5(M1 M+4&U%-4R5-.HEJ-:@6J&TNR@JQL*/K=X@)MJ'6V#Q@>V<;_Y>0VM(J":0#6) M:@K58E1+4"U%M0S5-*KEJ%:@FJ$T.\;J*H+O7G. F_'F'JAUR!VXC/J@&7)H M&P'5!*I)5%.H%J-:@FHIJF6HIE$M1[4"U0REV2%7MQ%\=QOA-5/>W'3K6&OV M!@[%&KK0 :H)5).HIE M1K4$U5)4RU!-HUJ.:@6J&4JS8ZUN*_CNML*GN]O; MV1^=?TU7SWWO1$L(J!:B6H1J M4DJBE4BU$M0;44U3)4TZB6HUJ!:H;2[(RK MVPK^^%6SW]!" JJ%J!:AFD UB6H*U6)42U M1;4,U32JY:A6H)JA-"OA>G5S MH>=N+A"SWWK-M00\OS&'X]R])VWS#=4B5!.H)E%-H5J,:@FJI:B6H9K>:=8! M9F\P?+(^>8X.6J":H30[N.IB0L]]+7]Z6MMN.&LIIP,9AC844"U"-8%J$M44 MJL6HEJ!:BFH9JFE4RU&M0#5#:7;4^774N1L*?WY6VPOP\_/0SMU;M@XZM*J M:@+5)*HI5(M1+4&U%-4R5-.HEJ-:@6J&TNR@JZL*/7=5HV&)A%=,:NLU*P0'4@U=&@'5(E03J"913:%:C&H)JJ6HEJ&:1K4CC%T,8!JH6H%J&:0#6):@K58E1+4"U% MM0S5-*KEJ%:@FJ$T.^[J9D)O^)KI;3VT?(!J(:I%J"903:*:0K48U1)42U$M M0S6-:CFJ%:AF*,U.N+JDT'.7%/82[N=E.9NLM[-"5L^<+44+"Z@6HEJ$:@+5 M)*HI5(M1+4&U%-4R5-.]YIH?WOCI(9\<';- -4-I=H[5182>>]F$#X\G$!YF M@"S+B\75?/I_SYPX0)L)J!:B6H1J M4DJBE4BU$M0;44U3)4TSMM/\K\[JB9 M96CE -4,I5E9UJ\K!_T7*@>/6;8I&$SG%XN;E^+,+;:-,U0+42U"-8%J$M44 MJL6HEJ!:BFH9JNE^L[L3!(TT0\W#H@*O'N( MUC&(MA90+4(U@6H2U12JQ?UF7Z4W:!P#3]!!4U3+4$VC6K[3K)GR@U'PY-=; MH(,:2K.#J^X95#==P<7U#-P#M8XO4@M1+4(U@6H2U12JQ3MM__W5.$R4H$.F MJ):AFD:U'-4*5#.49F=@9MNG6IH(0'5(E03J"913:%:O-/V4ZUQ M/>0$'3)%M0S5-*KEJ%:@FJ$T.]7JGD'?W3.(5NOIS62]S;3]SV_;[YE?9HMO MJ\Y\L>Z4WV_+B\V4M?6B\[FL'CF;;7\^&'9H'0'50E2+4$V@FD0UA6KQ3K,N MT]<,.[1E@&H9JFE4RU&M0#5#:7;8U2V#OGO] [-8KI?3[P=#"VT8H%J(:A&J M"523J*90+4:U!-525,M03:-:CFH%JAE*L].M;ACT1Z\Z/XIV"E M1+4(U02J M2513J!:C6H)J*:IEJ*91+4>U M4,I=D)5WBN):B6HEJ&:AK5\OZ!.L+ &XV>GO=$ M"P249@72H"X0#-P% NZ\IWN@MK&$:B&J1:@F4$T.FA?#;US)4Z%#QJB6H%J* M:AFJ:53+4:U -4-I=L;5M8*!NU;PFO.>;KIUJJ&M U2+4$V@FAPT%Y0XD&IH MF0#5$E1+42U#-8UJ.:H5J&8HS4XUOTXU]X(#J\Y&3! 6P*H%J):A&H" MU22J*52+42U!M135,E33J):C6H%JAM+LA*L[!]7-'WTRP#U$ZQ@DM1#5(E03 M.\TZ?#]N'+Z7Z* *U6)42U M1;4,U32JY8?_D'I/RU+HH(;2[."JBP0#=Y& M7B_4/5SK$$/+!:@6H9H8-!=_\+J-A58E.JA"M1C5$E1+42U#-8UJ.:H5J&8H MST:H%J$:F*G61>N:"S7)=$Q%:K% MJ):@6HIJ&:II5,M1K4 U0VEVC-4=@H%[E0)P0AM:-T"U$-4B5!.# Q>H;Y0C M)3JF0K48U1)42U$M0S6-:CFJ%:AF*,T.N;I&,'#7"%XUHPVM#Z!:B&H1JHE! M&&VX8:JH6H%J&:0#6):@K58E1+4"U] MX6WQ_(57,G0_-*KEJ%:@FJ$T.^CJ"L+074%H<\D/-]4ZVM!& JI%J"903:*: M0K48U1)42X?-!22\QFG,#!U3HUJ.:@6J&4JS8\RO8^REE1"HZ6SN@5J''%I* M0+4(U02J2513J!:C6H)JZ4ZS)I\V,P[M&J!:CFH%JAE*LS.N[AH,W5V#UTQG M<].M4PWM&*!:A&H"U22J*52+42U!M71XH!703#5T!014RU&M0#5#:7:JU46$ MZJ8KU3Y=3V__67UH^_U@;#FW;1U;I!:B6H1J M4DJBE4BU$M0;44U3)4TZB6 MHUJ!:H;2['RK2PC#P6MFLPW1G@&JA:@6H9I -8EJ"M5B5$M0+46U#-4TJN6H M5J":H30[X>I"PM!=2"!FL[F':!V#:&T!U2)4$Z@F44VA6HQJR4ZS3@:,&[,W M4G30#-4TJN6H5AS^]?KC)_/9J$'MX*J+!D/W<@?T?#;W<*U##&TFH%J$:@+5 M)*HI5(M1+4&U%-4R5-.HEJ-:@6IFV%P>Q!\\QJ8=='7?8.CN&[QB-AO:,D"U M$-4B5!.H)E%-H5J,:LD+?\C/SS]+T?W(4$VC6HYJ!:H92K.#KFXH#-T-A5:S MV=#V :J%J!:AFD UB6H*U6)42X;-OH _:G[C1!=!0#6-:CFJ%:AF*,V*L5'= M/ABYIUESL]G< [4-.50+42U"-8%J$M44JL6HENPT:X6<82/DT#$S5-.HEJ-: M@6J&TNR0JYL'(W?SX#73V=QTZUA#FPBH%J&:0#6):@K58E1+1@>Z P=B#5WS M -4TJN6H5J":H;3[6#M=79?E.IRL)V?O;LKE57E>SF:;SV;5Q['-I(^]>ZO0 M^E+%GO?V@W]RVKA?>F^5=^!^[;TMMO>?UOS9N]O)5:DGRZOI?-69E5^JH;J_ M;$[S+J=7UX\_K!>W[T^J9_MYL5XO;K8WK\LJ/9>;!U3__F6Q6#_\L!G@VV+Y M^_;IG/T_4$L#!!0 ( +V*85;G%HT5VC< />6! 9 >&PO=V]R:W-H M965TO_;1]^\/FZ^[J\GK]TW9R M^_7+EXOM[W]=7VU^_?%5]JKYPM\N/WW>W7_AS=L?;BX^K7]>[_YQ\]/V[F=O MGI6/EU_6U[>7F^O)=OW+CZ_^DGU?YXOR_AD/#_FOR_6OM]&/)_>_EO>;S3_O M?V(^_OAJ>O\MK:_6'W;WQL7=_WU;OUM?7=U3=]_(_SZIKYX7O7]B_.-&EP^_ M^KM?S?N+V_6[S=5_7W[?WX_Q>_/?U.1$_(\R-/R)^>D)_[A-G3 M$V;G/F'^](3YN4\HGIY0=)^0'7E"^?2$\MPG+)Z>L#CW6UH^/6%Y[A-63T]8 MG?N$;-K\R4W/?LKS'_;9?]I9\\>=G?WGG35_X-G9?^)9\T>>/?R9OWG\Z_OP M=[^ZV%V\_6&[^76RO7_\G7?_@X<+Z.'Y=W_E+Z_O+_:?=]N[_WIY][S=V[]\ M^-^OE[>7]]?=[>3UY*?M^NKR;J&[ZW[RT]?MA\]WE]'=%R\_K"=_N;K:?+AX MN$#O,F;RUZ^W=]3M[?IV\F!LUQ\G?ZK6NXO+J]M_G_SKY/)Z\O?/FZ^W%][N^[__+MY\>/I>_>/WFA_Y7K-\$C;7 MN\^W$W']3?)K/)O_XN9K\Z5__ M_< W]B[-_.5F^^=)GCTP>8*ITHQ?+O[_7EDI@G&GOIMOON[ MDTU/,NZ<7U1VDO%G_$V>92?_)H?SF=1?P?I\YLB?5.MZG3VGU>S!G9U.JP/? MU%\?GSP__.3[VZ;O;V\N/JQ_?'5W7W2[WGY;OWK[;_^2E=/_.'3)DUA%8H+$ M)(DI$M,D9DC,DI@C,4]B@<1J"&O%QOPY-N8I_>V[B]O/WTVN[NY6)A_N?GBW MP7B\83F4(4EI:(:06$5B@L0DB2D2TR1F2,R2F",Q_X@5#]C]:P7?WF994939 M#V^^Q>G0?]AJFB^6[4?5_4?-E_/I[/E1K>NY>+Z>B_3U?+=]N/RXWC[N1FXN M?K]X?[4^=#$GF:$7,XE5)"9(3)*8(C%-8H;$+(DY$O,D%DBL?L3*.&:FT\.Y M4#[G0GDJ%W:7UY_6U[O)AS@B#D5#4AH:#216D9@@,4EBBL0TB1D2LR3F2,R7 MO0LP+Z?S6>>?^?ZC9K/9JO.O?/]!\SQZ4.MB7CQ?S(ODQ5RO=P_O$]Q=T'=W M[3>7NXNKR<7'__OU=O?E[@*_;?[9G_QIN_ZPOOQV_^-#KU3\-;G*T N=Q"H2 M$R0F24R1F"8Q0V*6Q!R)^47OZEP5G?OTT'_,Z]F\Z%SF!QY4%H>O\N7S5;Y, M7N7/;S+_@OVZW]]OWB]O;]>[V MN\GZMP]77S\^;@%.O'"?EH>F"JI5J"903:*:0C6-:@;5+*HY5/-/6FM#/B_* MSBW"@4?-%MFTD=9^L9_N[E9;W>_3RZN/T[6=Y?US?VV M_N"%G80&7]BD5J&:0#6):@K5-*H95+.HYE#-HUIXTEI[B7+1O?ZA)=LYD>]S M(D_FQ$/]^/7FE]=?;]=/MP4'0R*I# X)4JM03:":1#6%:AK5#*I95'.HYE$M M/&FM>XE5+R3Z#\J*[,@]PK[MER5;06__<_=YO9U<;:X_O=ZMMU]2ES]:_4.U M"M4$JDE44ZBF4U<*3UKK]GW=?1J26;.?$OMZ7)0M.SZ\:7%U> MO+^\NMQ=K@^'!%F3>H=J%:H)5).HIE!-HYI!-8MJ#M7\D]9Z+R\O9M/N2P2' M']9]___PP^9':G[9ON>7I8M^U?J7]?;^DT7;];?U]=>#';\T,?BJ1EM^J"90 M3:*:0C6-:@;5+*HY5/-9OU3W.B_+>?>J/O2P;#[O7M4''I9-B_F1JWK?TLO2 M-3V_OG_#?_/^ZO+3P_O\A_^Q1@MZJ%:AFD UB6H*U32J&52SJ.90S:-:R/IM MO=<'=O0''G5\2[\O]67I5M_SO^B7UQ\V7]:3W<5OS[?MOQ_, ;2_AVH5J@E4 MDZBF4$VCFD$UBVH.U3RJA>Q G:]8S7I!<.AA97[L#UD/5[@*]G9;?^2ZW9#HQ] MJS!+=H_N;AW>'^X'H'5"5*M03:":1#6%:AK5#*I95'.HYE$M/&F=%P"Z5>/Z MT,,6^?+P#4*^[P+FZ2[@_0> =A?7GR[O/^7S^-;?Y$_12_S_?O_%KU\.MP'3 M]M!00+4*U02J2513J*91S:":136':C[O-_A>+V;=3P =?-0J[WZ@_^##LOF1 MCP'E^SY@GNX#JLWFXZ^75U<'+V:T 8AJ%:H)5).HIE!-HYI!-8MJ#M5\WN_L M+99EUNWV'GC8?%6NLN[5W']8OEPMCGP./]^W]O)T:^_=P^S"]79R\6F[7C]^ M8/>^Z+M=7SV^Y/_Y\N;@R_YI=_"ECO;X4$V@FD0UA6H:U0RJ651SJ.91+:!: M36GM?-DW _,3@P!/?<0P1PN!J%:AFD UB6H*U32J&52SJ.90S:-:0+6:TMHY MLF\.YLG6U%MY>7VY6[^^NOSV\)9D]^6&U.<-T_+@A"&U"M4$JDE44ZBF4S\> M;+);?_A\O;G:?#I8.$@K@Z]KM$^(:@+5)*HI5-.H9E#-HII#-8]J =5J2FNG MR;[$F)_;R\^KB?7%U\.?T Q_>S!%S1:<$0U@6H2U12J:50S MJ&91S:&:1[6 :C6EM5-D7X3,1\Y7S-%&)*I5J"903:*:0C6-:@;5+*HY5/.H M%E"MIK3V66K[@N4L7; +5(?DHY-6ISMFY6S=+.RWER__K#YW<]7_[:^OK@^/$0I M[0R^J-&:):H)5).HIE!-HYI!-8MJ#M4\J@54JRFMG2?Y/D_R<=N/&=KA1+4* MU02J2513J*91S:":136':A[5 JK5E-;.D>@LY_1TQS';#_:D9_:H9_:L9_:P M9_:T9_:X9_:\9_; 9_;$9_;(Y_Z QFPU[;[Q<>A1\V5WUL.!1Y7%D>+5;%^R MG"7+9 \?Y'RG__K=Q/MW!Z]FLHOV#M4J5!.H)E%-H9I&-8-J%M43J_7M[>DCI=+4X$A!*YQ/6A&_H+Q<=._[!+JH M1#6%:AK5#*I95'.HYF<'3GA>]F?&HHO6E-8.@7WI'26#+EI36CLK]IW-6;JS29U#GUYF M<(Z@Y4Y4$Z@F44VAFD8U@VH6U1RJ^=F!S;HB@E4U*:X?(OK(Y2\^N''K, M?9H;'!9H@Q/5!*I)5%.HIE'-H)I%-8=J?M8?+UGD93GKY@5:S:2T5E[,]]7, M^71)G6AZ<,&@;%-4$JDE44ZBF4.\__=3!R4!J%:H)5).HIE!- MHYI!-8MJ#M7\D]8:15,NNL=U!G31FM+:V;!O>L[3DSKCPOCD_TW^\&$"Z64& MYPA:"44U@6H2U12J:50SJ&91S:&:1[6 :C6EM>-F7PF=CQSE.4=[H*A6H9I M-8EJ"M4TJAE4LZCF4,VC6D"UFM+:.;)OE]_0VZ:$UI[>C8]U"+$S-(V_N;$^<@I+'!:8%63U%-H)I$-85J M&M4,JEE4U@&HUI;5S9-]B+5YL$&E:'IPP:(<5U02J2513J*91S:":136':KXX,#RT M.T4(7;&FM'9N["NL1;(&U]W4G'W.0IH='!JD5J&:0#6):@K5-*H95+.HYE#- MHUI M9K2VO&R;\$6)^:=GMS>H/565*M03:":1#6%:AK5#*I95'.HYE$MH%I- M:>TU@&HU MI;439%]K+9;I+4SZR(8"[:^B6H5J M4DJBE4TZAF4,VBFD,UCVH!U6I*:Z?( MOK]:I(>G#CFR(4T-CI1'+3YD89YW;_HJ=$V!:A+5%*II5#.H9E'-H9HO^@-1 MYWG>'<*.KEE36BL"RGWUM$Q73ZDA[.EEAL8#JE6H)E!-HII"-8UJ!M4LJCE4 M\V6_AUJ6G1!!5ZPIK1TB^Q)JF2ZA#AW"GN8&AP5:0T4U@6H2U12J:50SJ&91 MS:&:+P],0,U7W7H'NF9-:>VXR/=Q,;)>6J+U4E2K4$V@FD0UA6H:U0RJ651S MJ.91+:!:36GM'-G72\MTO73$#/:T/#AAT'HIJ@E4DZBF4$VCFD$UBVH.U7S9 MKYA?EM??UT?3 BT*(IJ M%:H)5).HIE!-HYI!-8MJ#M7\D]8^I6'6>]T3+8!26CLB]@70,ET '75*0]H> MG!UH!135!*I)5%.HIE'-H)I%-8=JONQ70.>+[B1V=,F:TMK1L:^ END*:.J4 MAO13!R<#V@%%-8%J$M44JFE4,ZAF487""H/U/5!.H)E%-H9I&-8-J%M4 MS)#V!L<%VAQ%-8%J$M44JFE4,ZAF4U@&HUI;5S)=_GRLB&Z0)MF*): MA6H"U22J*533J&90S:*:0S6/:@'5:DIKY\B^8;IXL0&F:7EPPJ -4U03J"91 M3:&:1C6#:A;5'*KY1;]AFI7SWLX&K9A26CLY]A731;*=]O9_?OKY8"J0#;EW MJ%:AFD UB6H*U32J&52SJ.90S:-:0+6:TMKIL>^>+DY,*$V/]UF@M5-4JU!- MH)I$-85J&M4,JEE4M%2.+[N!!=,F:TMHI MLN^>+M*S1X?.#$MS@],"K:*BFD UB6H*U32J&52SJ.90S2_Z+/<=T^5T7*5CB39)4:U"-8%J$M44JFE4,ZAF4U@&HUI;5S M9%\Y7:8KIR.&AJ7EP0F#ED]13:":1#6%:AK5#*I95'.HYI?]L:7Y?-Z] T'7 MK"FMG1SY/CF29;-SIX:EE<$I@59+44V@FD0UA6H:U0RJ651SJ.:?M-9,H&R^ MG'5C NV,4EH[)O:=T66Z,WK.W+ T,3@CT'(HJ@E4DZBF4$VCFD$UBVH.U?RR M7PY]G6>]=UO116M*:V?$OAVZ3/;'Q@T.2]N#PX/4*E03J"913:&:1C6#:A;5 M'*KY)ZU]@Y'/NM5R=-&:TMKAL2^'+M.#25.CP])/'9P-:#,4U02J2513J*91 MS:":136':G[9'T@ZGQ5Y[S4*M/)):>ULV%<^E^G*Y__\]/.8N6%I?7!\H"U0 M5!.H)E%-H9I&-8-J%M45BY'NQ:$,4U2I4$Z@F44VA MFD8U@VH6U1RJ>50+J%936CM']DW2Y8E)IW_\X_5I>7#"H.515!.H)E%-H9I& M-8-J%M43ZXLOAPNF:6-P M2* %4U03J"913:&:1C6#:A;5'*IY5 NH5E-:.TOV/=35;.1V!BVAHEJ%:@+5 M)*HI5-.H9E#-HII#-8]J =5J2FOGR+ZKNDK6V49M9\C:W3M4JU!-H)I$-85J M&M4,JEE4ZJK=$_U<3-3;ZY??]A\N5GO[H=\ M?%M?7USO#F]KT.HJJE6H)E!-HII"-8UJ!M4LJCE4\Z@64*VFM':J[!NNJW+D MM@;ML*):A6H"U22J*533J&90S:*:0S6/:@'5:DIKY\B^P[I*#SP=LZU!VZVH M5J&:0#6):@K5-*H95+.HYE#-K_KS3[,#;]*@K55*:R?'OK6Z2K=6?_YZB^LL&N6F-<)SGR*#G2%53J=)<3ZPQ/%;2GRG*"Y23+*9;3+&=8SK*< M8SG?<.V!9;-%+U70)BK&=5)E%J5*>BCJT-->3GC#TP-MI[*<8#G)RR-<9UXF,>Q<=\7.FC ;"\(+F*Y03+2993+*=9 MSK"<93G')E2**E71#=<19,"?HX8&#]E593K"<9#G%YP'(UQG5B)6K!9ND6[*C-$-N"1;F*Y03+2993 M+*=9SK"<93G'=3.S:GA@NY[WWQ!"%ZTQKI,C>90CZ9KM__FZOMU=_/?Z_>&D8(NT*%>QG& YR7** MY33+&9:S+.=8SK-<8+D:XSJ1$A5N\UEZQY,^-*=Y.A8J;+$6Y03+2993+*=9 MSK"<93G'IWA><%6 M9%%.L)QD.<5RFN4,RUF6+L@./@4C[0W/ M#K8ABW*"Y23+*9;3+&=8SK*<8SG/KKF%,PTO3PP&&KKR@G M6$ZRG&(YS7*&Y2S+.9;S+!<:KG6H1C;OW9Z\2/;K[^M-V<[/>[GY_ MF >YO@N-F_M72@['!EMV1;F*Y03+2993+*=9SK"<93G'?WUMBF8'8R,-#,X,E"N8CG!=MI9GAF<%V45%.L)QD.<5R MFN4,RUF6Y4+#M6\R#NQ,7J1).HN:I+-D M+VWD$7UI?'B4D%S%':4=)_.X5:M1,E40%U MEBZ@)L_H2S]W>%*PI5*4$RPG64ZQG&8YPW*6Y1S+>98+#=J6S=*_T^7.VHP[H2R\R/%/8LBG*"9:3+*=83K.<83G+ M'CAL_17E!,M)EE,LIUG.L)QE.<=RGN5"P\4;H65O9E2-K=H)DCP*DC-GL9YQ M,%^:&AX<; L6Y03+2993+*=9SK"<93G'$#^Q]HT4Z.1'7:>;I.&^]_SC^5+XT. M3Q"V9XMR@N4DRRF6TRQG6,ZRG&,YSW*!Y6J,ZT1-5,>=EV-W0FS5%N4JEA,L M)UE.L9QF.<-REN4"=4'-@)O4BW=AYU:^?I;NU/F^UN>_G;X9Q@N[,H5[&< M8#G)*'S?]<^>4%,U^=X;E+,LYEO,L%QJN-;^@R):]&=#4LIUK/2JY M%NF2*W;67GJ=X3G -EY13K"<9#G%VEO>'BPK5>4$RPG64ZQG&8YPW*6Y1S+>98+#=>Y)YGUX^-% MZJQ%5&FAP<.R54L)UA.LIQB.;ZL]R8NM6@G1Z(Z M:Y&NLYY[;%::&9X9;($5Y03+2993+*=9SK"<93G':I$>$WONL5EI9GAFL.U4E!,L)UE.L9QF.<-REN4A5UN>C- MEJ96[81&U#HMTJW3LX[-2AO#$X.MEZ*<8#G)K7F*\2+^TB/JE1;I?>MZQ66ED>&2P35.4$RPG64ZQG&8YPW*6Y1S+>98+ M#=>*C$,[DQ=ID!91@[1(3VE]OLFXO/ZP^;*>["Y^>]ZE')[1F@:'QP?;*44Y MP7*2Y13+:98S+&=9SK&<9[G0<.VF1[8L>OGQ(F71,BJ+ENFR:+5^OSL8$^GG M#8X)E*M83K"<9#G%EZ:?)XSO1SAT<%6R5%.<%RDN44RVF6,RQG6YT'"MP6/%=-:_[7B1 M*FD954G+9*NL^<#]J,,YTTL,3Q2V;(IR@N4DRRF6TRQG6,ZRG&,YSW*!Y6J, MZP1/5#8M'VMH?[S#7I+EN7'RPU524$RPG64ZQG&8YPW*6Y1S+>98++%=C M7"=FH@IKN1B[#6+[JRA7L9Q@.YP'(UQK7C91&U M8Q?3D?N?!5N31;F*Y03+2993+*=9SK"<93G')E:A-NTBW:L99^\O"D8(NS*"=83K*<8CG-YP'(UQG5"):K3+M(380>=S)FV MAB<,VZQ%.=%PK:,T5[VC-"6[K&(YS7*&Y2S+.9;S+!<:KFS_A9KUCJ.@ENUD M0M2%7:2[L.\VU_%:]R1Y7O8.O:&6[<1'5&U=9B.;(DNVP(IR%9FO=W]_C \=GV7&C?W+Y8< MS@VVTHIR%]]/H]:M!,;42]UF>ZEGGML>)H9GAEL0Q7E!,M)EE,LIUG.L)QE.<=R MGN5"P[7/VIJO>N_ 4,MV4B.JGB[3LUW/.C<\;0R/#+9_BG*"Y23+*9;3+&=8 MSK*<8SG/Y4+#M6ZZ34LIVHB*JF MJ_04U>>I'Z..!TXO,CQ3V#HJR@F6DRRG6$ZSG&$YRW*.Y3S+!9:K,:X3/7D4 M/8\]M3_>)E'D4*?/TCB=]2'#S="Q42*YB.<%R MDN44RVF6,RQG6YP'(UQG5"I8A"Y<30V &'!)^PAB<,VJYE.<%RDN44 MRVF6,RQG6RG& YR7**Y33+&9:S+.=8SK-<8+FZX5JSFZ)A]YU0642ADJ[&#CWI M\X0W/#S0?BS+"9:3+*=83K.<83G+9%'Q-4L77\\\>^L$ M,S@S4*YB.<%RDN44RVF6,RQG6YP')UP[4/UEB4QT(CJK!FZ9&RYQR] M=<(8GAALBQ7E!,M)EE,LIUG.L)QE.<=RGN4"R]4-UTZ,^?)88N118J3;J8./ MWCH!#H\/MI.*7JAFL?GU%F1[4JEA,L)UE.L9QF.<-REN4G#@H%S%7JAHLW0HNR.+81RJ,R;)XNP\8; MH?-'1Z?1X1'"MF-13K"<9#G%Y0++U1C7R92H@9L7Z2W/B=G1.=NM M1;F*Y03+2993+*=9SK"<93G'G?7LV%4]RP66JQNN;/V>')TUV#Q=BWT7 M3W5MYD0?C@.V!(MR%'!P99?44ZPG&0YQ7*:Y0S+699S+.=9+K!J&B\.C+,MCMR2SJ,^3INTGP:'QXE;!T5Y03+2993+*=9SK"<93G'YP'(UQG6R)RJQSI9CW_=EFZLH5[&<8#G)5JC.LD352 G8\MP,[9 BS*52PG6$ZRG&(YS7*&Y2S+.9;S+!=8KL:X M3JSD4:RD"[!C-D)I>GC@L 58E!,L)UE.L9QF.<-REN43ZXLO1VJP:6MXP=T M;/\3U6GGZ3IM:_]S_DE;:75X@K!%6Y03+"=93K&<9CG#YP'(UQG5B)>K:SM,# M8T?MA-@6+LI5+"=83K*<8CG-[83BCJUL[3W=J? M/U_>_'U[\>&?AX.";<^B7,5R@N4DRRF6TRQG6,ZRG&,YSW*!Y6J,:T=*$=5L MBVEZPW/BG*V";=2B7,5R@N4DRRF6TRQG6,ZRG&,YSW*!Y6J,ZX1*U*@MDN6Z M8>=LI:WA"<.6:U%.L)QD.<5RFN5,P\4'8V6K:?=D+,LNZUC.LUQ@N;KARO;O M<7YLCF.11YEP8A[LD#-STM;P3&#[KR@G6$ZRG&(YS7*&Y2S+.9;S+!=8KFZX M]NGB^;'CQ8NH_UJD^Z_8F3GI=8:G"MN-13G!Y(LE6V/!8?4;.U*$;61 JVOXIR%?[UM2F:'0X,MLZ)'8X*MF:)%1PG9+44ZPG&0YQ7*:Y0S+ M699S+.=9+K!DCJ\TR/42< IQ<9GBELW13E M!,M)EE,LIUG.L)QE.<=RGN4"R]48UXF>J&Y:/O;+_GB+O61+I2A7L9Q@.JWMS_D' *?1X0%"?U>E==["[>_O!EO?VT?K>^NKJ]V]5\O=[=WZ%$7YULU[_ M#XUM?K+;W/SX*GLU>;_9[39?'G[X>7WQ<;V]?\#=?_]EL]DU/[E?X/Z GH=? MSMO_#U!+ P04 " "]BF%6+*]G @T% #1)P &0 'AL+W=OE?A)8EP65 =\35A.]E91N50;CB_+U=^7T^]H.P12UFL2@35 M/P]LP=*T).E^?&^@7MMF6=A=?J*_JP:O!W-#)5OP]%NR5INI=^&A-;NEVU1] MXKL/K!G0L.3%/)757[1KC@T\%&^EXEE3K'N0)7G]2Q\;(3H%X>B9 MP4X/V" MP3,%45,0O;1@T!0,*F7JH50Z$*KH;"+X#HGR:$TK%RHQJVH]_"0OS_M*";TW MT75J=A5_WR8R*<^!1+^@I6!IHIO1EP!:;D6\T9+JC4G,T%6:\IA6)TM?;FB^ ME1HE)9.H8@BV+NNI8+G:,)7$-)7H-6&*)JE\HW=]61'T^M4;] HE.?J\X5M) M\[6<^$J/HNR+'S<]GM<]QL_T.,3HFNLV)/HM7[.U#?#U\%L-\),&<^PD_D'S M,Q2%;Q$.<-33H<7+RW%/.7EY>>@83=2>T:CB#9[A_:5O%HL/\[?HX\=%G[K. MZO(V'?= GV@!2 M-$@8 8)9H@U;T8;.2VU!Y4;?N6OW]\E6EP^K\O()]# ;#2\F_D-7#6<3QZH! M!+/4&+5JC)QJO../2G#5IX.S\-C+!Q)&@&"68.>M8.>G>.X<4C1(& &"6:)= MM*)=G.:YNGS4\5RPYSAG \=J 02SM!BW6HR=6ORS7/4IX"PZ]L*!A!$@F"56 M&)BH%YSBMZ8:2#=0&H&BVAA=)(303,Z*(U T6SE3$P/G8'V M!4X<_"=S#L)HWXB@$1R*9DMB0GCH3N%_;YE4]!N[Z94#,EXO0&D$BF;K9N)Z M.#K)A*"A'91&H&BV5 :@:+9KRQ-F,?.R'O8@^[Z8[5K M:"/+@WO_6!*H)FU)3$K'[I3^7C"67R8$(/F M>% :@:+9RIDE$:@ M:+9R)LMC]]OXPS8$3?.@--+0NOFV\];(_A!O,GKDSNBK35)\%C2^[_T.#YK/ M06D$BF;K9H)\%)[BP0@TRH/2"!3-5LY$^7I)Y=9C#U9+=K*NZ2 M7**4W6ID<':N>R3J^6/UBN)%-:/JABO%LVIQP^B:B?( O?^6<_6T4C;0SN*; M_0M02P,$% @ O8IA5CPRUST\"P VI, !D !X;"]W;W)K&ULO9UM<^+(%4;_BHI4I9*JW4$O(&!BNVKLWK=D9LO9R>XF M'S70!M4(B97DL:9#N=5M]YR/)M5%8W\_6XV.4Z6NT';9.Q[[KA M>!O%Z>CF:G_??7YSE3V629SJ^]PI'K?;*/]ZJY/LZ7KDC5[O^"5>;\KZCO'- MU2Y:ZX^Z_'5WGU>WQL>45;S5:1%GJ9/KA^O1.^^M\KR@'K'_D=]B_50TOG;J MQ_(IRS[7-WY:78_<>DDZTOZ=_O M'WWU:#Y%A;[+DM_C5;FY'LU'SDH_1(])^4OV]*,^/*)IG;?,DF+_K_/T\K/A M=.0L'XLRVQX&5RO8QNG+_]'S@41C@!=V#/ / _S3 9.. <%A0'#N@,EAP&1/ MYN6A[#FHJ(QNKO+LRCJXX MB.OGH'"^=?8W<[UR?DK+*%W'GQ+MO"L*71;.KX5^>$R<]]735#A_4;J,XJ3X MZ]6XK%919XV7AQEO7V;T.V;T?.=#EI:;PODN7>D5#QA7RS\^!O_U,=SZ8N+? MH_2-$WC?.+[K!RT+NCM_N-\R7)T_W!,>37!\1H)]WJ0C[V[_I.ORC=%5561+MGZ9-O"N<_SH_5V>%NQ]OOW'>O[]K>Q;$6>KSR=MB%RWU]:@Z M810Z_Z)'-W_^DQ>Z?VLCB Q3H#!&=W*D.]FG!^;CO0W:! D-&:9 80S:] AM M*AZ2Q[-"3&>%Z.6LH(LRKLZ^U?<>7\X/R:R/6V2:0J5QQJ1!7M"KXJ%^ TU3J#1.CA3'$V4 6_'R5&+% M0_T'E<:9D@%YLIB<6_'_?*P01[_K3ZTPD0IS!TU3J#3.EY3("WM5.U1XH&D* ME<;)D?-XHAU@JQVJ2(:%"SJ@4 OA3$F)/-E4SJWV^RPO\_BY%272:.Z@:0J5 MQNF2(7F+7K4.=2!HFD*E\=]SDP7YHBM :UV>RA:S8>%2K:,6PIF2'_FRM)Q; MZS]4WTT_Q(ENA8FTFSMHFD*E<;[D2K[?I]I]J %!TQ0JC9,C _+E*T'0:H?J MDF'A8K5?PHU\PQHFU)-0:9PO>9(_[57M4 ." MIBE4&B='!N3+5X6@U0[5)6B:,F#PW+9S!V=*;N3+BG%NM?\CJYA78UM/6;?R M)-8TH5>.4&D<,(F2/^]5[E )@J8I5!HG1Q+DR]>)H.4.-29HFC)@\'QCN0>D M1X%L&6?_6K[Z_U]YM/SGLL8,-28#AG8QX$P;?7*R97SW'%?HTK53ZN4FS9)L_?6X2;A20&P6]>N,"J/5 TQ0JC9,CZPF&:Y S3!5V7W"31UHCO80.!:1#@>P! M[=4MM,3)>=:')]1Y4&F<)6E0T*LO+H#Z#31-H=(X.?*;8+CF.,-44F%#Q0>5 MQI&2^ 3R._[VPNYHAY.SK ]-J-F@TG@?.\G.I%='W 2J,= TA4KCY$AC)L-U MQ!FF$HI:'FF-]!)^,R&_F[6\3J,9 MTQ0JC9-K_(7/<.UOAJFD\H;Z#2J-(R6_F8J^;G&A]@$+5!I7&:9+: M3'KUNDV@(@--4Z@T3HY$9C)>'=)PJ%6@='2H8SD;6CO;2%QC8Y MSYH;5&U0:9PEJRA:S8>%"8:/6P9&2 MY4QE]6@O;+&+34ZT)@<5'%0:ITF",^W5Q3:%B@PT3:'2.#D2F>EP76SR5-:8 MY85+I7T)PYF2X4QE[>AXS99:UN1$:W)0N4&E<9J-#S?HU;(VA8H,-$VATC@Y M$IGI<"UK\E36F*'68\#0>J+@2,EPIK(HM)>VW)\F1UJC@UZ_0:5QG&0WTU[] M:5.HRT#3%"J-DR.7F0[7GR9/98T9*CX&#%-C;8:T>1$6W+0 M-(5*XS3);\)>S6@AU&6@:0J5QLF1RX3#-:/)4UECAHJ/ 8/Y93LDR0EE5Z@* M>*6=--KJ(-*XR!);<)>/6@A5&.@:0J5QLF1QH3#]: 9IFKM MV3X@A?H-*HTC;7Q.F_S&GE=U1XN*G&%]2&(_C.T2EVM"DIFP5]]9"/46:)I" MI7%RY"WA<'UGAJFD8H8*#2J-(R6A">5W\KR8C:TI:0UTDO(S(QD9B:_B^=E+;:DR$G6 M!R;455!IG"+YRZQ7M]D,*BS0-(5*X^1(6&;#=9O)4UECEARA:S8>%"2:/6P9&2R E+5^?EJ.LD4'M!97&,9*]S'NUE#D-V32=6DYR9H8]#H, M*HU3)'N9]VHGFT.=!9JF4&F<'#G+?+AV,GDJ:\Q0P3%@.*.D26;FLA/\G*7? M+K/M3I?:669?=!K5GXEDOD(MQUKC@UZ:0:5QI(WM0V0V"UD0NNJ[:W0FX6)#<+^5U]5UD;KUK+N=:'*=1D M4&F<*=G-HE=GV0)J-- TA4KCY,AH%L-UEAFFD@HG6:+: Z TU3J#1.CG1F,5RGF3R5-69YX=VG"H5: M!T?:V %4EH^NXA:N9,N)UN2P&W]>9N?/YM:?/??^!&_^"=[]\R+;?[J-_3_= M 3< E>>R9RTOO;LW5<%6X#8+3]1<2=0&YM^NOUV M_72QVWY"XQ0L[@1?8^=/=[AN-,-<]JSEI0NOY["5G'!M[/[IRE[2^9(N?>:" M(=0>(';#3U3<"=3&EI]NOST_7>RFG] X!8L[P=?8]],=<.-/>2Y[UE!%,I$P M_Y&VYS;V_G1EL>BJ=;G)Q9!J3Q"[XR MPX&\X5K8#'-9LX;&*1.),XK=:\B1)QM&YV_:I>X70Z@]0.CE(%C<"=2&&7F] MNMI>A\/P81T(%7>"K^% WG"M;8:Y[%ECA>/QO]W_ZWW5GGU_6.*N;G:16O](J"=X MRO+/^V7?_ ]02P,$% @ O8IA5J)EQP01 P -PH !D !X;"]W;W)K M&ULK59K;]HP%/TK5E9-K=21=P@=1"K-IFU2-]2N MVV\PE)U^<(62PXX;T!5:7N.$]D5)M1*QLW8C"=C5LN2 M4)AQ).JJPOS/%$JVGEBNM1FX(XM"Z@$[&2_Q NY!/BQG7/7LGB4G%5!!&$4< MYA/KVKU*8QW?!/PBL!9;;:25/#+VI#M?\XGEZ(2@A$QJ!JP^*[B!LM1$*HWG MCM/JE]3 [?:&_7.C76EYQ )N6/F;Y+*86+&%\G5+%$XF5QGSS411.^!0!_0C#/4 M^(GN0"CK!&)S]&,)'+<1YRE(3$IQH6(?[E-T?G:!SI"-1($Y"$0H>J!$BDLU MJ-H_"U8+3',QMJ7*5:]H9UU>TS8O[XV\7 _=,BH+@3[1'/+7!+82V2OU-DJG MWD'&;Y@.D.]>(L_Q?$-"-\?#/0,\/1[N'E#C]_OF-WS^$?MFCR9E3DJ4G(GOE6M"[%AQB3^Y@!;0&HV,M,FR0 M^K)<)<$HC(?!V%YM>V$(B]PXV@E+]\/\D>_KD[,RY!_V^8<'\_^NW@%",U:! M24&XMZ;K^$/'V5&P'S9R_5&\(V _*ACY;FC./^KSCPZ>VD^84T(7 JD;I;TS M3#JB4Y[=4Y*E)R)[Y=VP]VYX<.^G6) ,G:MK-6=EB?F6B1Q3V@YQ!&)M/0MRKB0^J24E92\C_0T]LTK,CQQ3C1#MR]H,,/_L[X5%5%;1'SCZ8MJ6XQ7Q#UII8P5Y3. M8*C^;+PM4]J.9,OFX7YD4I4!3;-0E1UP':#FYXS)34*R5]02P,$% M @ O8IA5D**L8!W! ZAH !D !X;"]W;W)K&ULM9EA;Z,V&(#_BL5.4T_J H8T2;LDTJ7T;IM4J6K5VV<7WB36@9VSG:25 M]N-G#($X1[BB>5\:H/:#_>#7^,73/1??Y!I H=<\8W+FK97:W/B^3-:0$SG@ M&V#Z/TLNZ6JOB@C^?;L@*GD ];QZ$/O-K2DIS8))RA@0L9]XG?!.' M05'!E/A*82^/CE'1E1?.OQ4G?Z8S+RA:!!DDJD 0_;.#6\BR@J3;\;V">O4] MBXK'QP?Z9]-YW9D7(N&69W_35*UGWL1#*2S)-E./?/\'5!VZ*G@)SZ3YB_95 MV5=0MRRLI?\EJ).*HP/%2;0'= Y%; M ?JA*HDN8E"$9O(C^H!\)-=$@$24H6=&E;S4%_7Q/SDU%>Z)07/3ZJ[ M+LJ[AF?NBD-TSYE:2W3'4DAM@*^[4/I-3Q6"[D@Q!^G1 MS;;Y"PC$ERCA>:YGIVH,K2%+T04]G']$_YP?5HORMB-SVV+VW80= M,!WG*TU0:R2(@C8_G;B^8>X2%CN"61K'M<:QJWER[%*@2UCL"&8)G-0")]WS MI%14+[-T%"\+E3NC,M%O?ZJG3F+6<#J($RU51WB;ULD/\R$.3H*VLP5]93F" M6;*N:UG7[PS:F,J$;YDZ&ZZ=H+ZCS24L=@2S!.*@69<&K@*V(CERZ)06NZ+9 M%H]6]_C_C=J*WQFVW6WH;M]V\WJ//)2UV1;-=-KD) M=I:<8*?9B5-:[(IF6VP2%/R3#.4_Q_"/J0B.3F/8:1[BBF8;:S(1W)V*-#'\ MT]=O-ZGWN'.:=KBBV1:;Q ./G$6OTZ3#*2UV1;,M-GD'[ER5.XC>\3NBUVF: MX8IF&VL2#=R=:7P!ILUDB+ 4D3372VFIA/FP@.!U TRV?Q?HIO8>@TYS$5!K9Y'L-!]Q2HM=T>P/S$U&$G:NU>=WY>!#%P(2O@/Q9KY5M4FL0,7: MOX[9W_#@-&I;BX6#:[M8W%HL&@SK8F5__*--@!S$RFRF2&1>?^5W]/IJO6'S MR6Q3G%Q?X)NXW'9I,.4NT#T1*\HDRF"ID<%@K%]0HMQ8*4\4WYBMAA>N%,_- MX1J(GNB* OK_2\[5X:2X0;V]-?\74$L#!!0 ( +V*85:DE*53R ( -D* M 9 >&PO=V]R:W-H965TY2)#$O%:,%7 HDRSPGXND4&-_.',]Y?G%%UYDR+]PDWI U7(.Z MV5P*/7,[EB7-H9"4%TC :N9\]4[F'C: .N*6PE;NC)&Q'"$ M#G0\^I7Q4I)B*6-7:9GF8V[:2CIM)/FO2/I!BF,4>)^0C_W I^_'>[WX:Y. M3I$2-14BV9F/O!)K-A"G<$!#@:1?_(?!GE^5&$[3+' MGP\YC.%2AA$-Z'HBLYWG2>9X,62B3EV?+ M4BB6J-<+9=HIG;[A!-KNT].]P/?NQD!D/8]1YS$:Z@1&0WH>B*SGV<-__\'Q M8%=@2S7^SQUH";-=@NY.WV&:O@LBUKI70 Q6&H>/)YI -'U4,U%\4[9KKW!&$"]/J*<_4\,=U-U\TF?P!02P,$% @ O8IA5F_,(X,T P M9 D !D !X;"]W;W)K&ULK59A3]LP$/TK5H8F MD 9)DS9M6%N)%M"8AH1@L,\FN306B1ULIX5_O[/3AM*&:)OVI;6=NW?OG>T[ MCU="/JD,0).7(N=JXF1:EZ>NJ^(,"JI.1 D6Z D,;S&M-I0AK'[?$&_=)J1RV/5,%@*KC5JX%_2XYPU'_@ZWSBC_>"*&C89AMX:,2E.+="9% MM4 Y4J1,$R%)+E2KJ.%^OD=>?T?2OM' &WKMZ1XU5$>=5"_2%#N4N;B%6+Y= M:.RWV%$X@9?8UM4VSJ.VC0AW.+<811]0CAK*T=_<-^!)&[MH[PX%7M2/=NCM M6[V_CS5!=ZMA%8!;:_JX(K&HN*[+>;/:/!7.;(?<69_A$Z+N^&\P]?OC&D\, MXXKDD"*D=S)$3K+NZ?5$B]*VQ4>ALO?&J9 J2'29?SN.)U^2P/<'6_9/UOM M6LL<2YAR^HN4JIHX5PXJ88%75-WRS1?H]-@""TZE_:)-FYOH'8N55+SNP#JN M"6O_^*GS80?@1R\ @@X0G H(.T!X*B#J )%UII5B?%"94?T 5ZN,O1 M^=D'=(8(0_<57TG,2IFZ2E=@>-RBV^VFW2UX8;=OF%VBT/^( B\(!^#3T^'! M #P_'>[OPUUM6^]=T'L76+[PM=X-&=-21<-4YG*/98,+F#CZ]DH0:W"R]^_\ MQ/LT9--;DN5O1+9G8=A;&!YC[RS$6PO%40M;JMA2F7:VSJ)DY%^E[GK7FX&L M,$[B_:S\:%G_*3KJ14='17\'*<=H)OB:V.ZIFSUIRKN5<7'CY(K3(.VQN3MMT[QQ/[!8$B81A86F]RY'>C?1OAMMH'AC.^F<*]V7[;#2 M3RT(DZ#7%YRK;6":<_]X9W\!4$L#!!0 ( +V*85:9 35^:P( &,& 9 M >&PO=V]R:W-H965TR!H$SJREJJC!KMJ$NE9 "P>J>)A$T75842:" M;.S&%BH;RZWA3,!"$;VM*JI^38'+_22(@\/ DFU*8P?";%S3#3R">:H7"GMA MRU*P"H1F4A %ZTEP%]_.1K;>%7QGL->=-K%.5E(^V\Z78A)$5A!PR(UEH/C: MP0PXMT0HXV?#&;2?M,!N^\#^V7E'+RNJ82;Y#U:8&9F,E]T39:F2S#;R;H@60NSR76V$T64(. M;$=7',A[XN=4.Z3)Y3T8RKB^PMFGQWMR>7%%+@@39,XXQUW1X]"@*$L=YHV MJ1>0O"(@3LA<"E-J\DD44!P3A.BFM90<+$V3LXQ?J1B0-'Y'DBA)>P3-_AZ> MG)&3MBN<.K[T7U>X;ZT\U;"?RM[H6UW3'"8!7ED-:@=!]O9-?!U][//YG\B. M7 ];U\-S[-F36.&1@*)[?/H,>Y8XCMD^L9[PYDA&?:#U?XZ6&G?M:@=JX&-/$2?#GO!UM MD_+.!<3)^!03U ?>'QH?OW.J-DQHPF&-E-'@ ^I2/M)\Q\C:I<)*&LP8URSQ M+P#*%N#\6DISZ-@/M/^5[#=02P,$% @ O8IA5@M&ULK99M;]HP$,>_BI554RNMS2,! M=1"IT$[;I$JH#^MKDUR(U<3.; /=M]_9"2F%%&W3WH#MW/WS^SL77\8;(9]5 M :#)2U5R-7$*K>M+UU5I 155%Z(&CE=R(2NJ<2J7KJHET,PF5:4;>%[L5I1Q M)QG;M;E,QF*E2\9A+HE:5165OZ90BLW$\9WMPAU;%MHLN,FXIDNX!_U8SR7. MW$XE8Q5PQ00G$O*)<^5?SD8FW@;\8+!1.V-BG"R$>#:3;]G$\0P0E)!JHT#Q M;PTS*$LCA!@_6TVGNZ5)W!UOU;]8[^AE017,1/G$,EU,G)%#,LCIJM1W8O,5 M6C\#HY>*4ME?LFEC/8>D*Z5%U28C0<5X\T]?VGW82?#C=Q*"-B'83XC>20C; MA- :;/F*=YKB5<9YNGD0=(,R%6:BA77 MBMQ!"FQ-%R60G)&3DA MC).'0JP4Y9D:NQKYS%W!7(.3?/S@Q][G/I__2>R-ZZAS'1U33Z:TI#SM]=@D#FRB.6_6B3^*O;&[ MWF4_# K"\#7H#=.@8QH<99JMI 2N20V2B8S4;RH=7FH\9"!K:[T/O%&/=\&] M>+0'WA?D#?O!XPX\/@K^))F& M*-AC[HD)_'[B44<\^M>J'1U6[2 :["'U!.V6=L/D[AS<%>#3-/T,GZPY'YI3 MKEOM6N:5[11[ZU-LI4WG>Y5I^O M%@F6!RDA1TGO8HA(LNEMS42+VK:'A=#8 M;.RPP,\!D"8 K^="Z.W$W*#[P$A^ U!+ P04 " "]BF%6'HQI1V0" !* M!@ &0 'AL+W=OLY-&;!+XK/O>>Z><^Z2 M;:1ZU!6 (<\U%WKB5<8TE[ZOBPIJJL]E P)/%E+5U*"IEKYN%-#2@6KN1T&0 M^C5EPLLSMW>K\DRN#&<";A71J[JFZL\5<+F9>*&WW9BQ967LAI]G#5W"'9B' MYE:AY?)_"RVEB_9W#3P8;O;,F5LE6"--XZCB]/J0%[JZW[)^==M0RIQJFDO]BI:DFWH5'2EC0%3),_L-4H,@,"F!K.N>@ MR>DU&,JX/B/OR=-2+CAQ?_%K10XI:BM$PA6VN2]W0 B8>=H\& MM08O?_LF3(./0_K^$]F>VKA7&Q]CS[_C++"]Q,22%+1AAG)"R]_X;6$W&HV] MN*T#62A98V<]K9AFMLL&"]-&2UPT.R36>7PQROSUKMX!G^!#[[,G8]3+&!V5 MT5Z:.GYI+46Z$S<,H_%A=@->\3A-A_-+^OR2H_G=2RSL4$[)/[4(PS2Y.,AI MP&L4C).#G/R=3K=3]AM52R8TX;! 7' ^1@+53J[6,+)QS3^7!D>)6U8X[$%9 M!SQ?2&FVAITG_>\C_PM02P,$% @ O8IA5C%,_7<_ @ 3P4 !D !X M;"]W;W)K&ULK51=;YLP%/TKEE=-K;3%?*3=E %2 MFVA:)U6+$G5[=N F>#68VH9T_W[7AJ!42J<\[ 5L?,[Q/0=?)WNEGTP)8,E+ M)6N3TM+:9L:8R4NHN)FH!FIE MSA+56BEJ6&IBVJKB^L\=2+5/:4@/'U9B5UKW@65)PW>P!OO8+#7.V*A2B IJ M(U1--&Q3>AO.YK'#>\!/ 7MS-";.R4:I)S>Y+U(:N() 0FZ= L=7!W.0T@EA M&<^#)AVW=,3C\4']J_>.7C;KJ3Q M3[(?L $E>6NLJ@8R5E")NG_SER&'(T(X?8,0#83H7$(\$'QRK*_,VUIPR[-$ MJSW1#HUJ;N"S\6QT(VKW%]=6XZI GLU^V!(T64$.HN,;"89\)+=%(5S&7!)1 M]P?%)7ZY ,N%-%<(>5POR.7%%;E !'D04B+ ),QB14Z7Y":Q/PA99P>33-26Z;]]^8E7C.V"C+/:3'Y9XXX%V M %S?*F4/$]=4XQV:_0502P,$% @ O8IA5CI0"$P;! 8!4 !D !X M;"]W;W)K&ULM5A=;]LV%/TKA%8,+=!%(O5E9[:! M-%FQ#=T0-.OVS,AT3%0259*RTW\_4E8D2Z;8:N!>;,FZ]^@T(D>"[R4JR]O935M>^+;$\*+*Y814IU9<=X@:4ZY4^^J#C!VR:IR'T4!(E? M8%IZFU7SVSW?K%@MPY$7128?WU']![^>$C?=I+_8._657XB3P0 M^:FZY^K,[U"VM""EH*P$G.S6W@V\OD613F@B_J;D*,Z.@9;RR-AG??+;=NT% MFA')228U!%9?!W)+\EPC*1Y?6E"ONZ=./#]^07_?B%=B'K$@MRS_AV[E?NTM M/+ E.USG\B,[_DI:0;'&RU@NFD]P/,7&*CBKA61%FZP8%+0\?>/G]D&<)A[$\(V(6R$GI@ULNZPQ)L59T? =;1"TP?-LVFRE1I:ZM?X(+FZ2E6> MW-QS51%@_A9>ZMWIUNAB5O]CLLK$,*W 4H-*3??G\Z&J;[2G2G''7*48,7 MSE)NDG7"B8)*3DC$*9I&HYH&J*B)([,-...9FRE^2U%45A,*Y 0U2P#":.^\<[S20@THH,4%45-4/&%IV+=C M:._''XB:B?L0+.+QA':4';?WF'LRBO606&V;$=H0]G] M# &_-41,>"4QC"QI,B[!RZB%'LV-%=CW=FCMH_.LDEXP..\7+=Y9H6:M3CQL.8*0H% MR031LU6WO3W?"$&D '6Y56N7C"GO\#J;9.IVZ?U_K+U1/P.@T-6&@W68F"W; M$=I0=C]1(/M$,6F7Z&(_(8P7XR*\#(K1>"WOGVU_Z;W'/S!_4G_*("<[E15< MI2J=G[;S3B>259.LV53?_ E!+ P04 M " "]BF%6XJ<"9>0# !<$P &0 'AL+W=O 8>;Q\S@SGL&S Q??9 J@T$.1,SFW4J6VU[8MDQ0**J_X M%IA^L^:BH$H/Q<:66P%T53D5N4T<)[ +FC%K,:N>W8K%C.]4GC&X%4CNBH** M'^\@YX>YA:W'!Y^S3:K*!_9BMJ4;N /U=7LK],AN4%99 4QFG"$!Z[GU%E\O M2>506?R3P4&>W*-2RCWGW\K!^]7<!60H_,*EDW5-'%3/ # M$J6U1BMOJK6IO+6:C)5_XYT2^FVF_=3B/5.4;;+['-!;*4%)].(&%,UR^1*] M1E_O;M"+9R_1,Y0Q]"7E.TG92LYLI6VDGN7=<19R898/E%TA%[]"Q"&N MP7WY='?2=;>UWD8T:423"L]]JFB3HB.$9X8HL^M:;FD"Z[.:IVW>M?- MJY64:;8UAOP@[-B0GPBLLP)ALP+AKR=X.*7:B< Z:J-&;315@D?]@ NB$).S MN#28^=ASB#DNXX9G_%L2/.ZQP3YV\/FN9#!S?3=RS*2QTU9(9Y#VGP^95!G; M( 5)RGC.-S^,%7 096P\3876U7S2%>!?3Z :8RK%$Z%U%;&V.<"#U?CGTR?LT0G=7I]IL J"\$)OC-L:CX>+_"?. M7B>\V(("37 /C+(+(36(,SJD)D+KJFX[!AQ/D$2#;<=HQ1.A=;],VVZ##'<; M(Y*H1NIV/%'LG@6DR8RX3F".2-+V"&2P(O]T&M6PIY^/V''Q>1$RF$5^+_GM MDZ./\MSI(Q6;C$F4PUJ[.5>A]A?'HYSC0/%M=1IRSY7^2*IN4]!5290&^OV: M<_4X* ]8F@.UQ?]02P,$% @ O8IA5@12IH2E @ <0D !D !X;"]W M;W)K&ULK99M;YLP%(7_BL6JJ96Z0GBG(TAMJFF= M-"GJR_;9"3?!JK&9[23=OY\-*:*#DB[:EX#AGN/G7 )VNN/B218 "CV7E,FI M52A57=JV7!908GG!*V#ZSHJ+$BL]%&M;5@)P7HM*:KN.$]HE)LS*TOK:7&0I MWRA*&,P%DINRQ.+W-5"^FUH3Z^7"'5D7RERPL[3":[@']5C-A1[9K4M.2F"2 M<(8$K*;6U>1REICZNN '@9WLG".39,'YDQG+E1BI>[L6:H"2L.>+G?1\Z@HG_AL#="]SW"KR]P*N#-F1UK!NL M<)8*OD/"5&LW4Y, MCS%%A#5_%-/QTQM0F%!YIDL>[V_0Z@'SV?KG[6F[K1K3=<-MNN+6?]]YN#"5J+/QA"_/6 M7F]8;<^^FQ77:<\1 #45N?(+: MQWP7MIGK)K$3I_:V&V:P+'22MNP5IM]B^J.8^MGZ0U"-*NS,YB>^X_S%-.I] M9(.#ECPX1!X,D0=]\C#HD8]Z'TD>MN3A(?)PB#SLD[M>CWS4^TCRJ"6/#I%' M0^11C]R-HA[YJ/>1Y'%+'A\BCX?(XSZY$_;(1[V/)$]:\F24_*$ O8-8*1!# M_$GOJ^![_?_,Z S_RF]W%D2S&?F.Q9HPB2BLM+US$6D:T2SPS4#QJEXC%USI M%;<^+?2>"(0IT/=7G*N7@5EVVUU6]@=02P,$% @ O8IA5H%0(1]!! M.!D !D !X;"]W;W)K&ULM5EMDYHZ&/TK&6ZG MT\ZT"PD"NE5F5O?V;;H=6V_;^S4+4;D%8I.XVG_? "X8Q?3"I%]6$O*]%X%T\LIV!$4A*) @++CP/PZ@5CUG$7C\_(C^NA0OQ=QC3F8T M_9;$8CVQAA:(R1)O4_&9[MZ2@R"OP(MHRLN_8%>-'0PL$&VYH-DA6#+(DKSZ MQ/O#0AP%0/]" #H$H-. 2S.XAP"W%%HQ*V7=8H'#,:,[P(K1$JUX*->FC)9J MDKSX-RX$DV\3&2?"-Y3&NR1-P;-;(G"2\N?@)?BRN 7/GCP'3T"2@W_6=,MQ M'O.Q+>2$19@='<"G%3BZ X1N*.Y6'/P=QZ36 6P)=.:+GJD.T5:Q/=5FRQ#8(K(02URH$,/ISC%>43:-%:!7AE8'!@/H>\, Q^.[8=C]N?# M/-^#05 /4WAY-2]/R^LF_D_N#WFD" [* R&BVUP N@3R=)/;-P=D'ZUQOFJE M7F'[1YQ>0ABXS@GUEF$^="XP]VOF?M\5]<_F\P//'P0GM%J&J0NO\ IJ7H&6 MUZM$.3(@V!*2)'MW<:P M=VX>0DT)-82F"D6-4&0J/_5(G76CLPR%GN.B"QG:. &HO8/#-XR0_"Y)6T]U M?6QG"7_"#<#&#L!!_QS56HG.0@VAJ4(;?P%_8S ZY*@6J;-N[\PP033RAQ=R MM+$=4.\[/LJOA;.WTQ?@PX=9JPIM>&<5AM!4L8V7@4'_-#5J9DRAJ4(;.P.U M1J)3F@[/KV<_&)VZ2_V$?04UU@7JO,BE8!1LV**33UJVQC:I#3.T.1 M45=C"DT5VK@:I#4373+T@*1>S^@T0?7S]=73F!>D-R__SA>MW(T:%5-HJL;& MSZ#^I0UDU,Z80E.%-G8&ZEMRV*[V:0_ MP=>D*+6VRC!J5DRAJ6H;3X/\_GEJU,^80E.%-GX&Z8LS7?(T.*_+!;Y[FJ9& M;8M]5(/."%N5I7D.RII<5=^M>^OR_TU9]#[IG\+K657$;V"JWQ3N,%LE.0.:X)BP8H!\OZ14/#:*">H?2\)?4$L# M!!0 ( +V*85:"NQZ"HP( )\' 9 >&PO=V]R:W-H965T0VE33-FU:U8_MVH&78-78U#9) M]^]G&XK2A$:YV$VPS7N.GV-B.]MP\2AK (6>&\KDW*F5:B]<5Q8U-%B>\1:8 M?E-QT6"ENV+ERE8 +JVHH6[@>8G;8,**=;B%=R!>FAOA.ZYHTM)&F"2<(8$5'/GTK]8S$R]+?A- M8".WVL@D67+^:#K?RKGC&2"@4"CC@/5C#0N@U!AIC*?!TQFG-,+M]HO[%YM= M9UEB"0M._Y!2U7/GW$$E5+BCZI9OOL*0)S9^!:?2_J)-7QO'#BHZJ7@SB#5! M0UC_Q,_#.FP)_.@-03 (@F,%X2 (;=">S,:ZQ@KGF> ;)$RU=C,-NS96K=,0 M9K[BG1+Z+=$ZE5\6A>B@1#\(7A)*% &)3J]!84+E!_0)/=Q=H].3#^@$$8;N M:]Y)S$J9N4K/;1S<8ICGJI\G>&.>[YB=H=#_B (O""?DB^/EP6NYJQ./L8,Q M=F#]PN-C3V7J3:)I$[/!+F2+"Y@[>@=)$&MP\O?O_,3[/)7P/YF]RAN.><-# M[F/>@C=Z_TO<;R%6HB4PJ(B:3-];QM;2G ;K/(SC,,G<]7:LB:K 3]*QZA5O M-/)&1_(R1=@*F-(;_JDCDEAR/2Q)"<+FF$+OW9-M*"^-TAWT_2H_2%-O&CT> MT>.CT%O!*Y#FM,,453#]!XOW"1)_%W.B*/3/IRF3D3(Y2/E+U2#TFO:L]/ V M2";6*?#B'=S;2!Z*^#OJ-X:T_4)5?Z?+;-6M^@($R!?E]QKEXZ MYI >[^3\'U!+ P04 " "]BF%6Y4S["(0$ !8&P &0 'AL+W=O)0_ MNY?Q2*QTRCC<2Z1664;ERPVD8C,.<+!]\,#F"VT?A/%H2>?P"/K;\EZ:N[!" MF;(,N&*"(PFS<7"-KR;DW!KD(_YBL%$[U\A2>1+BN[WY/!T'D8T(4DBTA:#F MWQHFD*86R<3Q3PD:5#ZMX>[U%OVWG+PA\T053$3Z-YOJQ3BX"- 49G25Z@>Q M^1U*0@.+EXA4Y7_1IA@[O Q0LE):9*6QB2!CO/A/G\M$[!C@X2L&I#0@^P;] M5PQZI4$O)UI$EM.ZI9K&(RDV2-K1!LU>Y+G)K0T;QNUG?-32O&7&3L=?!9]_ MTB S= M/&IW<@J8L5:?H$_KV>(M./IRB#XAQ=,?2U*1=C4)MO%K;,"D]W!0> MR"L>,$%W@NN%0K_R*4R; *$)MXJ9;&.^(4[$+Y2?H1[^B$A$>BT!3=YN3ASA M]*H4]G*\GBN%?VY3V):@PK[?;F\GZI5:T@3&@9F)"N0:@OCGG_ P^J6-G">P M!M5^1;7O0H^_@C:UHI"8H43"E&ED.H/2E$\9G[5U3/G15P1_5*V@^>=[>3%Z#RM(VP&V6 MK&%;VYLX#8\D=U&1NW"&=;TV79H^I8#,2HY6"MJ8%1"#G6G5&T1[<\_IYD@2 MEQ6)2W^V:GJ4PEW9@5/A,KWEJC!>QPMU_LT7(Z/I(6CNHU-7JGYF,& MW-%GEJVRUH76Z?;0R>D+K9FD'>&!.[:B$L 774]H3;JDIDOL36YWQ]*II1)VRI.X4Z?V*J-\H34340LI?-ZUC#UIH9+N M>R@K7$LK[-96]R 3X)K.\V)>\5TUHM")^3&\K$:T*LH2'^/&#YHHZN_7]WN( M+URK+^R67V^M;W,UN?WCH96I)YU5YN,]5!NI51N).I8Y\:J_?*$UZ=;ZBS@% M3_R9&^D-2B-)-2A;YR"17@"2U=(N3*%3;:^60MI=M]:DX-9J)X.]:G>'65>=N7N+_T,WW M=['<<1S+LQ9?Q"V^WEK?CF[N]G#P=W\/]49J]4:Z[G01KQK-%UJ3;JW1B'N? MRELW+]Q<./96W)$&PO=V]R:W-H965T M M&VO^$VQWV;X]9R<-G=0&\2;VV?<\_IUS2=X:^^!J $^>E-2NH+7WS9(Q5]6@ MN)N8!C3N[(Q5W&-H]\PU%O@VBI1D:9(LF.)"TS*/:VM;YN;@I="PML0=E.+V M>072M 6=TN/"G=C7/BRP,F_X'N[!_VC6%B,VN&R% NV$T<3"KJ ?ILM5%O)C MPD\!K3N9DU#)QIB'$'S>%C0)0""A\L&!X_ (-R!E,$*,W[TG'8X,PM/YT?UC MK!UKV7 '-T;^$EM?%_2:DBWL^$'Z.]-^@KZ>>?"KC'3Q2=HN-\LHJ0[.&]6+ MD4 )W8W\J;^'$\'TDB#M!6GD[@Z*E+?<\S*WIB4V9*-;F,12HQKAA XOY=Y; MW!6H\^57P)(%[IWZ1I>04&Q/1W81Z#EZU?31?)^A&HV4,W&W,OO M#5CNA=X3&?BP'T/'_XT]6$6NGH';LUA&,+,!,_M/3 TME__"&S>= M7\9C)YT7/N)OW.Z%=GCZ#JV2R;LY);;[,+K FR8VX\9X;.TXK?%? C8DX/[. M&'\,0G\/?Z?R#U!+ P04 " "]BF%6[V7C_+(# !E# &0 'AL+W=O MPY?U[,]%]]D18A"CTW- MY-RIE-I<4WA,&7%1<-5M 4:U=N!,&E 36U&WA>XC:8,B>;F;Y; MD;S39X3>Z)>MC<"FBY/4M) M&\(DY0P)LIH[[_SKW/'KTC+67)^3?=^+.<.Y[.B-2D4)H"PV-' M%J2N-1/D\4]'ZO1C:N#Q^X']=R,>Q"RQ) M>?Z6EJN9.ZJ"2K/"V5G=\_P?I M!,6:K^"U-+]HW\5Z#BJV4O&F T,CM$S]V1AP!@N@,(.@ P1 0GP&$'2 < M /QS(T0=(#+.M%*,#SE6.)L)OD="1P.;?C%F&C3(ITS/^[T2\)4"3F4?"9@F MT5NTX,V&,\*41'R%8%T)K"A;HUH'(/(("PV>%SE1F-;R$A /]SFZ>'.)WB#* MT)>*;R5FI9RY"M+2Y&[1I7#3IA"<2<$/T"?.5"71>U:2\B6!"WIZ4<%!U$TP MRO@!LRL4^K^BP M"2T*+U\,#"SQ_/=P?41/V4Q0:OG!TBFR^MKC(CM,GQK7< MX(+,'3@2)!$[XF2__.0GWF\V3WXD6?Z#R%[X%?5^16/LV>?!VBVX5#;W6I;8 ML.CC<9=%?@KSO3MVQ1(4)VH-"W>Y'V7J2C7OP%U_G= MYP>$I23ZOEC"G2QJ#!;$P0E22>5+VNZQOJ6MTI-3S9/FD0#I:")8R$N;NG'Z !DD MFJ"FO0$35.(GFTV+<:*P(PH/1'YZCBD?9?J?9[/O/=<;WOY/>:X![57PT1:U/'2F1DM55+W]O7 MRN],A3CHO]$UM*GKGFG: OP3%FO*)*RZ%5!Z5Q-8YZ*M:=N&XAM3Y2VY@IK1 MO%;P/X ('0#?5YRK0T,/T/^SR/X%4$L#!!0 ( +V*85;@"JO"+@, & , M 9 >&PO=V]R:W-H965TMD^.XD3K )FMDG:?[]CH#0!2BJT+PD&O\?/>XQ]S'3' M^).("9'H.4TR,=-B*?.)KHME3%(L+EA.,GBR9CS%$II\HXN<$[PJ16FB6X;A MZ2FFF19-RWNW/)JR0B8T([<[UQ1S>Q5#?T:)KC#;DG M\C&_Y=#2FR@KFI),4)8A3M8S[9LYF9NV$I0]?E.R$WO72%E9,/:D&C]7,\U0 M1"0A2ZE"8/C;DCE)$A4)./[60;5F3"7#U(9<%6_)$E'^HEW=U]#0LA"2I;48"%*:5?_XN4[$GL!TWA%8 MM<#ZJ,"N!67F](JLM'6%)8ZFG.T05[TAFKHH2PY/*>AD=$T@ M!P*=HQLL"TXEA09;(WA-.)8TVZ!$=4 )Q0N:5(]/KXC$-!%GH'J\OT*G)V?H M!-$,/<2L$#A;B:DN 4T-H"]KC,L*PWH'XQ?.+I!M?D&68=D]\OG'Y=:A7(>$ M-%FQFJQ893Q[,"M]-BJ=TZ]3:VXBRAZ!)ER^@Q6*K=4J3U@&]FN%T[U[3[X8.B1X$X#[AP#=_O *Y6W!VXY M8= "'PP]$MQMP-UCX%X?N-L!#T.GQ3T8>22WUW![Q[C]/FZOPVT[?HM[,/)( M;K_A]H]Q!WW\MIOAX<;:V:OXYH=GABT2NL'J0-5?M,WN M[-B=Q3(\WE@_;[7:'*R3T;S@'-ZN7GZKNT?986<^K$[-NILZ$Z^AR2=7OY=F"UR/2]XY\Z>]]@OJ&9@"E>@\RX\$'/ MJ^-LU9 L+T^$"R;A?%E>QO )0+CJ ,_7C,G7ACID-A\5T3]02P,$% @ MO8IA5NZ4PX.R P +@X !D !X;"]W;W)K&UL MM9?;;MLX$(9?A= 6BP1(HY./J2V@<7K8!5(8<=/M+2V-+:(2J9*4G>S3[U!2 MY).L;5WWQA8ISC_S#:DA.5H+^4W% )H\I0E78RO6.KNQ;17&D%)U+3+@^&8A M9$HU-N725ID$&A5&:6)[CM.S4\JX%8R*OJD,1B+7">,PE43E:4KE\RTD8CVV M7.NEXX$M8VTZ[&"4T27,0#]F4XDMNU:)6 I<,<&)A,78>NO>3%S?&!0COC!8 MJZUG8E#F0GPSC;^BL>68B""!4!L)BG\KF$"2&"6,XWLE:M4^C>'V\XOZ^P(> M8>94P40D_[!(QV-K8)$(%C1/](-8?X0*J&OT0I&HXI>LR[']OD7"7&F15L88 M09>#M&W2.&/B509$YNXRLP+JCF@8C*=9$FM&H9AZ* MW!362,.XF<:9EOB6H9T.)B)-F<9YT>J*3 37C"^!APP4H3PB'W(J*=> S8L[ MT)0EZI*\)H^S.W+QZI*\(HR3S['(%0Y6(UMC1$;7#BOOMZ5W[XAWUR/WZ#-6 MY!V/(-H5L!&EYO%>>&Z]5L6_*;\FOGM%/,?S&P*:_+BYUQ*.7Z?7+_3\7TUO M4^Y*Z4ZSM/F^;U1&0QA;^ $KD"NP@C__<'O.FR;N,XGM9*%39Z'3IAX\<@FA M6'+V+T2$+I<2EE0#21B=LX3I9X+EB.@82,Y7H#0.NIL]-J:D]-,M_)@*M0J< MD;W:YFR-Y$3.;LW9/3/GY.$(:/< M._LH[8&VE?-O&6WGI;O-[ [?<&>\BM09V( MW*^1^ZW(N"8W4WF<]G] ^PV@ON_O@[:&H[P\YPC^9PE.L-AYOUO!/FL YSV!KF!PG [UD"5^03Z,G'VROR=3HK MZNHLS[+DF7QAZDC8K)<:KN9V#K*N*T+ MXIX^L31/228T9H/1A&0@BY,N#^&U.>Q%9D'_\-JNW.TLV\[ .:C#[6&=BNUM ML+U6["G68!$5>XN$%? I>YP_ MQA5)8(&FSG4?261Y.2D;6F3%^7XN--X6BL<8+W0@S0!\OQ#X/50-XZ"^(@;_ M 5!+ P04 " "]BF%6NB,%*J8$ !=(P &0 'AL+W=OV4[MO/=M) 6)J">K2^*$GP_W><$(CK4H2TW'LEPSPTENS*?ZVHK-I[04 M:9*3%4.\S#+,_EF0E!YFAFV\7OB>[/9"73#GTP+OR)J('\6*R3.SH<1)1G*> MT!PQLIT97^R'T':50+?X,R$'?G*,U*UL*'U2)U_CF6&I'I&41$(AL/QX)DN2 MIHHD^_%W#36:F$IX>OQ*#_3-RYO98$Z6-/TKB<5^9MP;*"9;7*;B.SW\1NH; M&BM>1%.N_Z-#U=8=&2@JN:!9+98]R)*\^L0O]8,X$=AO"9Q:X%PJ&-:"X:6" M42T8G0O<-P3C6C"^-();"]Q+!9-:,-')JIZN3HV'!9Y/&3T@IEI+FCK0^=5J MF9$D5U9<"R:_3:1.S-=[S A:XB(1.$4W'A$X2?DM^@7]6'OHYM,M^H22'#TF M:2J=PZ>FD$&5U(SJ 'X5P'DC@.V@1YJ+/4=^'I.X#3!E;YLN.Z]=7CB]Q-_+ M=(#L\1UR+,?IZ-#R/7D^0-;D3;EW2717RZVNQ_&.',OH0UO+AQWRX')Y5^?# MR^5V3RJ&C7N&FC>\Q#T=W5E4\E&W7 VS#[S $9D9JCSU>,1H3$'&T9S=!:T.@)_5&H&4@.!B^$ M10D_'Q JU_1BKW4-),R#A/D5S+8T3:T9GN?V8#(UGT_=T-'(.6\4=C1R!T[3 MJ)6]<9.]<6_VU B#%G*61^L]2;=(9I,7<@%1=DT"BU[6M2F#A'F0,!\2%D#" M0B!8RRIN8Q7W8]. "^D.2)@'"?,A80$D+ 2"M=PQ:=PQZ1U(SHO"VRZ_] .=,EF0<%Z2 M&,4E2_(=*K1![A!7XPJ_0[E\H]4M.+J1+R/5Y4[C5+'7.L/ M2)@/"0L@82$0K.6/SXT_/K^W#+$N7X;TLJZ=:"!A'B3,AX0%D+ 0"-:RBFT= MBQG6QQ8BM1[((* T#Y3F@]("4%H(16N[Y*3D9?^/4TY_L*LM!4GS:EK/?.B# M!@Q :2$4K>T3Y^@3I]],^+LNJ_VCNC- T=,M?'D$;-=DG.4DJU$6H.)]#NK]G)4 M)X(6>BO!A@I!,WVX)S@F3#60WV\I%:\G*D"SHV;^+U!+ P04 " "]BF%6 M=U"]B)$" J!P &0 'AL+W=O)1(-55%Y.L,F-A.O=#;+SS13:GM@I^E M-=G $O2O^E&:F=^K%+0"KJC@2,)ZZMV'=XNQQ3O ;PI;=3!&ULE*B&<[^5Y, MO< &! QR;16(>;W '!BS0B:,OYVFUQ]IB8?CO?I7Y]UX61$%<\'^T$*74V_B MH0+6I&'Z26R_0>?'!9@+IMP3;5ML8D[,&Z5%U9'-O**\?9-=EX<#0IB<(>". M@(\)\1E"U!&B2PEQ1XA=9EHK+@\+HDF62K%%TJ*-FAVX9#JVL4^Y+?M22[-+ M#4]GRY)(0'-24TT8^H3FHJI,.=RR0C\;K33A!>4;=+4 32A3UP:EW';J:Q.! MU?'S[K19>QH^"_@F]#[^/$^_AG^4/$'X2,4A3<(!S@: M"&A^.1T/T!>7T\,/W$1]-2*G%Y_1FQ%&> XW: 4;RKE-NUBC5R 275'>I?UZ M*.^M;N)T[:_^DDWBVW&"PR#U7P[S,02,/\=!< 1<# '#<7((?.T%^/V1M02P,$% @ O8IA5CPU ,]" P M^ X !D !X;"]W;W)K&ULS5==3]LP%/TK5B9- M(#'RU::%M95HP[1-0JKHV)Y-8*FZ?.6*D@-.#:C( MW<#S(K? A#J3D1F;\\F(53(G%.80L[68\=WM@.W9)5)/>!.1B5> MP0+D73GGJN 0U M(-@']-X A#4@/!;0JP$]H\PF%*-#C"6>C#A;(ZZM%9MN&#$-6H5/J/[O"\G5 M5Z)P&K_<&WT*RY &Q4J_]3GD/PO5F<"E*G,#84=DN@#^",_G\R8^\KUW2 MV"2++9&U9.LULO4,>WCT:NW2KF=3.YMDL26REG;]1KO^P25W125)25[I?18) M2"I.) &!X"G)*Y6C:,E9@1)6E)7$9D]F2P1;P4LEN-D,SA N6$4E.B&TWAY. MNW["QIG(.*,/G\>)'_K]D?NX*VZ'D>=Y;:/XM=' ]R._L6JI$35J1 ?5^*4. M25'Q9R1,)A8@,Y9VQ7&0YKV+R299;(FL)=^@D6]@(1$'-K6S219;(FMI-VRT M&WZD1!R^2I_^\"+J#_=2\;59$ V",-I+QM=F_J#O=>?B12/(Q4%!YHL[A&F* M;A=W70$;FVZ MK#.EQ@O-IB:\P7Q%J$ Y+!6E=SY0!S7?E%F;CF2E*3SNF51EC&EFJC0%K@W4 M]R5C&PO M=V]R:W-H965TW#ZAY>[!A_ M%"L B7X4.1539R7E^MQU1;*"@HA3M@:JWBP8+XA40[YTQ9H#28U2D;N^YT5N M03+JS"9F[I;/)FPC\XS"+4=B4Q2$/UU"SG93!SO/$W?9D8OP0$TEF$\YVB&MIA:8?C#.-MJ*?41WWN>3J M;:;TY.PCX32C2X%N@:/YBG! '] 5*]8;24Q@V )=$I$EB- 4Q5F^D9 BB]9Q M#))DN3A1^O?S&!T?G: CY"*AWPJ4471/,RD&C8DO*[81"E9-'NV-)ZY4U+2! M;E+1N"QI^*_0P#ZZ852N!/I(4TCW 5SED]HQ_K-C+OU.Q#\)/44!'B#?\P.+ M05=O5_'>5"&=8 >GG2\"Q7JJYP(%8MKFN2;5$FC M+SM63J(;D"N6HF^?%"ZZEE"(?VQ!*HT8VHW0)>Q] M5(Y5_I;3)S:2Y0>BIO7#T1EN<;1)A6VIV"851*]PC&J.T?LX)F5.Z*I7/<+W M3;8E.5#Y/QP0'1H=#<.V VQ2?B-\I0,L4N$HC.P.&-4.&'4ZH*H0S8IN"H25 M30DU:J[94[]-QB;DM1?LH9!W&OEV*N.:ROB]5*J-RTIF;+$3CUMDQH=9VF)R M"*.88#N3LYK)62<38_T'W=>DZ)8\%7KM77!.Z!+T\P#]M3:;]+<;*!Z 6VMR MYQ?>6Y/[!(M[ MOS+/9>&A_O9]@2*RMZ\G^O:'%?:/L1:+2>N'-UFZ1473^" MQ4(= W2K"<4Z9T^@MAC)DD?$S/(6_U5YD;7J851L=W\WO5+W9!WVO8,$MDAA?]3.8(N4%[13V&V< MF O@2W/S(%2GMZ&R/"/6L_7MQH4YT[?F+_6MASF)O\"45R8WA"\SQ3V'A8+T M3D>J>>#E+40YD&QMSN4/3*I3OGE< 4F!:P'U?L&8?![H#]1W0;-_ 5!+ P04 M " "]BF%6W9M7@R0( !$.P &0 'AL+W=OTPPPD02,A,* LL_ MMV1"DD0AR7Y\+4$[U3U5P_KQ"OU=[KQT9HHYF=#DSS@2\]/.L ,BPIO1A.?_@[O2UNN V9(+FI:-90_2."O^XON2B%H#&#S2 )8-X%H# M_[$&J&R MFT0E V"G)G"E9R'$ L\.F'T#C!E+='404YFWEJZ'V=JW*\$D[_& MLIT870DZ^W)X)IF+P(2F:9^?A42@>.$ MOY8FGZY"\.K'UR==(3ND8+NS\N9GQ5.[ ME3MGT(KX&\Z. /(/ /0@,G1HLGUS:&@>;M_=$ M\(/\N/KA[;T:#'+0'!:<1>",9.0Z5@T>';T)Y<(T&$6G>GFG5+R^'0T]]>^D M>UNGN6TV,)B%5A>?2&"O(K!G)5!Q-2V(D,D!)_&_DH,X S.:967 OXO%'' 5 M?0!=J"L@ \%%_)@ M*;B0$RK.;@[ '\MT2MB!"I/R')QA&9QG!+R2E'*%Q8W!M^ALO^YD[Q@%"*UQ M9K!#_C$<'*^19K#S@\$ /L+:H&)M\&RL_2);"*ZFV@5A,8W4%8 %E3 M$/ .QPQ\QLFRF'$131+,.%@05G!JI+1P9E"?+,.C8+#&J,&J?S18LPH-5MZ1 M_PB?QQ6?Q\_&Y]LR*:FT[9(SY;3O?&UH" MF^_I,M';FJV*!4W4B@OP]WNB0I6QV+#?8M=JPRE:Z JM26^M"O=?N-(K.^"* M?)=HH2NT)OE0DP^_;6[_0;-;PO/H6#SXJH*35P5XD,K\DLSH3:9*G ,P3NE2 MM?A(!4Z,PP#;U9OI49[8^[PSPX[0F@QK'>-;RW67#!?1%4@ENKI:R+>+(LE-_OY$5>XYJ]R>+:UH.P=LEVBA*[0F MDUIF^?V7SI96H;SYPZK1[N/!Z.T)HO];7ZA';U>2E98O%,,94O6(!/ M:$WX_ MFA.V-2A.:'6G/#[U9P;NE9D43!<24X?/JHY[4@[#\D^-"?4 MFA-^OYH3MC4G0L:'P*GF=(769%QK3FC7G#F3H4+72%UJ17"U'XTD(4.A6B3M%"5VA-\K40A7M?-RS650&]7KV0&=_B M.,'3A.3!OE@#V[!V"$VK@A[J#WKK@<6I1G6%UB1?:U3X;!IU<_TR;"]K&1>R M[7W>F>%]:%"H-2A\OO7))RZ+ESW=75:BOH.-\ MN7;]S'\3%ALZ-4RQO_0]9C=QQD%"KB6D=S20O6+%ELWB1-!%OHEQ2H6@:7XX M)S@B3!G(WZ\I%:L3=8-JX^SH/U!+ P04 " "]BF%6#[9B>@<$ *%0 M&0 'AL+W=O*)KOM0]4'!YR !NS4=I*9?U_;,(2O01G)TKPDQMQ[['/, M,>;.SI0]\@1C 9[RC/"YE0AQN+5M'B4X1_R&'C"1=W:4Y4C(2[:W^8%A%.ND M/+-=QPGL'*7$6LQTWYHM9O0HLI3@-0/\F.>(/2]Q1L]S"UHO'0_I/A&JPU[, M#FB/-UC\.*R9O+(KE#C-,>$I)8#AW=RZ@[:P-%94OIH[KX M&L\M1\T(9S@2"@+)OQ->X2Q32'(>_Y6@5C6F2JRW7]"_:/*2S!9QO*+9WVDL MDKDUL4",=^B8B0=Z_AV7A$8*+Z(9U[_@7,8Z%HB.7-"\3)8SR%-2_*.G4HA: M@B3:G^"6"6X[P7\EP2L3O&L3_#+!U\H45+0.(1)H,6/T#)B*EFBJH<74V9)^ M2M2Z;P23=U.9)Q8;0:/'STNI7 Q6-)>/$T=Z0=89(AQ\!M^I0!FXYR*5(LN@ M(F';3;A_4FT,/H98H#3CGV3RCTT(/G[X!#Z E(#O"3UR1&(^LX6">Q#AN MB2&]= <1_T#D!GCP%^ ZKMGA].AQ@XU6KZ&D\[[553!##?8MRQQ@B>RR-*L#V&=3CUNA9=]^=$8O! M/W]*2/!5X)S_V[<^Q?A^__AJ<[KE!Q3AN25W'X[9"5N+GW^"@?-KG[8FP4)# M8 W=_4IW?PA]<;_;R?T+2*&)W*)3$M$<]ZE7H(PTBMJ)3POH!<%X9I_JLO1$ M00>VHL)N5.!!KPIJ\!A5/$:#/%:42Q8[N9&?,#GB7H<.(KSU"3 )%AH":R@7 M5,H%[^R\P*3N)L%"0V -W<>5[F,CSBM0@II;IK[3\ETW9NRY+==U8SPX[3?= MI*(P&:2P01GF0+X0Y?N:\GRG."ED/#GJC)-.BW'ZP=?>$@DP>I M#F)1HCT8RU=?1@_J >EE,PCUUL?!*%IH"JTIHWN1T7UG*Y83,"6^2;30%%I3 M_,O!'PZ>;Z]WH]=Q$!Q/.F[LB?)K[[F2/H-@;WXD3**%IM":0E[.\G#TWGXT^BU@%"TTA=84__(Y M =/O=?[,>A\QDW\,6S[L1LUFCA!VX_=*#^8M@UIUXI$.69[76SC(*)'(HJZ M2=5;%?3N=!FKU;]4A3Y=?+K %%7";XCM4\)!AG<2TKD9RRFQHO!67 AZT*6H M+16"YKJ98!1CI@+D_1VEXN5"#5"5/Q?_ U!+ P04 " "]BF%6IS?J^LT" M "7" &0 'AL+W=O ML[E+?RW50N< ACP77.B!EQM3WOB^3G,HJ+Z4)0C+?AS;AG_9W#3P9KO34G5LF3E N[^)X-O, & M!!Q28QDH#BL8 >>6",/X4W-ZS9$6N#W?L']QVE'+$]4PDOP7RTP^\*X]DL&, M+KEYD.MO4.OI6KY4QM30I*_DFBCKC6QVXI+IT"B?"7OM4Z-PER'. M)%,CT\7%$#.7D9$L\#5IZBYDPJG0Y(+<:GP1I35I\FB]F"!#3M,%[DW37'+0 MY%YFP F^07)'TYQ\5508-0"'Y\.#X^HZ327UG%\ MG5==6EN^*[ZXG<^6EAM=TA0&'M8.#6H%7O+A7=@+/K?EZBW)QF]$MI/'N,EC M?(P]N7LNL?Q@$E>28P(Y,R_D['WK@ZV(PNIO9&OI*@DNHT_X&%;;J6EWN[K> M=1NWN_7BQFU'3K>1TSTJYX'IQ<5, 1!%#1Q2TFT[.XCB/27M;L'5GI+_NNTH MZ35*>J==C'25AW V0STO0)4^)V>_<6R5=IRT2QQ!VXM^+7#\"F"5$'^K9!>@ MYJ[U:9+*I3!566NL37>]=4UESS[$KELUR7\T5&ULM5EM M;Z,X$/XK5FYU:J46L'D+O312F^S=[>EZ6[5J5_?1#4Z"%G#.=I+VWY]Y"01P M71*E7UHP,^-Y'@_#XWBTI>PG7Q(BP&L2I_QZL!1B=66:?+8D">8&79%4/IE3 MEF A;]G"Y"M&<)@[);&)+,LS$QRE@_$H'[MGXQ%=BSA*R3T#?)TDF+W=DIAN MKP=PL!MXB!9+D0V8X]$*+\@C$4^K>R;OS"I*&"4DY1%- 2/SZ\$-O)HB.W/( M+9XCLN5[UR"#\D+IS^SF6W@]L+*,2$QF(@N!Y;\-F9 XSB+)//XK@PZJ.3/' M_>M=]-]S\!+,"^9D0N,?42B6UX/A (1DCM>Q>*#;/TD)R,WBS6C,\[]@6]I: M S!;,3H%K#,6D;++G(RP-F4"!S%_%R:/3U.P=F7<_ % MF( O,2,<1"EX2B/!+^2@O+Z+XEBZ\Y$I9-[9[.:LS/&VR!&]DR-$X(ZF8LG! MUS0D83. *0%7J-$.]2W21OP+IP:PX05 %K(5"4WZNR.%^[2_.]2@L:LUM/-X M]E%KJ.*[B.>HXV6MYHJO\(Q<#V0OX81MR&#\ZR_0LWY3<77*8-,3!6OPZ%0\ M.KKHXQ]YDR#AY13,"SF05AS2.,>-@15A1Y^<7X)8L MHC2-TH6*ZF)*/Y\R:\*;L8,,VQV9FWT.NU:V;?A^TVJJ3?](R&7#P?2VXP&DHX><$%2__1ZP4*$- ^0'+5X4=M#Q?62U MF-'F?B0S7L6,=UC9/)#L@YL1,I%MB\E/VQK'X.]H+DOH7X+9N8H1_1P.>"-9 MV4&09)T0>"#$;ZI7>](OCE/$X0 Y[T6:]LS(TH9J,.I7C/K:V#>+!2,++ CX M)OF+I,B8@6<WCLO;)KF6N-"U3!3OH=$ /&E:['RBL7,.R6Z"UR1_9#:!5*RI+2\[NJ]%[ MQUX*OS^]8_'N*$O;%?[KR*.?T&_5NV.VW0F46 M&/:PS9 6P;$,H9HAI&5([ECF)#J@)Y3Q&BL/_<#O5(C"+K"M]M=2G]ZQ\&NY M"K4J;A_^"0O$[JR\BXQ@V&9(868;@=-FZ#-T**R%*-0KT8/%UM=\3,F+TY50 M;F [MMUF1F&HTF13E6%+E#5AUQ(3ZC7FL0)<@][MRF_7<#MM0V'65>E3A5E3 MIC=QUP(2ZK74,^$2-:!,EO^*S+)K0<%&CO9N$%[?5=9F76SW\P6R?=.IA[1SL)88O\B(S+&ULQ9GO;Z,V&,?_%8M-TYUT M!]@&0KHD4MO;M$WMKFIU.TW37KB)TZ "SHS3M-+^^-G@8-($-\E@ZXOR(]C/ MUX\??S\)'JT9?RP6E KPG*5Y,7860BS//*^8+FA&"I$2$O^8-7 M+#DEL[)1EGK(]R,O(TGN3$;EO1L^&;&52).DG35/4D=?RE.W7JF*IA\WS3^X_E MX.5@[DE!+UGZ-9F)Q=B)'3"C<[)*Q2U;_T3U@$+5WY2E1?D?K/6SO@.FJT*P M3#>6"K(DKX[D62>BT0"CE@9(-T"E[BI0J?(3$60RXFP-N'I:]J9.RJ&6K:6X M)%>SX_#21[<3D3K#IXT2NP###P#Y"(-O@0>*!>&TT =+!%SG#I<1 M@I8(7\LIEXD[?Z)W1'-2: ZOF7U?9O8S*YJ"<^8W$=JU5MMZ#O_?FK5):A8P: M2F$XQ '&^[6&M=;PN/S>4N4S2MFEK!4N5_2*I. JF;?E^G=*^-[H11=U4S-:J.KABHMV*\5T<[I^%0:UY\.\JYK760RIF ML%LQT \BB/9KC6NML57K+\RF5=L+9-\E62).&+"ASL3#F-WV#+AT#=, M\$^4^66Y/$&F#@=10RA";ARU"&W "_Z?#JRC-_.+H#MHRR\RLM%_;\(ZYM:: M"F(8MI@P-)2#1V*N.QM^(S+T*P,N K>LF!H" CM".S9A'7T0XO&P!#:H=2+ M#^N8!Q>- 1VTDZZR$&1U8GL7)UHQ-%R#=K!U;<8ZW-;$1RYJ^<(&#=/@(5#K MT(WC/6X\<..V"C5P@W:Z]>W&N[2SR$:&=LA.NU[<6,?<6EA1A$._1:U!'CH2 M>=VY\1N1D?Y6C#:F+'^SO6'*R" 1V9'8LRGKZ(?6CF$CLA.J%U/6,0^N'4,^ M9"=?Y238:LKV+DXT960HA^R4Z]J4=;CFQ./8;>,;,GQ#A_"M.U/6X;9,.0Q< MU%:AAG+(3KF>31GM0@\/V_-KH(?LT.O'E..=A16A$,.VA67(AXXD7X>F;(^, MM2G'AYLR-F3$=C+V;,HZ^JO::7L'@ TBL1U4O9BRCMFLG1"%\:!-K2$?MI.O MFC'=?;8:1BV%+*@W?\"%\Z\Z4=;@M4XYB-XB' MC;\6T89X^,BWG!V_1=X%8 1=V";; !#; =B+0>N86P8=X@BU�V%,1'4K [ M@WXC&_MM*U3@TMLAU8_!CW4/ MY99@ :9LE8MJWZR^6V\[GE>;;>;Q:L_RFO"'1,I-Z5PV]=V!7&N\V@:L+@1; MEEMO]TP(EI6G"TIFE*L'Y.=SQL3F0@6H-V,G_P!02P,$% @ O8IA5DI! MMK>4! $18 !D !X;"]W;W)K&ULS5A=;]LV M%/TKA#8,+1!;HKZ=V0;LJ-E:-&O08.E#L0?:HFTADJB1M-W\^Y&4+-L2(V>> MB^[%EJASK^XYO+R\XG!+Z!-;88I3LAT9 MT-@-?$Z6*RX'S/&P0$O\@/F?Q3T5=V;M)4XRG+.$Y(#BQQR/#DA'A%,^Y=('$WP;?X#25GD0N?] M5I$79&:(X1N2?DEBOAH9H0%BO$#KE'\FV]]Q1H7;"NL98#YFG&2 M5<8B@BS)RW_TK1+BP #Z+QC8E8'=-'!?,' J ^>U!FYEX"IE2BI*APAQ-!Y2 ML@54HH4W>:'$5-:"?I++>7_@5#Q-A!T?/W R?^I-A7(QN"&92">&U(3RH0 9 '^(/D&,RZ0#RM$,7@388Z2E+T5L)^!"9@<94.3B[BD=W->Q3 M M8[!?B ':X([D?,7 NSS&\;$#4Q"J6=D[5E.[T^,'E/>! Z^ ;=F.)J";UYO; M&O/H]>:P@XU3SY&C_#DOS9'4M3=KS]&$4I0OL5B&',R>P2'N'CVKXEYYH5:(Y'AJ@M#-,--L:__ 1]ZU>=MI=T%EW( MV9'N;JV[V^7]O^M^!3X5TH!=@=^$!6<@$0L+TX3$Q()J^6R>N425'#@M$7 M561QW .3#:9BURA9]T1APN 6)10\HG2-08'IKH((]C%)4T29&E5*:(4H0P@. M0H=AWPT:.FA0?C]HH"(-RNK#%U3P:Q7\T\FR(FF,:6]2%)1L9)V4U767!*JD M@J]W.)MAJEV&G6_XM\OPDLZB"SD[4C:HE0U^J, M]TPU!K4:@TXU+E7<3@@V:-&IQV^^QF?*ZB!YTZ_/'[;!7#J8U6!]/LM-V,SE7,WBMF=RKV6'ZMG$H3 MNS7]/0!+2TTL'93%&E@1UU1*81Y M<%:68;I49XX,S,DZY^4!4SU:GVM.U&E>8WPJSSO5&=S>37E8>H>HZ/ 82/%" MN+3Z@<%.I$;D8X)YFZ7&$DOAPE0#Q?$,)W-_(%]2GP^!]02P,$ M% @ O8IA5FX1W_QX!@ NR4 !D !X;"]W;W)K&ULQ5IK;]LV%/TKA%<,+9#()O6RLL2 8[=;AV4S:J3%4.P#;=&V4#T\ MDK:;?S]2DO4V;67RE@^)+-][2!Y=W7LNP_M#1+^Q#2$>L/EC?[H?HO79$[X\W9&Q:=^AN)Z 0F9 M%X6 DM5#;PSOILB1#K'%9X\<6.$:R*4LHNB;_/#1?>@-Y(R(3Y9<0F#Q9T\F MQ/$7 MDB[(E'C+R&?Q;W!(;0<]L-PQ'@6ILYA!X(7)7_P]):+@@/03#BAU0%4'\X2# MGCKHESH8J8,1,Y,L)>9ABCD>W=/H *BT%FCR(B8S]A;+]T+YW.>[XN1V'V? MBX7(Z?27Z:0?DTFC$Y.&"#Q%(=\P\#YTB5L&Z L&,AK0D89'I$3\%8<:T.$- M0 .D-TQHJQWCZJ83S*^T3R^S%5W;(N7Y*$GDA$C=$]ZHQ]_ M@-;@IR9NNP2;=@16XMW(>#=4Z*//A'%!940!^;X5B4U<\PCLQ=V;XSOP5@1^ MCZ#IZ(8N8G)?I$PYC[:4=016HLS,*#-?3=DA3MK$O<5[ M0D41$B:$+CU&P)9Z(@=)+MW(]S%E8$MHPFLCKF/#]1XK2EO".P$N5V1KG]:LKQ>DW)&G,BJAZGGM!,2[#'_HXT,9L, M P?E6+4KH:J<3%O>.@(K\3;,>!LJ>:MI"@:^/I%@06ACW5&"M:T[78)-.P(K MD>AD)#K_<[UWNN2]2[!I1V EWN$@5\\#9?C^OI.A*L5Q(H7_V''&<>C*=%HH M]3?@D:R]4&;91K4[J)5]V[9-?5AYZYOL3'-H5]3!5#WIUY)2:"F@DI0OQQ(S M3DO,SR(*.9C*#/@!>Q1\ELGO!LSFSR=J^#F^8*V>ZR)'6E6ZZF;(U*!=94NY MFM>RA7*V4#NV/F4%>9(7Y)2MDP7YS"#'BFPE%;FQ%E\(X:00 Y/E?7IA5## M# HU0)7YS'L?J)3XHW%6;3]FU38/N$;N]'K-M6S-&11^8#6V&GQ,6S.JL968 MF<5JGMN45YAW&5#=9N1)1RR()6^7R.AG6@M8[RT5/NF!C/#0(Y5)>$:^ASF AVJ%?HI$AI:HG4: M/JX,GY4,GWW;\+%K<6$:FEYCKFZF6YI5J^?74.@PE^A0K='?IVWW^7CI5)ZG M:,6PNH4B%=NH2L\UM#?,Q3=4:LP*/1?&1Z>".D4KAI&C6;7W[QI2&>52&74D ME=_']YI80W7]ZT 3U7;'&NR:]/2TR:ZLI\MKS14PNKX"5M#0('^'6K5$3YK, MZBIYVF!65LEE#G)=B]0B[]]OAJ8#G'_FGEMK)J^AX%&NX)%:P:<: R]\437"K)(F.O9<&JW+<\LT#*NZIZR>0FO" MKJ'V4:[VD5KMEPB39?8*(A_5U3NR-+O&:Z>;]5VAE7G->P%T42^0\-K-UM69 M$?6+_YFD!FI-]#6Z"I1W%>BBKB(ANOV>5HI>_C_24*MND:HGT9JR3CN,?N%4 M2T#H.CX=Q$0]WH4\.=F1W5^X_P;IJ<(\IADF--3YBN!9O )RL! M.=!LD>5IU1O\ 4$L# M!!0 ( +V*85:=B!%K(08 #(B 9 >&PO=V]R:W-H965T0TJC0T*_L@TA''R/PIC==C:<;V^Z M7;;]T(!W%G/$J?/=#Q*-GQ M,(C) P5L%T68/M^1,#G<=F#GY<%CL-YP^: ['FWQFLP)?]H^4''7+5#\("(Q M"Y(84+*Z[4S@S0SUI$-J\2D@!U:Y!G(HBR3Y*F\^^K<=6_:(A&3))006__9D M2L)0(HE^?,M!.T6;TK%Z_8+^(1V\&,P",S)-PL^!SS>WG4$'^&2%=R%_3 Z_ MD7Q GL1;)B%+_X)#;FMWP'+'>!+ESJ('41!G__'WG(B* _)><4"Y VHX0/<5 M!R=W<(YMPJ7/$('[).8;!M['/O'K %U!0,$">F'A#FD1?\>Q!1QX M!9"-'$6'IL>[(X7[['AWJ!F-4\RID^(YK\VIY/MZT9[3":4X7A.Q;#E8/(.J MW0-^3A]/#ICZX,L? A)\Y"1B_ZCF)VO?5;V(7,0(W9/.^.>? M8,_^1<6M2;"9(; :[V[!NZM#'W\2ZT-0F5! OF])NDYX O;BZ14XI F(^-=X M3ZA(J,*$T&7 "-B*)47 A5@1?A*&F#*P)31;,YY;FC M[KY*JK:GIY)J"*Q&JE>0ZIDCE1)9ZH)X#98B05!15'8X!&&P$@3_33!5$JIO MWP7/1$X*!)',.: '?/RL2EI3+*RCO_3#E>+VF9(TY$2E<% -1 M_Y=@C\,=43&;-0/M>JSV&Z&J[/$X?Q(U M\.,X]B7>576J4S/75Z!.[(.8IEN5=QF;?2J:Q_:PX'=6/T* M,P?!H5)@_ MO5+)WR K;[]:U='0@LU4J3"#0VLX:)"E'\V/LE794L#3V'HLRO*T+,LY6Z^6 MY3<:>:G+@ZPNBP*-7JW,;T!Y&91J&1KI1)U&5-*(M."3HM1^+$IM&6=*RE"[ MX#J>A9I1I#*S+:<910HS5$6KCZO5*'I. MSX/-L;7-/-L>#IMC.\<^ 98;!:C?*50'?@74V450TL@O)VP28'N7T(.6YS39 M4IAYEM.*A'-L &"Y X!Z"?X^WRJ]'2,F)?@T1ZN&TG4?.M!MLG,.K0Y+L0[U M:KW.SI'A85)S3W.T:A3UK39-YY#FL-3F4"_.CQ8U[]-G2M;Z;:W2=WM.*PH4-H=>9+%8WT*MK8818Z3ESKNW,R>8;0 MZN254AWII7JN+? B%-4B+BKH+CO7TF=0U%;B+O3<8:])F-'S?U-H=<)*88_T MPKY&F"ROK<6]SK6]+\-N)8OQ_D1MC]JB'0TLU.+5Z"L 4VAU7LLM #IJ"Y#Q M:N9\X8T6CS_WUP.=3/0Y=A.HW$V@HW83&=&GGT @Q9&_8UN#9FP:/?,WA991 MUJV\3(\(7:O^QO,[>#/+/E\H8;*O*>XQ70LV M04A6 M*V^F+.:?:!0G;#DVWZRGZ1<)Y$Z>6&8)]0:2!^7R4)?[F1#12?B8S_ M!5!+ P04 " "]BF%6%)]Z[:8# #<#@ &0 'AL+W=O(ZE&O*5+=8<<&) >69[CA/8.2;4BL9F[I%'8[:1&:'P MR)'8Y#GF;U/(V&YBN=9^XHFL4JDG[&B\QBM8@'Q>/W(ULBN6A.1 !6$4<5A. MK ?W?NX:@+'X2F G#IZ1#N6%L5<]^"N96([V"#*(I:; ZF\+,\@RS:3\^*\D MM:HU-?#P><_^APE>!?."!DL43D8+R>+7WE0IEZ 9RU4Z M"6PVY#'#5* >6A0)@=@2S9X6SV8>/>C=(O(-?9B#Q"03-\I2I)B#&-M2N:7) M[;AT85JXX+WC@NNASXS*5*#?:0+),8&MXJF"\O9!3;U.QK\QO4-]]Q9YCM=O M<6AV.MQK@<]/A[L=T?2K+>H;OOY%6]2F=\'GM_/I2G(OUCB&B:5*A0"^!2OZ M]1W16Y_ M(+3,XIO;*:P(I>I=F\#%0H%92%?6;>3YOC<@)]5JBH5:91R555WN ,?2)+V$OT+V!^TZ9)]THN M>E- Y*.\^-0]'R7XK2U[9]N%85#+J$XO+\RHL-(@/$N#KR"4!$A]9DB E)EZ5CK$6*2GR1(V M(NZY8>B.:L*TF'E!.!C4E.GT_4)EAI4RP[.44=>6)9"3\V/8C##T:RJTV'CZ M"#K2H-/+"S4851J,KEB"]7W@G0(\:GX(_F#8K^G1M&HIT_.FU7&9/HK4=7Y< MK)SN6!GM;4WVG[;!)=W/8NI>]=SS^%ILQQH=7#[=DS6ZYEGTDV7/.(RZFJ,Y47K50QD&QMFHL7)E6K8AY3U7X"UP;J_9(QN1_H!:J&-OH? M4$L#!!0 ( +V*85;9=EQW<@, 'P0 9 >&PO=V]R:W-H965T2P-HZ"V:\'N($\=TPVC_]J MTJ!9TP%/KX_LGTKQ5LR*:;B1^;\\-=D\N I0"ANVS\TW>?@3:D%CQ[>6N2X_ MT:&.C0*TWFLCBQIL,RBXJ+[98VW$"0#'9P"D!I N8'0&0&L ?2E@5 -&I3.5 ME-*'A!FVF"EY0,I%6S9W49I9HJU\+MQSOS/*WN469Q:?Q5H6@+ZS1]#H ZJ' M%W])K=^C)=B-!:@5\P=3 E*T^NG&Z,M><9WR\AEJ=)& 83RWR _H_BY!%^_> MHW>("_0]DWO-1*IGH;%)NZ7#=9W@LDJ0G$D0$_15"I/9E44*:9L@M&H;R>0H M>4D&&;\P<8DH_@V1B-">A&Y>#B<]\.3E<#R@AC8/D)9\] 4/L,_="CWJ1[NW MRK7>L37, _O:T* >(%C\^@N.H]_[G/%)EG@B:[DV:EP;#;$?75M5&YQ7(W/. MPXIK7'*Y%^G# E,Z(5>S\.'4G9ZPB,0X:H_'@^?"UQ42?';HHI1'I%E-?V#3NGN!ZPC"93J-.,84G M;5D!:ENVM[HJEJI=:6:;%OICV3AVYI>NM2[;O2>:JB__RM26V\XKAXVEC"XG M-B=5M;K5P,A=V?RMI+&M9'F9 4M!N0![?R.E.0[< LT?#HO_ 5!+ P04 M" "]BF%6V\7F)A@$ !F% &0 'AL+W=O[SVYP$C2 L[:3M/]^ M;: 0P&$2E9<6P[G'/L>^M[>>[AG_*=:42O":I;F866LI-S>V+19KFA%QS38T M5U^6C&=$JB%?V6+#*8F+H"RUD>,$=D:2W)I/BW>!J9-!-! MK ,*Q#\)W8N#9Z"EO##V4P_NXYGEZ!71E"ZDIB#JUX[>T3353&H=_U6D5CVG M#CQ\?F?_6HA78EZ(H')Y7IF80O$=$FVJ7QD^[]H) !<1E21)Q:7B>'Z*P,6G M2_ ))#GXL69;0?)83&VIEJLGM1?5TF[+I:$C2X,(?&>Y7 OP)8]IW":PEXL&&;^1_!JX\ ^ '.0:%G1W>C@RA$>GA\,!-6Z]=6[!YYZP=29WRVC/ M'*WKR8W8D 6=6:I@",IWU)K__AL,G#]-SHQ)%HU$UG+-JUWSAMCG=_H$YU*= MS<(]J4XZ+4^ZR<.2RR^X= G=S1%&'I[:NT-S^BCH8>BU45$?Y4Z\H :UU/BU M&G]03427M,C(7^@H68+#N9'76>!='P3]G@H#R/-U-IED!+6,8%#&_4F;$?1% M0"]$'15]% QE/.>)5$*>))'F\SP< M?^Z!'I4M&HNM[1UJO$,?*@55^%C6CKVJT$>%OGNL M*C0=&AQNT?Z6:\K!@FUSR9,CAWN0X>S#/29;-!9;V[VF,83!Q^K"8&-YMG5C MLD5CL;6M:YI1^(MN]+RZ,.G_??5"IYM)?92GJD?UJ]CL> N<*XK\0 0T[0E6(?7,!DE*^*BRQ1)GUY/5&_K2_+/A=71)WW MM_H2K;C8:6C*&[COA*^27("4+A6EJKQ?G_4$L#!!0 ( +V*85; V"C%^@, &(- 9 M>&PO=V]R:W-H965T!!MCJILPK(L-E*R^5A5(/%DI73*#6[T.ZTH#6SJE4H1Q%.5A MR;@,IF/W[$Y/QZHQ@DNXTZ1NRI+IYT\@U&X2T.#EP3U?;XQ]$$['%5O# Y@O MU9W&7=A96?(29,V5)!I6D^"6WLQH:A6/UB_6=''LDL6 TS)?[D2[.9!,. +&'% M&F'NU>X7V!/*K+U"B=K]DMU>-@I(T=1&E7ME1%!RV?ZSI[TCCA20J%\AWBO$ M;U5(]@J)(]HB<[3FS+#I6*L=T58:K=F%\XW31C9^]:PV&/[U&*+SV#[E[MZ_%H]1"]UKHH[5\7.7O(&5_G(M-JI7]M>QYNZ8@5, KQO->@M!-,? M?Z!Y])./VG]D[!71I".:7+(^O2T*W6#4Q5%\I3*8CI@,THAGO"?+!N_?0H#/ M$:WUS%FW960[S;(H'X?;8X(>H30:=D*O@*<=\/3O@#=E(YA!\!)+(!8[S0R7 M:R(4IJTW:JW%_ C'(!L,3L#VA6B4C5(_VJQ#FUU$.U.Z4H@/[+WF95,20=E_PBESE?8:D 60!9@-D!2$O&50E6%*J1+@I8;[DK M+)6VH3'/3@"^-[S"SF!\S/-^>-(H.@E/7XCBG:=^2H..TN BI7OT)-/%QF%< MPA8[GD-)X E[Z)*;!GWM#BW3 LLD-][@#7KHDB09G5#H"U$ZB/T,AAV#X44& MC\HP87M:6\1Y6[]<7%P1]X$=>I)C&,5^9:)A[5PK<+)FF")>G(GG M_8,H/87I$QOEYWQZ:*_TT;>:2][G\5)R/:2VN?7)3UF(1' M [#]^OB=Z367-1&P0L7H>H 6=#O0MQNC*C<3+Y3!"=LM-_@1!-H*X/E**?.R ML6-V]UDU_0M02P,$% @ O8IA5MDDO\K4! UA !D !X;"]W;W)K M&ULK9C?;]LV$,?_%<(KA@1H8U&29;ES##1VAV58 ML2!INX=A#[1TMKE*I$M2=K*_?D?*D6V)=O.0ET8_OG>^SQUU/':\E>J;7@$8 M\E@60E_W5L:LW_?[.EM!R?257(/ -PNI2F;P5BW[>JV Y]#_3]C ZL@5-\Y;#5!]?$HLRE_&9O;O/K7F C@@(R M8UTP_+.!*12%]81Q?-\Y[36_:0T/KY^]_^K@$6;.-$QE\1?/S>JZE_9(#@M6 M%>9>;G^#'9 +,).%=O^2[4X;]$A6:2/+G3%&4')1_V6/NT0<&-#DA$&X,PC; M!O$)@VAG$+W4(-X9Q"XS-8K+PXP9-ADKN27*JM&;O7#)=-:(SX6M^X-1^):C MG9G,>_-@F*F,5$_DGADTN9B!8;S0E_@C7QYFY.+-)7E#N""?5[+23.1ZW#?( M8Z/J9[O8;^K8PQ.QTY!\DL*L-/DHH(:- #Y[9H\(U,F6,Z9(+KY<)7]<'UTM6-*#P(*KL)DT*)[ MF6SV0]D17M+@)2^I%U:( #8IH<%M#SG!%F7[$YMC93T2"*3_ =C%GT1_T(QW+L0A7=OIA6:8J5F@W8U58 M/H534KURUU)S^_7ZD:DG3)K2-K-'EL8=YJZ*ANF)_86&>^3P+/)75E1U_V$% M'B\8TGE10@]*^Q.;^E0CW"W;*%U9.#A5O/T<1<^.%I,'([-ON_T#MQ6[G3@P M+\ZKSD^OZFVV\W94Z%-]BNXG(WI^-/H3]U/U]F#O>>Z_\%AW+6^:8E_5VYN- M3Y4.:;OH'E5XDFL_(-'S$U)WA/""#+JC HW;0\#4(Z-)U)X(9SY9&G9FO?[! M@:\$M70'9XUKLQ*F/NTT3YO#^0=W)&T]O[&'=G>0W+NI3_R?F%IRH4D!"W09 M7 TQ)E4?HNL;(]?N6#F7!@^I[G(%+ =E!?A^(:5YOK$_T/Q7QN1_4$L#!!0 M ( +V*859&<495< 4 "4I 9 >&PO=V]R:W-H965TK972Y"4*X^S"6FN].;?M;+%6 MDK)(VD-IOIDYUM4B6715 4VM1Q/#N206S-9\5GM^E\EFQU&,3J M-B79-HID^GJEPF1W8;G6VP??@J>USC^PY[.-?%)W2C]L;E.S99=9ED&DXBQ( M8I*JU85UZ9Y?>2P/*'[Q=Z!V6>4]R0_E,4F^YQM?EA>6DU>D0K70>0II7I[5 MM0K#/).IX]]#4JO<9QY8??^6_??BX,W!/,I,72?A/\%2KR\LWR)+M9+;4']+ M=G^HPP&)/-\B";/B+]D=?NM89+'-=!(=@DT%41#O7^7+H1&5 $I; N@A@!9U M[W=45'DCM9S/TF1'TOS7)EO^ICC4(MH4%\2Y*G3A[H9\_/#I_VELJHD1:O/*VKQA5=NG\RJJN1/1K-FDK&'RGF:B:5=H5,>^^&5-?B_- M_!%JFY:U38?5;%K3S&/-DKD.3%KG/=$FC8,1#>O8&;<" +>7;H?P@VB M(_ATZ0[YJMI-O)89Z<*H=O%9;<3S&_>&AG7M#LQNE_<3;XPI[L(8=]%)W$$\ M41./TK8S#R:VBX_L^[4R*]:55FGC/M'@KCV"4>Y.^DDXQE!W8:J[Z&#N(*%? ME]#WI],6$6&$N_@,OY:Q7$KR@YC5N%EKQT5)Y3='"?+NPA7U58W\VG8I.NM+) QP<\KJOY'#][\>Q=NPAFJDP'B_=/8CQQUP8" M.JC73]\QX$$!'A2_$#A=WTG]:H2V#6<*E* X)8[3UWS1M@C&\W?M(\"%3OO) M/ 9*&*"$X9<.ISL%3AW"DQ:5&2"#X<@X1>7&U3*>OVL; 36LGQG$1G&#*G;0 MT'X0JY_,K&56,V &PYEQM,HXF/&]=&TF$(?ULY#8&%QAP!4VL(O$ZC:2[[=< MUC+@!\/Y\?GKY\M3EM1XNJY= \RP?AX3&X,B#"C"!K:96-UGB[13FP N. M\P*3%8$PGK5C^SC@A?=SHO@8].! #SZP$\7K3A3C+=(")#@.B7>DQ6)UM\J\)TQM-V M[1_ A/=SLO@8\. #SZPD\7K3I;KBDF+ND )CE/B&'7W0[KYOMP8ER("T"+Z MN5IB#(8(8(@8V-42=5>K]?:< %8(G!7':]QX'P_/WK6)P!C1S]028V!$ $;$ MP*:6J)M:;;?S1.46-4Z+XR5N7&OAV;OV$! C^OE:8@R4"$")&-C7$G5?B_,6 MPT, ,@2.C.,U;K0[\.Q=FPB@$?U,+3$&23P@B3>PJ>7532V_95)[ P/!\:1 M$N/K:GP?73L)M/'Z^5K>&#CQ "?>P+Z6U_"@4TUIN_+06_X X5>9/@5Q1D*U M,E'.V<2$I_MG\O8;.MD4S\$])EHG4?%VK>12I?D/S/>K)-%O&_FC=>63D?/_ M %!+ P04 " "]BF%6+J$#WO8" #Q!P &0 'AL+W=O[X4K(%Y4!('DMRH*BW@C#OQT-JF,AZ*"G/&82J)JHJ" MRKPZEAE5,!'Y,TLQ&SF7#DEA3JL<'\3J.S3Q# Q?(G)E?\FJ\?4PTBF4BR9N6]%3F] FW/U M27_DZ?&&G)Y\(B?$^&6B4I2G:NBBCL>H"8*7++4TBW M"5R=B#8;_CH;8_\HXP_*+TC0.R.^YP<=@B;OA_M'Y 3MY026+WC'Y72EIT;W MN]'F_5^IDB8P,H&/2'[G(SH'VGR^!ST#IM"1VT0@='A7Z30BE= MMHGNF,J^F*22$CB2$B03:9?8FC'4ELJD,:V MH" **5:H)>NTYJQ@:%]X9UF%>V+.>Y?1;GJ[O(+([Q8=M:*C]Q8"\/18"41[ MMQOV_-VT[CMMU4DMT=WHG@7(A1TJBB2BXEBWCM;:SJUKVZYW[&,]S^KQ\X^F M'H;W5.JJ5B2'N:;T+B(M2=8#IMZ@*&V/G@G4'=\N,SV301H'?3X7 M<;\X%V MRL=_ 5!+ P04 " "]BF%6+WB0()T# S# &0 'AL+W=O+J$1Z)!4G^_4[2K(JV[26 /X2B](]#^]Y>#I=YCLAOZL<0)/GLN!JX>1: M;V]<5R4YE%1=BRUP?)()65*-2[EQU58"36M06;B!YXW=DC+N+.?UO0>YG(M* M%XS#@R2J*DLJ7^Z@$+N%XSO[&U_9)M?FAKN<;^D&UJ ?MP\25V['DK(2N&*" M$PG9PKGU;U8S$U\'_,5@IWK7Q"B)A?AN%I_3A>.9A*" 1!L&BC]/< ]%88@P MC7]:3J?;T@#[UWOV3[5VU!)3!?>B^)NE.E\X4X>DD-&JT%_%[C=H]42&+Q&% MJO^271OK.22IE!9E"\8,2L:;7_K<^M #^.,S@* %!,> T1E V +"UP)&+6!4 M.]-(J7U844V7D??O/I!W&$&^Y:)2E*=J[FK,QG"Z M2;OS7;-S<&9G/R!?!->Y(A]Y"NDA@8LR.BW!7LM=,,CX.^77)/2O2. %H26A M^]?# PM\]7JX/Z F[$XFK/G"5YR,S=T&/;*C3;>X45N:P,+!=J! /H&S_/DG M?^S]:G/FDF2K"Y$=N#;J7!L-L2\?0"; -78L(C*LT-K#&+"48;_2YQQMF*^4[8@?WP8M+(R_0@Z4!9URJ(W*$LJ*7'5TT3@&;\%"FS* M(EL^_I$R6Y!_)']E"_(BN[)QIVP\J.R1ITQIR>)*0TH^4LD9WRBC$EL[-FY. MUE6L6,JH9/:3:_BC7E:3*/(\[TCA8!IOK?(+D1TX-NDC,2N8?B%8 MV.21)R"Q/W-<8T_N-XXK\J?@;:W8C&NV&?>,&_O!L6V34W?#Z+@P3H.FX2RT M%\:TDSG]G\*0D(@-9_]B79@2CX%#QK0B.J<:)XJJ2 DKT69-(,N@GB'J0$FU M]4686O2>E,E@4F\MDPN1'?@WZ_R;#?JWQG>'92RAV"B2G/*-Z8&D.NLJ4SC) M486?_[AX(5NA%(L+N"*T%!52X O98"5^K_N [NG^'$W$SP/Z@:<;I+U1N&%>D@ PI MO>L)FB6;$;59:+&MA[98:!P!Z\L&PO=V]R:W-H965T*=WT;)BPJX*@0G$I83[RV] MG]/$.%B+WPO8JY-K8E)9"/'%W'S()UY@B*"$3)L0#']V,(>R-)&0X\\FJ->. M:1Q/KP_1W]OD,9D%4S 7Y1]%KM<3+_5(#DNV+?63V/\,34(#$R\3I;+_R;ZQ M#3R2;9465>.,!%7!ZU_VTA3BQ $3=3N$C4-XZ1!?<8@:A\@F6I/9M!Z89M.Q M%'LBC35&,Q>V-M8;LRFXF<9G+?%M@7YZ.A=<2ZPEF;&2\0S4#7D$:3\/O"._ M+W2@%ZO'X MS8I2O4'?S\\/Y/6K-^25\?ZT%EN%'FKL:\S+T/E9D\.LSB&\D@,-R4<<9JW( M.YY#?A[ QX*T50D/59F%O1%_8?R.1/2&A$$8.8#F_]P][,&)VDF*;+SH_Y@D M5SWKX6+W<$8Y[M6&93#Q4!H4R!UXTQ]_H$GPDZL6_U&PL\K$;67BONC3&:P* MS@N^PK5L2^/*M@XQL"&,K.VF@W08!&-_=YJ&PXJ&(]I:G?$-6KY!+]\39&+% M"ZM88DFP KL"O_/RJY&:>K7(>K6XP.O8R0G2;9R&@^B"W&$6I4$R<*,G+7K2 MBUXO9U8:[A[&I#/X8)@$@PO$KE4\"*/833AL"8>]A!]XAIU+H?HLI:C(8JO0 M0"F2B6I1\'I!W! .VL4][!"%-$TOL+M&PW#DADY;Z+07^MURB1W,%+42.\"& MJ*UXXF+&CL,)O&1645W(:7>>TYA>(#N,XO0*\ZAE'O4S\_P;2VS4&3491:/1 M!5O7ZGPAGL'1X-C"@EZ\^187$G?.#BA7&10[MB@/TI =.B*SNQ!G#I%C=86=#\5A-8RN M?2?'+D;[V]A1R1C^(;_"7:C1B!Q*W.6:-F&^(E(6&>Z@T4S6?>4O?,'409Y) MOI5FIO0:R 9D(7*K?B8.J\36*(UNBF4C.LKEK$SKJL;S3_;^ M%NM/6QYCTRB""A2PA)#!G=# M1)+U\:B^T6)C3Q@+H?&\8B_7>*0$:0SP_5((?;@Q [2'U.G?4$L#!!0 ( M +V*85:Y1IW%I0( +0' 9 >&PO=V]R:W-H965TBWO>6+*EROK)OQXD+,ESM#>YQ--EE^AI#Q#:;B2H'$Q]*Y;_5'/^1<.7SAN MS<$8G)*Y4D_.N$V'7N (H<#$.@1&OPV.40@'1#2^[3&]:DL7>#A^1G]7:"2X=)*RDU70T,&*"R01- R:HB\LF"S[-!5\R=WX&F$RAOQ3 M77Z@3AVHN\[46MHZWB5R*RB@70UOXJ@=-:\&_J:&4;MBU'XA([J'!*6ERJ]C M5:)?'9 *CE'J5)0ZOZ'TMW*A 3/+M 6J.(2'ZQTWCWV7N9W+H'49M>KTG*3V MA]G1K81W_Y*TM=OABNZ%E%[1QH?:&4?39 MZO@'4$L#!!0 ( +V*85:YY,#IHP( .(' 9 >&PO=V]R:W-H965T MI2G X3:F@V M4')#E/5&-KMP8CHTEL^$O?9;H_"4(':@F:2\L<7S)_[BPKNNHPZ7=X6S7N= 5S6'H85O1H-;@9>_? M1?WP8Y>4;TDV>2.R)S*GK/4)!\JV&.&IX2 ?CX+O&T2\Z: M-@H=KVVZZRPZ]]-!L-[5J?>DT.IOA* 7JM +W7"D!+J0Q[=%]9EP2] M?XOK^>=["G0XI?[9G@ =3HF?M$YU8<%.]RM!+=P4T9CK2IBZ2[2[[:"Z=/UY M;W^$ ZR>-W]IZNEW3=6"X1_%88Z4H7^&B:EZHM2&D97KL3-IL&.[Y1*',"CK M@.=S*YENN'B2*8 B+T7. MY,Q(E2HO3%/&*114GO$2&,XLN2BHPJY8F;(40).:5.2F8UF!6=",&=&T'KL1 MT917*L\8W @BJZ*@XN\5Y'PS,VSC=> V6Z5*#YC1M*0KN /U4-X([)F=2I(5 MP&3&&1&PG!F7]L4BU/@:\"N#C=QJ$^WDD?,GW?F>S Q+;PARB)56H/BWACGD MN1;";3RWFD:WI"9NMU_5O];>T\L4>G,.#=( DM:Y>J6;[Y!Z\?7 M>C'/9?U+-@TVG!@DKJ3B14O&'109:_[I2QN'+8(=O$%P6H+3)WAO$-R6X!Y* M\%J"5T>FL5+'84$5C::";XC0:%33C3J8-1OM9TP?^YT2.)LA3T4_50J"S%,J M5B#)*9GSHN0,F)*$+\GN[/$"%,UR^0EQ#W<+2LD1.385[ MTLIFW*Y_U:SOO+&^[9!KSE0JR1>60+(K8**9SI'SZNC*V:OX@[(SXMHGQ+$< M=V1#\\/IS@A]<3C=WN/&[<['K?7<0\[G;"R^#=\;Y^NL<2%+&L/,P+0@0:S! MB#Y^L /K\UALWE-L\4YB.W'SNKAY^]2CR_BYRF2F<\NI@)PJ2$C,I1J]HHV4 M7TOI/+F.'#^PIN9Z.S1#D.U,G%W08@043+P.M&/%[ZSX>ZW,\7UD;(5O$AU@ MODU T#9GQ@*:%DL(3?Y@NBCTTQWSV*P1;'L\M[R>QR'(M\)>(!9#T*D=^)-Q MDT%G,MAK\A:D$E6L*H%629E3-NHB&*P=ACT/0T@0]!P,(8YK6>,&PLY N-= M\U 97CYZ&(,=U_9XG MJ8JK)L-UH5],OZU+6&[_"6M^4YO\RS8?"-6:JC$F2PQ(E MK;,0MR2:XMMT%"_K?JM:,7Z+Z HG]02P,$% M @ O8IA5L(6O&[U P [0T !D !X;"]W;W)K&ULK5=MCYLX$/XK%E>=NE*S@'G?2R+MAJMN3U=UU=WV/GO#)* "YFPGV?WW M9P,A!!RZJOHE8//,XWEFG/%X?J#L.T\!!'HI\I(OC%2(ZL8T^3J%@O!K6D$I MOVPH*XB00[8U><6 )+51D9O8LGRS(%EI+.?UW -;SNE.Y%D)#PSQ75$0]GH' M.3TL#-LX3GS)MJE0$^9R7I$M/(+X6CTP.3([EB0KH.09+1&#S<*XM6]BVU$& M->);!@?>>T=*RC.EW]7@/ED8EO((,0$T&6 M'P637S-I)Y:/NZK*0292D!RM"$_11[D5T'W9 M;"F5FEEO?I62<@L<927Z7 &3@'*+;CF7&Y24"?HG(\]9GHE,0M['($B6\RM) M\/4Q1N_?7:%WRO II3LNT7QN"JE ^6&N6V_O&F_Q!6]MC#[14J0<_5DFD)P3 MF%)ZIQ\?]=_A2<:_27F-'/L#PA9V- ZMWFZ.->;QV\WM"35.ETVGYG-^.INZ MF#>L/7;Q^)5G\B\C.8NEVL72GV)=/ MC"0@Z]*:[DK!98U;0[8GSSGH0MA0>365*K7[I>W)A.[[D1EC9C@,W7-4K&%R MG0YSIL3KE'B32CZ+%-A;E314?F]][(710(H&9+EXH&0,F@56%.JU^)T6?U++ M X.*9 F"%WGR<5EF5-FA2J!.C#]VP?-]9Z!&@PIQX _DZ+@L'.GE!)V<8%+. M?;F7?U;*7G7>!Z,5;6OH^Q@S=W^&DW[?'S521UTL[*1R[ MYF-KX/\8A!UG&'H=4^CK%42=@NA'"M@.$I2?CBR=B&CLG^L,DS &V4[@#Z3& M8]0LNI0'VSJ=W]8/=M":%H $>8');+0T_>4#;RA$ W+Q,!L:D!,ZW@4AO4;$ MGJY273^1@VSD]-V!K8FA-Q2A 6$O&JH8HW!XH=#:^"0"3XJ(80.,R6W%0/ZQ M=_I,X-'*H3VLGBL-RA^A8@W*"X/@@HQ3&V%/GJQJ4S&5!-7$-6]7YRW?BE29 M[#$^H"XLMW6G/IB_4W>9NK\^T307H4^$;;.2RSVZD936=2!]8LW=HAD(6M7= M]C,5LG>O7U-Y'P.F /+[AE)Q'*@%NAO>\G]02P,$% @ O8IA5CM4AK'1 M P [!, !H !X;"]W;W)KP(81T2:0V]+:;5JEJUNVU"TYB'=B9[21WWWXV4!*(BQ+);QHP MS_/#SQ__X:FG!RZ^RPTA"OPH"R9GWD:I[:WORVQ#2BQO^)8P?67%18F5/A5K M7VX%P7F55!8^"H+8+S%EWGQ:C3V)^93O5$$9>1) [LH2BY_WI."'F0>]MX%G MNMXH,^#/IUN\)DNB7K9/0I_Y+26G)6&2<@8$68&9$2E(I@P"ZY\]69"B,"0]C_\:J-?>TR2>'K_1OU;%ZV)> ML20+7OQ+<[69>8D'@8E M9?4O_M$(<9*@"[4GH"8!]1.B=Q+")B&\-"%J$J)*F;J42H<4*SR?"GX PD1K MFCFHQ*RR=?F4F>>^5$)?I3I/S9=DK9^B(CGXQNI59)[&%W F"!%XY$QM)'A@.G(TMZ>GDZ'*@F;!]A6/'":QZA3>8:$]DQY@5S*[ 2ECJ"=62+6]EB-PZ*7MCA,WEIJXE,\E+'4$Z\@'@V-?%C@Q58,Y]0%$\23JN\H: METS./DR6N$D$X]!N*WC29\+!>A:8X=QJH.'$:Y> 4UKJBM85#1U%0VYB2EKJB=34\=L=PL'N\W$CA^>"2UKJBM:5[M@;PY$C,SGMDIW24E>TKH;'1AD. M-I*7FRD^^_\&CB,4]LUD#9LD?3-9PK278,],_LDV2$G$NMI.DB#C.Z;JS8%V MM-VRNJLV:GKC]V8KJ]I>.6+J?;!'+-:425"0E48&-V,])U%O+=4GBF^KS997 MKA0OJ\,-P3D1)D!?7W&NWD[,#=H-OOG_4$L#!!0 ( +V*85:7%L9YA , M *40 : >&PO=V]R:W-H965TV M*#F0I (5N>TY3F 7)*-6-*_6KG@T9UN99Q2N.!+;HB#\_@QRME]8KO6P<)UM M4JD7[&A>D@TL0=Z45US-[)8ER0J@(F,4<5@OK _N:>QB#:@LOF>P%T=CI$.Y M9>RGGEPF"\O1'D$.*ZDIB+KLX!SR7#,I/_YO2*WVF1IX/'Y@_U@%KX*Y)0+. M6?XC2V2ZL$(+); FVUQ>L_TG: *::+X5RT7UB_:-K6.AU59(5C1@Y4&1T?I* M[AHAC@!N\ 3 :P!>'^ _ < - #\7X#< OU*F#J72(2:21'/.]HAK:\6F!Y68 M%5J%GU&=]Z7DZFZF<#):PD9E44*"+FG]%NELO$>']6O8 =T"NKUOA]_N2T!O M8Y DR\4[97VSC-';-^_0&Y11]"UE6T%H(N:V5![JY]BKQINSVAOO"6]<#WUA M5*8"7= $DBZ!K4)KX_,>XCOS1AG_(?0$8?'G#H_/EP;P >/Q_NCD2# MVVSAB@^/9TLEHF1<9G33R=J_GY4YNI10B/^&M*^Y_6%NO<&C_G_.5FH;AB'W1X$O3;A) MLM@064>PH!4L>,4B"DQJ:I(L-D36T73::CK][2*JD<'1:Q_B<-(KH<=&$R?H M%]"0T>2)\@E;S\-1SY=*"55!0XZ/ E^::I-DL2&RCF"S5K#9*Y;/S*2F)LEB M0V0=35WG< QS?KN &NCQ>^_CR13W/T,#=G@:^K.>73QDY\RFV!VN)/?H+.F. M!G'%V1J$;@E(CD1=6 *IHR!B,@4^&-LHXTM?"*-LL2FVKIK>04WO%0NM(3H=E'_5L! M?%/UP0*MV);*NM5I5]M>^T/58?;6SW0/7O6%!YJZ@?]"^":C N6P5I3.R53Y MQ.N>N)Y(5E9=XBV3JN>LABF0!+@V4/?7C,F'B7Y ^\]$] M02P,$% @ MO8IA5J'.&^A' P >0\ !H !X;"]W;W)KTD[;^?#91 M0E%3^27!\-UQ9Q_P>;AE_$DL"9'@.4TR,;*64JXN;5M$2Y)B<<%6)%-7YHRG M6*HA7]ABQ0F.8OUR1AVY$% MK=<3#W2QE/J$'0Y7>$&F1#ZN)ER-[(HEIBG)!&49X&0^LJ[@Y1CV-""O^$/) M5M2.@;8R8^Q)#^[BD>5H120AD=046/UMR)@DB692.OZ5I%9U3PVL'[^R?\O- M*S,S+,B8)7]I+)%+/2&K)\XNP N/ /(06X+?/Q^.&K";35!U2RA:I90SN<>,TMMK@H:KYU& M/Y*78H4C,K+4,R<(WQ K_/P)^L[7-H^&R!J.W-I8ZV84!YV%HLU[P M]7(^_?+8A,B#R%/3OZF;:BMS/.1790VY7B77ZY3[F%&].E.))6E5UPD_=F$, MD36<]BJG/3-1[)ET;(BLX=BO'/N&HUCP^;6,07?@./V]*+:4.!X6P&!Z%S48#@7C0/JSPW0*@]F=#9?>R=3KECG.&X-8/=P&.7 MQ!1;TV:MIX%FM>CP,Z&X -9+ GK,?-=#WI[86PI&WB!Y[Z1 MQEV+ ;M[C"M!,9C@B,YIU"JO$W[TZAAB:YK=-2C0,Y1)HZV**;:FZUVS CL[ M@X]DLG?0(/J!X^Q'\K!J$,#]]Z-=VQ?I3>D]Y@N:"9"0N8(Y%WV%Y\4^KQA( MMLJW2C,FU<8K/URJO3'AND!=GS,F7P=Z]U7MML/_4$L#!!0 ( +V*85:9 MU@K''0( +($ : >&PO=V]R:W-H965T':326*M8P?;;9:_QYT M@I:)L*;/@]]F "2Y 5 ,@ 2 MKSLD\BKOJ*%YJF2/E(NV;,[PI7JT%<>$^RA[H^PMLSB3[Z&V+390HGL1/K'K MU7NT*4OF3,H1FUR\N0-#&==O4V)L=L=!BB'3-F1*7L@4)^A!"M-H]$F44/Y+ M0*SL47MRUKY-KC)^I6*&YO$[E$3)'.E0R17>^=B3N>>=_T]/9IP"%9&5WHY/*T .'\C@EIZD",IFC%E3MMT6C0AZ%"2,UGHX+N0ES^#<\;/,#5343 M&G&H+#2:W2PQ4F%#@F-DYZ?R((V=<6\V]J<"R@78^TI*&PO=V]R:W-H965TJ^)+9SSW-WS]G.#5:,/XD,0**7(J=B:&52EE>V+9(,"BQZ MK 2JOLP9+[!44[ZP1[GD\8)7,"85[CD15%)C_ MOH&@@80' H(&X!)W:YS-\*- ML<3Q@+,5XMI:L>F!4=^@E5Z$ZGTRE5Q])0HGXVDU$_!< 95HLM3/TS%(3')Q MAB[0XW2,3D_.T DB%/W(6"4P3<7 ELJQAMM)XV14._'V.'$]=,>HS 2:T!32 M30);1=R&[;V&?>-U,M["K(?E!7U97HL0)#"UU&PG@2[#BCQ_[[&]:3;:M@G[@^*W5AF1!*UG0*=G6MO^#OG!6T724LVJG0)U\[Q7HF&3C M8Y)-CD2V492P+4KXW_=QN+WU_+[C.)N;:M09R'L+<$RRR9'(-@H0M06(.@MP MAU](416H9%*="8)S5 (WO0A-X$+_CU.4J(NUZ(SIO;4X)MGD2&1U+>RUGW0!?&&Z(Z%$K*BL?WSM:MN 79N^X\WZ2#5F M=1_UCZ;NZNXP7Q J4 YS1>GT+I7TO.Z4ZHEDI6D%9DRJQL(,,]5< M<&ZON< MJ6QE_:K]DOGLD #U55T?-EA0B7V?[[OO?)?&[:#2*\%NYHSI8)D+60W) M7.OR71A6TSG+:756E$P:)"M43K69JEE8E8K1M *G7(2]3B<.<\HE&0WD(K_* M=15,BX740Q(WIL#=/J9#THW?DL#1C8N4#MOBT)?O@K<_>C-T5'G[O1R MUWYB@5,2>DG/GT%ZUL%Y#891Q]O4=OFQ(7*.QYC;A5_1KQ\_MS5M2&JQM2B, MO/^L=)_(%B-./,F:O6GSA8EU#NMJCP99(=NB1\09##O-67!/Q9",J> 3Q<$K MHSD7*V?N@6%:B$(%VG2;"=<%2_7@X*Z;02/6/#F7A;*Q703W/:F7[P#K&0CD M0C0">\091H.2:LV4O#(3N]@:'T%!/;Y=E4;A3-%5MW=.6@=[,T$FA4J9:L)T MR=HT&@B6@1S%9W.XZZ(, =2ZR,T@Y7162&HUK#WJ@:&=,B%NX"G]FFUQ+[.- MNG6@:K(9&D'UT-&X"?!OLCGN3=KH1;Q!R>\+_6%ATI%V#HW&KA7+^-+.EUDC M &/OXNRT+,7JO> SF3.7_+,#C@9T[1?,"\4?3#1HE:DQ,$6">Z8TGVY:OBM: MWK*E7K?3,L,U]PY0\]_=YQF33%&Q*=KT_C[O\HL5UZ^U?Z'9_EK95>P5&5WL MO\;Z5;[O(N-#$'D0Y>X?@LAD_T5&^ZDQK \9&R>9K7-,8PW@O#@D7^#T*=J@ MP63!A>:RGLUYFC+YZ#ACZ#6=F#]EMOC-^I1E="'T;0,.23O^S%*^R)-FU35L M1+VJ'7^"]+IQ"!Q8%(?[;7>+7Q#GFZ#[":/M4A6*9X)V*9XGL-B'_? MP"-)_-7&XH '5@6L=R"^/P[TE-\GBJ"JF#;L"<:1),$0Z$5_C\8QLCLQ?/SU MP9Z2*$H2/P*87T$480@\C3B"*0 -&!)%]CVX\SX*U^^IL/W_WN@W4$L#!!0 M ( +V*85:7BKL

-8?20$3;8T.P6BP^0"X99K>]9!:GEW=1/ [/5@J_-1H@RSP;>\4V*%_/W_7J3/4LC'V0FR]>SGOL[$SV6RT+F\K=8G_6&/68VZN5*:?E; M%27/EJE667;6&^W>^"9T*=.#WM'0GO!1:E.Z(]SY MN65\%O;@W595JDN9E4)/>2F^:E5M9?%4G\9^BP'X&BX.[Z^[('[2_R>,ZO%1 MIF*JTBH71;F+HQ99#5B8C=R:'BMX+LYZ[X>P2;%FLZ*T06+7Q>Y4]MCZF]J/ MOE[OOG5I<4$,]2=IW]#7:P=.!WDQOUO.;ZZGD]5LRLXG-Y.[BQE;7LUFJR4 M]!! [V2 [,." T@?@?2/"+E3%_'8!($,$ M,CPAY'MDI?E:L$F:JLI2L7N1"OG,'<-?0,PD M(V*5S&T;T("K$3G,'B-B?5P7S_8 I5\A$&:*$;$J[ !U:X>/KXS7XRO;$K;U M/T Z3!$C8D=*H_E$V,$2NTQ"-F]YK.\?$7?^-ZIXZMM4(F=3\0#O+ _K]3WB7O_&=JN-&'E8?^]1 M)Q JSV7I^OA_V(7-\6RZ)8K47D77+B$FFD40]_O+#=>"7?"MM$DHA,+Z>H^X MKY]Q7=AP&;:P7;XCA&189^\1=_;+4J4_^G;P8QNFO<+V3,8=Q!89;XPU/,P M'K$!KHM4Y8*M^*]F>\#Z?8\Z-[!-0/.T9.?L1:6XJD^ MPC:-]G*.C]G!)[;#LGHPXF=5UYUFS\WQD(]YPB?V1&LBQ3XL5";3IO)]S!,^ ML2/I +-)<,14 MI#6&F$."4^8DC4F5 !-)<,R8XNXT.QANDWMFI$;-T),='Z<6#0'T53LLCZ/31%,E<%T/\24$Q(K MIS,)W#4BB(DI)R163A=FGTV%EL\0$W-/2.R>;DQKR^()8F+N"8G=@Z34]66' MBS8F(6BH@MU%*@:!%EA!DH.O:<>MV_ MK]>N$[6#.8B)&2@B-E!7(>4MG! 3,U!$GNH<%%+:+CBZ/NO8D^_=%QRS3W2D MJ?CV &+"B8X_*=\.B>DF.NKT?"M?C'DF/LI$?3L7)I;X.*6ROJNGJ,*-)&PJ M5G<^]F XDQ5C8HF)Q?('\Y:7E=[=@QV8F%QBZK6_V *(1GH38W*)J>MHS4)D MVSV)224FEDH3S]V:N2IV-4G#YA 3$TM,+):V@FE;*-%UO\16:6'<-?7*E5D@ M)J:8F+J>AA5VF^T&DTQ,74]#,7V .<9<,Z:>]D-33N%\'T-,3$%C:@6AF G$Q!0T)E80 MAOG=/8[P!Q.ST)C80HT)L3Y[V_QPHXSYR,[A0LYD*KFJ&>V;D7J8+EU 2S4$)LH>Z+7M^> ML#R08!9*B"VTAUF'T.85F=PU=SB02S +)<06VL,$=199ST!"3,Q""?7CC^@D M.!S()9B%$NH'(%%,.)!+, LE)UU2 =R"6:AY*A+"O8[3IA6)IB%DI.N+6C< MF^BSD"=96]!G;_L!YFB(/Q=)G0UAH(W<VM]9C1$GZ0<.A4-W.'FR^>U>)2%6-_9\QN[ M/^59NM"L?G'G\H*P?DKML!BWKZ=Q\;[?'<:';CM-IQ]]/ZZVPWXYWAU/P^'R MSOIXWB^GR_*\Z4_+U=MR,_3.F-2?;_?H'N]O]UP\?YR&_]GQN%Z_KH:?Q]7O M_7"8_K%Q_^=X?ANWPS!UB^?E>3-,#UW_OKM>'OO/%WMWV;E;/+T\=.>G%]OU M'J"W5[T]0&^O>GN WKYY6 +0VZO>'J"W5[T]0&^O>GN MWE[U]@"]O>KM 7I[U=L#] ZJ=P#H'53O - [J-X!H'=0O0- [] \[ ;H'53O M - [J-X!H'=0O0- [Z!Z!X#>0?4. +VCZAT!>D?5.P+TCJIW!.@=5>\(T#NJ MWA&@=VS^K 3H'57O"- [JMX1H'=4O2- [ZAZ1X#>2?5. +V3ZIT >B?5.P'T M3JIW NB=5.\$T#NIW@F@=VH.FP#T3JIW NB=5.\$T#NIW@F@=U:],T#OK'IG M@-Y9]'!0%Z9]4[ _3.JG<&Z%U4 M[P+0NZC>!:!W4;T+0.^B>A> WD7U+@"]B^I= 'H7U;L ]"ZJ=P'H79K#W@"] MB^I= 'I7U;L"]*ZJ=P7H757O"M"[JMX5H'=5O2M [ZIZ5X#>5?6N +VKZET! M>E?5NP+TKLVP#D!O:]IQ'8#?UC0#.P8@N#7-R(X!&&Y-,[1C (I;TXSMF.]T M?)P^=L-X+?I:-P'?J?9T^>QP_?[/Y=?%]B[^A+J_S1@?_P)02P,$% @ MO8IA5F51Z6]F @ ZSH !, !;0V]N=&5N=%]4>7!E&ULS=O?;ILP M%,?Q5XFXK0+88 -3TYMVMULO]@(,G :%?[+=+GW[.:2MM*F+5F72OC=!B>WS M._A(G[MC5L=AGYTFVCG_?PI25RS,T/MXFDV8UC93G:H??AJ'Y*Y;O;U M@TEDFNJDF49O1K_VQQK1S?6=V=:/O5]]/H2?73>-F\B:WD6KV]/&8]8FJN>Y M[YK:A_7D:6Q_2UF_),3AY++'[;K9784-4?)NPG'ESP$OY[X^&6N[UJSN:^N_ MU$/8E1SZQ/GGWKCX?(EW>IRVVZXQ[=0\#N%([&9KZM;MC/%#'Y^*7IU/]N&& MS>E37)R_E#D7&';>VVEV86+6?#SN=23'T^LY%#+6=^=?\2TQE+[X_Z7>;AD>5Q^Q[_.^*W^!_N0D#XR2!\YI \%Z4-#^B@@?920/BI( M'R*E-$(155!(%113!05505%54%@5%%<%!59!D5529)44625%5DF155)DE119 M)45629%54F25%%DSBJP91=:,(FM&D36CR)I19,THLF8463.*K!E%UIPB:TZ1 M-:?(FE-DS2FRYA191 M_D]>OT_3_A_'+\]XJ+OQ-3]9_N-Z\Q-02P$"% ,4 " "]BF%6!T%-8H$ M "Q $ @ $ 9&]C4')O<',O87!P+GAM;%!+ 0(4 M Q0 ( +V*85:[W?I8[0 "L" 1 " :\ !D;V-0 M&UL4$L! A0#% @ MO8IA5A7 'V?/ @ Q @ !@ ("!# @ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5KER?2$Y!0 &AX !@ ("! MEB$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MO8IA5OP5;\=^* 288 !D ("!(3, 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5K%24R]L P M(0D !D ("!J74 'AL+W=O0 >&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5HR3?-_> @ [@8 !D M ("!)W\ 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ O8IA5@];$8/' @ M@8 !D ("!2XH 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA M5A9!J:ZJ"0 R!@ !D ("!"9< 'AL+W=O&PO=V]R:W-H965TG !X;"]W;W)K M&UL4$L! A0#% @ O8IA5J\7V&1V# ;#, M !D ("!.ZP 'AL+W=O&PO=V]R:W-H965TG$ !X;"]W;W)K&UL4$L! A0#% @ O8IA5HE)ZRM; P X0< !D M ("!1&PO=V]R:W-H965T M&UL4$L! A0# M% @ O8IA5B&"ETG< P 1P@ !D ("!K=8 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5B%* ME]Z6" ;AP !D ("!30L! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5D(@" #5!@ &0 @(%J'0$ >&PO M=V]R:W-H965T&UL4$L! A0#% @ O8IA5K;KLAS5 @ G@8 !D ("! MK2,! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ O8IA5F5%//FB @ 0P8 !D ("!7BT! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5J8OS4$B P ^ 8 !D M ("!>TH! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ O8IA5J5]@HW8% 1X@! !D ("!_UD! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MO8IA5CPRUST\"P VI, !D ("!8ZP! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5J24I5/( @ MV0H !D ("!S+\! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5ID!-7YK @ 8P8 !D M ("![<@! 'AL+W=O&PO=V]R:W-H M965TC&E'9 ( $H& 9 M " @;[. 0!X;"]W;W)K&UL4$L! M A0#% @ O8IA5C%,_7<_ @ 3P4 !D ("!6=$! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA M5@12IH2E @ <0D !D ("!/-P! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5N5,^PB$! 6!L M !D ("!:N8! 'AL+W=O&PO=V]R:W-H965T/\ ML@, &4, 9 " @4CM 0!X;"]W;W)K&UL4$L! A0#% @ O8IA5N *J\(N P 8 P !D M ("!,?$! 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ O8IA5G=0O8B1 @ *@< !D ("!7/T! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5MV; M5X,D" 1#L !D ("!'@@" 'AL+W=O@<$ *%0 &0 M @(%Y$ ( >&PO=V]R:W-H965T&UL4$L! A0#% @ O8IA5L?E8X.*!0 P!P !D M ("!NQ<" 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ O8IA5FX1W_QX!@ NR4 !D ("! MEB<" 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ O8IA5MEV7'=R P ?! !D ("!>C@" 'AL+W=O&PO=V]R:W-H965T]@( /$' 9 " @55/ @!X;"]W;W)K&UL4$L! A0#% @ O8IA5B]XD""= P ,PP !D M ("!@E(" 'AL+W=O&PO=V]R M:W-H965T5: @!X;"]W;W)K&UL M4$L! A0#% @ O8IA5KGDP.FC @ X@< !D ("!P5T" M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MO8IA5CM4AK'1 P [!, !H ("!"F@" 'AL+W=O&UL4$L! M A0#% @ O8IA5J'.&^A' P >0\ !H ("!SV\" 'AL M+W=O&UL4$L! A0#% @ O8IA5IG6"L<= M @ L@0 !H ("!3G," 'AL+W=O&UL4$L! A0#% @ O8IA5L87RN+_ @ N@H !H M ("!HW4" 'AL+W=O&UL4$L! A0#% @ MO8IA5LG6/G5) P [!, T ( !VG@" 'AL+W-T>6QE&PO=V]R:V)O;VLN>&UL4$L! A0#% @ O8IA M5O$(LOGR @ &ST !H ( !C80" 'AL+U]R96QS+W=O XML 121 Show.js IDEA: XBRL DOCUMENT // 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)}}} XML 122 report.css IDEA: XBRL DOCUMENT /* 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; } XML 123 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.4 html 340 413 1 false 85 0 false 7 false false R1.htm 00090 - Document - Document And Entity Information Sheet http://www.descartes.com/role/DocumentDocumentAndEntityInformation Document And Entity Information Cover 1 false false R2.htm 00100 - Statement - CONSOLIDATED BALANCE SHEETS Sheet http://www.descartes.com/role/StatementConsolidatedBalanceSheets CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals) Sheet http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals CONSOLIDATED BALANCE SHEETS (Parentheticals) Statements 3 false false R4.htm 00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS Sheet http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations CONSOLIDATED STATEMENTS OF OPERATIONS Statements 4 false false R5.htm 00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Sheet http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Statements 5 false false R6.htm 00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals) Sheet http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals) Statements 6 false false R7.htm 00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY Sheet http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY Statements 7 false false R8.htm 00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 8 false false R9.htm 10101 - Disclosure - Description of the Business Sheet http://www.descartes.com/role/DisclosureDescriptionOfBusiness Description of the Business Notes 9 false false R10.htm 10201 - Disclosure - Basis of Presentation Sheet http://www.descartes.com/role/DisclosureBasisOfPresentation Basis of Presentation Notes 10 false false R11.htm 10301 - Disclosure - Acquisitions Sheet http://www.descartes.com/role/DisclosureAcquisitions Acquisitions Notes 11 false false R12.htm 10401 - Disclosure - Fair Value Measurements Sheet http://www.descartes.com/role/DisclosureFairValueMeasurements Fair Value Measurements Notes 12 false false R13.htm 10501 - Disclosure - Trade Accounts Receivable Sheet http://www.descartes.com/role/DisclosureTradeAccountsReceivable Trade Accounts Receivable Notes 13 false false R14.htm 10601 - Disclosure - Other Receivables Sheet http://www.descartes.com/role/DisclosureOtherReceivables Other Receivables Notes 14 false false R15.htm 10701 - Disclosure - Inventory Sheet http://www.descartes.com/role/DisclosureInventory Inventory Notes 15 false false R16.htm 10801 - Disclosure - Property and Equipment Sheet http://www.descartes.com/role/DisclosurePropertyAndEquipment Property and Equipment Notes 16 false false R17.htm 10901 - Disclosure - Intangible Assets Sheet http://www.descartes.com/role/DisclosureIntangibleAssets Intangible Assets Notes 17 false false R18.htm 11001 - Disclosure - Goodwill Sheet http://www.descartes.com/role/DisclosureGoodwill Goodwill Notes 18 false false R19.htm 11101 - Disclosure - Accrued Liabilities Sheet http://www.descartes.com/role/DisclosureAccruedLiabilities Accrued Liabilities Notes 19 false false R20.htm 11201 - Disclosure - Long-term Debt Sheet http://www.descartes.com/role/DisclosureLongTermDebt Long-term Debt Notes 20 false false R21.htm 11301 - Disclosure - Leases Sheet http://www.descartes.com/role/DisclosureLeases Leases Notes 21 false false R22.htm 11401 - Disclosure - Commitments, Contingencies and Guarantees Sheet http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees Commitments, Contingencies and Guarantees Notes 22 false false R23.htm 11501 - Disclosure - Share Capital Sheet http://www.descartes.com/role/DisclosureShareCapital Share Capital Notes 23 false false R24.htm 11601 - Disclosure - Earnings Per Share Sheet http://www.descartes.com/role/DisclosureEarningsPerShare Earnings Per Share Notes 24 false false R25.htm 11701 - Disclosure - Stock-Based Compensation Plans Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlans Stock-Based Compensation Plans Notes 25 false false R26.htm 11801 - Disclosure - Income Taxes Sheet http://www.descartes.com/role/DisclosureIncomeTaxes Income Taxes Notes 26 false false R27.htm 11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs Sheet http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts Contract Balances, Performance Obligations and Contract Costs Notes 27 false false R28.htm 12001 - Disclosure - Other Charges Sheet http://www.descartes.com/role/DisclosureOtherCharges Other Charges Notes 28 false false R29.htm 12101 - Disclosure - Supplemental Cash Flow Information Sheet http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation Supplemental Cash Flow Information Notes 29 false false R30.htm 12201 - Disclosure - Segmented Information Sheet http://www.descartes.com/role/DisclosureSegmentedInformation Segmented Information Notes 30 false false R31.htm 12301 - Disclosure - Subsequent Event Sheet http://www.descartes.com/role/DisclosureSubsequentEvent Subsequent Event Notes 31 false false R32.htm 20202 - Disclosure - Basis of Presentation (Policies) Sheet http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies Basis of Presentation (Policies) Policies 32 false false R33.htm 30203 - Disclosure - Basis of Presentation (Tables) Sheet http://www.descartes.com/role/DisclosureBasisOfPresentationTables Basis of Presentation (Tables) Tables http://www.descartes.com/role/DisclosureBasisOfPresentation 33 false false R34.htm 30303 - Disclosure - Acquisitions (Tables) Sheet http://www.descartes.com/role/DisclosureAcquisitionsTables Acquisitions (Tables) Tables http://www.descartes.com/role/DisclosureAcquisitions 34 false false R35.htm 30403 - Disclosure - Fair Value Measurements (Tables) Sheet http://www.descartes.com/role/DisclosureFairValueMeasurementsTables Fair Value Measurements (Tables) Tables http://www.descartes.com/role/DisclosureFairValueMeasurements 35 false false R36.htm 30503 - Disclosure - Trade Accounts Receivable (Tables) Sheet http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables Trade Accounts Receivable (Tables) Tables http://www.descartes.com/role/DisclosureTradeAccountsReceivable 36 false false R37.htm 30603 - Disclosure - Other Receivables (Tables) Sheet http://www.descartes.com/role/DisclosureOtherReceivablesTables Other Receivables (Tables) Tables http://www.descartes.com/role/DisclosureOtherReceivables 37 false false R38.htm 30803 - Disclosure - Property and Equipment (Tables) Sheet http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables Property and Equipment (Tables) Tables http://www.descartes.com/role/DisclosurePropertyAndEquipment 38 false false R39.htm 30903 - Disclosure - Intangible Assets (Tables) Sheet http://www.descartes.com/role/DisclosureIntangibleAssetsTables Intangible Assets (Tables) Tables http://www.descartes.com/role/DisclosureIntangibleAssets 39 false false R40.htm 31003 - Disclosure - Goodwill (Tables) Sheet http://www.descartes.com/role/DisclosureGoodwillTables Goodwill (Tables) Tables http://www.descartes.com/role/DisclosureGoodwill 40 false false R41.htm 31103 - Disclosure - Accrued Liabilities (Tables) Sheet http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables Accrued Liabilities (Tables) Tables http://www.descartes.com/role/DisclosureAccruedLiabilities 41 false false R42.htm 31303 - Disclosure - Leases (Tables) Sheet http://www.descartes.com/role/DisclosureLeasesTables Leases (Tables) Tables http://www.descartes.com/role/DisclosureLeases 42 false false R43.htm 31503 - Disclosure - Share Capital (Tables) Sheet http://www.descartes.com/role/DisclosureShareCapitalTables Share Capital (Tables) Tables http://www.descartes.com/role/DisclosureShareCapital 43 false false R44.htm 31603 - Disclosure - Earnings Per Share (Tables) Sheet http://www.descartes.com/role/DisclosureEarningsPerShareTables Earnings Per Share (Tables) Tables http://www.descartes.com/role/DisclosureEarningsPerShare 44 false false R45.htm 31703 - Disclosure - Stock-Based Compensation Plans (Tables) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables Stock-Based Compensation Plans (Tables) Tables http://www.descartes.com/role/DisclosureStockBasedCompensationPlans 45 false false R46.htm 31803 - Disclosure - Income Taxes (Tables) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesTables Income Taxes (Tables) Tables http://www.descartes.com/role/DisclosureIncomeTaxes 46 false false R47.htm 31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables) Sheet http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables Contract Balances, Performance Obligations and Contract Costs (Tables) Tables http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts 47 false false R48.htm 32003 - Disclosure - Other Charges (Tables) Sheet http://www.descartes.com/role/DisclosureOtherChargesTables Other Charges (Tables) Tables http://www.descartes.com/role/DisclosureOtherCharges 48 false false R49.htm 32103 - Disclosure - Supplemental Cash Flow Information (Tables) Sheet http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables Supplemental Cash Flow Information (Tables) Tables http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation 49 false false R50.htm 32203 - Disclosure - Segmented Information (Tables) Sheet http://www.descartes.com/role/DisclosureSegmentedInformationTables Segmented Information (Tables) Tables http://www.descartes.com/role/DisclosureSegmentedInformation 50 false false R51.htm 40201 - Disclosure - Basis of Presentation (Details) Sheet http://www.descartes.com/role/DisclosureBasisOfPresentationDetails Basis of Presentation (Details) Details http://www.descartes.com/role/DisclosureBasisOfPresentationTables 51 false false R52.htm 40301 - Disclosure - Acquisitions (Details) Sheet http://www.descartes.com/role/DisclosureAcquisitionsDetails Acquisitions (Details) Details http://www.descartes.com/role/DisclosureAcquisitionsTables 52 false false R53.htm 40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) Sheet http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) Details 53 false false R54.htm 40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details) Sheet http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details) Details 54 false false R55.htm 40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details) Sheet http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails Acquisitions - Acquired Intangible Assets Useful Lives (Details) Details 55 false false R56.htm 40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details) Sheet http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails Acquisitions - Pro Forma Results of Operations (Details) Details 56 false false R57.htm 40401 - Disclosure - Fair Value Measurements (Details) Sheet http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails Fair Value Measurements (Details) Details http://www.descartes.com/role/DisclosureFairValueMeasurementsTables 57 false false R58.htm 40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details) Sheet http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails Fair Value Measurements - Derivative instruments at fair value (Details) Details 58 false false R59.htm 40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details) Sheet http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails Fair Value Measurements - Changes in fair value measurements (Details) Details 59 false false R60.htm 40501 - Disclosure - Trade Accounts Receivable (Details) Sheet http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails Trade Accounts Receivable (Details) Details http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables 60 false false R61.htm 40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details) Sheet http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails Trade Accounts Receivable - Trade receivables (Details) Details 61 false false R62.htm 40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details) Sheet http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails Trade Accounts Receivable - Provision for credit losses (Details) Details 62 false false R63.htm 40601 - Disclosure - Other Receivables (Details) Sheet http://www.descartes.com/role/DisclosureOtherReceivablesDetails Other Receivables (Details) Details http://www.descartes.com/role/DisclosureOtherReceivablesTables 63 false false R64.htm 40602 - Disclosure - Other Receivables - Additional information (Details) Sheet http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails Other Receivables - Additional information (Details) Details 64 false false R65.htm 40801 - Disclosure - Property and Equipment (Details) Sheet http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails Property and Equipment (Details) Details http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables 65 false false R66.htm 40901 - Disclosure - Intangible Assets (Details) Sheet http://www.descartes.com/role/DisclosureIntangibleAssetsDetails Intangible Assets (Details) Details http://www.descartes.com/role/DisclosureIntangibleAssetsTables 66 false false R67.htm 40902 - Disclosure - Intangible Assets - Additional information (Details) Sheet http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails Intangible Assets - Additional information (Details) Details 67 false false R68.htm 41001 - Disclosure - Goodwill (Details) Sheet http://www.descartes.com/role/DisclosureGoodwillDetails Goodwill (Details) Details http://www.descartes.com/role/DisclosureGoodwillTables 68 false false R69.htm 41101 - Disclosure - Accrued Liabilities (Details) Sheet http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails Accrued Liabilities (Details) Details http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables 69 false false R70.htm 41201 - Disclosure - Long-term Debt (Details) Sheet http://www.descartes.com/role/DisclosureLongTermDebtDetails Long-term Debt (Details) Details http://www.descartes.com/role/DisclosureLongTermDebt 70 false false R71.htm 41301 - Disclosure - Leases (Details) Sheet http://www.descartes.com/role/DisclosureLeasesDetails Leases (Details) Details http://www.descartes.com/role/DisclosureLeasesTables 71 false false R72.htm 41302 - Disclosure - Leases - Components of operating lease expense (Details) Sheet http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails Leases - Components of operating lease expense (Details) Details 72 false false R73.htm 41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details) Sheet http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails Leases - Maturities of operating lease liabilities (Details) Details 73 false false R74.htm 41401 - Disclosure - Commitments, Contingencies and Guarantees (Details) Sheet http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails Commitments, Contingencies and Guarantees (Details) Details http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees 74 false false R75.htm 41501 - Disclosure - Share Capital (Details) Sheet http://www.descartes.com/role/DisclosureShareCapitalDetails Share Capital (Details) Details http://www.descartes.com/role/DisclosureShareCapitalTables 75 false false R76.htm 41502 - Disclosure - Share Capital - Common Shares Outstanding (Details) Sheet http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails Share Capital - Common Shares Outstanding (Details) Details 76 false false R77.htm 41601 - Disclosure - Earnings Per Share (Details) Sheet http://www.descartes.com/role/DisclosureEarningsPerShareDetails Earnings Per Share (Details) Details http://www.descartes.com/role/DisclosureEarningsPerShareTables 77 false false R78.htm 41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) Sheet http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details) Details 78 false false R79.htm 41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails Stock-Based Compensation Plans - Additional information (Details) Details 79 false false R80.htm 41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details) Details 80 false false R81.htm 41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details) Details 81 false false R82.htm 41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails Stock-Based Compensation Plans - Summary of Option Activity (Details) Details 82 false false R83.htm 41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details) Details 83 false false R84.htm 41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails Stock-Based Compensation Plans - Summary of Nonvested Share (Details) Details 84 false false R85.htm 41707 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details) Details 85 false false R86.htm 41708 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details) Details 86 false false R87.htm 41709 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details) Sheet http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details) Details 87 false false R88.htm 41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details) Details 88 false false R89.htm 41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details) Details 89 false false R90.htm 41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details) Details 90 false false R91.htm 41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details) Details 91 false false R92.htm 41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details) Details 92 false false R93.htm 41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details) Details 93 false false R94.htm 41807 - Disclosure - Income Taxes - Additional information (Details) Sheet http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails Income Taxes - Additional information (Details) Details 94 false false R95.htm 41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details) Sheet http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details) Details 95 false false R96.htm 41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details) Sheet http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss Contract Balances, Performance Obligations and Contract Costs (Details) Details http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables 96 false false R97.htm 41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details) Sheet http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails Contract Balances, Performance Obligations and Contract Costs (Details) Details http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables 97 false false R98.htm 42001 - Disclosure - Other Charges - Components of Other Charges (Details) Sheet http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails Other Charges - Components of Other Charges (Details) Details 98 false false R99.htm 42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details) Sheet http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details) Details 99 false false R100.htm 42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details) Sheet http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails Segmented Information - Segmented Revenue by Geographical Location of Customer (Details) Details 100 false false R101.htm 42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details) Sheet http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails Segmented Information - Segmented Revenue by Revenue Type (Details) Details 101 false false R102.htm 42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details) Sheet http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails Segmented Information - Long-lived Assets by Geographical Location (Details) Details 102 false false R103.htm 42204 - Disclosure - Segmented Information - Additional information (Details) Sheet http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails Segmented Information - Additional information (Details) Details 103 false false R104.htm 42301 - Disclosure - Subsequent Event (Details) Sheet http://www.descartes.com/role/DisclosureSubsequentEventDetails Subsequent Event (Details) Details http://www.descartes.com/role/DisclosureSubsequentEvent 104 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 10 fact(s) appearing in ix:hidden were eligible for transformation: dsgx:CashSettledRestrictedShareUnitsVestingPeriod, dsgx:CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals, us-gaap:BusinessCombinationContingentConsiderationLiabilityMeasurementInput, us-gaap:FiniteLivedIntangibleAssetUsefulLife, us-gaap:PropertyPlantAndEquipmentUsefulLife, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 - dsgx-20230131xex99d1.htm 9 [ix-0514-Hidden-Fact-Not-Referenced] WARN: 4 fact(s) appearing in ix:hidden were not referenced by any -sec-ix-hidden style property: us-gaap:CommitmentsAndContingencies, us-gaap:CommonStockSharesAuthorizedUnlimited - dsgx-20230131xex99d1.htm 9 dsgx-20230131x6k.htm dsgx-20230131xex99d1.htm dsgx-20230131.xsd dsgx-20230131_cal.xml dsgx-20230131_def.xml dsgx-20230131_lab.xml dsgx-20230131_pre.xml dsgx-20230131xex99d2.htm dsgx-20230131xex99d1001.jpg dsgx-20230131xex99d1002.jpg dsgx-20230131xex99d1029.jpg dsgx-20230131xex99d1030.jpg dsgx-20230131xex99d1033.jpg http://fasb.org/us-gaap/2022 http://xbrl.sec.gov/dei/2022 true true JSON 126 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "dsgx-20230131x6k.htm dsgx-20230131xex99d1.htm": { "axisCustom": 0, "axisStandard": 24, "baseTaxonomies": { "http://fasb.org/us-gaap/2022": 1236, "http://xbrl.sec.gov/dei/2022": 8 }, "contextCount": 340, "dts": { "calculationLink": { "local": [ "dsgx-20230131_cal.xml" ] }, "definitionLink": { "local": [ "dsgx-20230131_def.xml" ] }, "inline": { "local": [ "dsgx-20230131x6k.htm", "dsgx-20230131xex99d1.htm" ] }, "labelLink": { "local": [ "dsgx-20230131_lab.xml" ] }, "presentationLink": { "local": [ "dsgx-20230131_pre.xml" ] }, "schema": { "local": [ "dsgx-20230131.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd", "https://xbrl.sec.gov/country/2022/country-2022.xsd", "https://xbrl.sec.gov/dei/2022/dei-2022.xsd" ] } }, "elementCount": 720, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2022": 12, "http://www.descartes.com/20230131": 2, "http://xbrl.sec.gov/dei/2022": 6, "total": 20 }, "keyCustom": 57, "keyStandard": 356, "memberCustom": 42, "memberStandard": 38, "nsprefix": "dsgx", "nsuri": "http://www.descartes.com/20230131", "report": { "R1": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131x6k.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00090 - Document - Document And Entity Information", "menuCat": "Cover", "order": "1", "role": "http://www.descartes.com/role/DocumentDocumentAndEntityInformation", "shortName": "Document And Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131x6k.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10201 - Disclosure - Basis of Presentation", "menuCat": "Notes", "order": "10", "role": "http://www.descartes.com/role/DisclosureBasisOfPresentation", "shortName": "Basis of Presentation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R100": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42201 - Disclosure - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)", "menuCat": "Details", "order": "100", "role": "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails", "shortName": "Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_srt_StatementGeographicalAxis_country_US_ABQckcNpvU6Pi8GyLJgxqA", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R101": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42202 - Disclosure - Segmented Information - Segmented Revenue by Revenue Type (Details)", "menuCat": "Details", "order": "101", "role": "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails", "shortName": "Segmented Information - Segmented Revenue by Revenue Type (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_srt_ProductOrServiceAxis_us-gaap_LicenseMember_LE_6rNJHm0S_poGPeffANw", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R102": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42203 - Disclosure - Segmented Information - Long-lived Assets by Geographical Location (Details)", "menuCat": "Details", "order": "102", "role": "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "shortName": "Segmented Information - Long-lived Assets by Geographical Location (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R103": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_segment_ODoZRk_cZky-MVE6MBJKTg", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42204 - Disclosure - Segmented Information - Additional information (Details)", "menuCat": "Details", "order": "103", "role": "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails", "shortName": "Segmented Information - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_segment_ODoZRk_cZky-MVE6MBJKTg", "xsiNil": "false" } }, "R104": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42301 - Disclosure - Subsequent Event (Details)", "menuCat": "Details", "order": "104", "role": "http://www.descartes.com/role/DisclosureSubsequentEventDetails", "shortName": "Subsequent Event (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:SubsequentEventsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_14_2023_To_2_14_2023_us-gaap_BusinessAcquisitionAxis_dsgx_WindigoLogisticsMember_us-gaap_SubsequentEventTypeAxis_us-gaap_SubsequentEventMember_l26SwgbdEUKf2LJ2uAL33w", "decimals": "-5", "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10301 - Disclosure - Acquisitions", "menuCat": "Notes", "order": "11", "role": "http://www.descartes.com/role/DisclosureAcquisitions", "shortName": "Acquisitions", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10401 - Disclosure - Fair Value Measurements", "menuCat": "Notes", "order": "12", "role": "http://www.descartes.com/role/DisclosureFairValueMeasurements", "shortName": "Fair Value Measurements", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10501 - Disclosure - Trade Accounts Receivable", "menuCat": "Notes", "order": "13", "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivable", "shortName": "Trade Accounts Receivable", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dsgx:OtherReceivablesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10601 - Disclosure - Other Receivables", "menuCat": "Notes", "order": "14", "role": "http://www.descartes.com/role/DisclosureOtherReceivables", "shortName": "Other Receivables", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dsgx:OtherReceivablesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10701 - Disclosure - Inventory", "menuCat": "Notes", "order": "15", "role": "http://www.descartes.com/role/DisclosureInventory", "shortName": "Inventory", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10801 - Disclosure - Property and Equipment", "menuCat": "Notes", "order": "16", "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipment", "shortName": "Property and Equipment", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10901 - Disclosure - Intangible Assets", "menuCat": "Notes", "order": "17", "role": "http://www.descartes.com/role/DisclosureIntangibleAssets", "shortName": "Intangible Assets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11001 - Disclosure - Goodwill", "menuCat": "Notes", "order": "18", "role": "http://www.descartes.com/role/DisclosureGoodwill", "shortName": "Goodwill", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11101 - Disclosure - Accrued Liabilities", "menuCat": "Notes", "order": "19", "role": "http://www.descartes.com/role/DisclosureAccruedLiabilities", "shortName": "Accrued Liabilities", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS", "menuCat": "Statements", "order": "2", "role": "http://www.descartes.com/role/StatementConsolidatedBalanceSheets", "shortName": "CONSOLIDATED BALANCE SHEETS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11201 - Disclosure - Long-term Debt", "menuCat": "Notes", "order": "20", "role": "http://www.descartes.com/role/DisclosureLongTermDebt", "shortName": "Long-term Debt", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11301 - Disclosure - Leases", "menuCat": "Notes", "order": "21", "role": "http://www.descartes.com/role/DisclosureLeases", "shortName": "Leases", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11401 - Disclosure - Commitments, Contingencies and Guarantees", "menuCat": "Notes", "order": "22", "role": "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees", "shortName": "Commitments, Contingencies and Guarantees", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11501 - Disclosure - Share Capital", "menuCat": "Notes", "order": "23", "role": "http://www.descartes.com/role/DisclosureShareCapital", "shortName": "Share Capital", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11601 - Disclosure - Earnings Per Share", "menuCat": "Notes", "order": "24", "role": "http://www.descartes.com/role/DisclosureEarningsPerShare", "shortName": "Earnings Per Share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11701 - Disclosure - Stock-Based Compensation Plans", "menuCat": "Notes", "order": "25", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans", "shortName": "Stock-Based Compensation Plans", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11801 - Disclosure - Income Taxes", "menuCat": "Notes", "order": "26", "role": "http://www.descartes.com/role/DisclosureIncomeTaxes", "shortName": "Income Taxes", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs", "menuCat": "Notes", "order": "27", "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts", "shortName": "Contract Balances, Performance Obligations and Contract Costs", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "12001 - Disclosure - Other Charges", "menuCat": "Notes", "order": "28", "role": "http://www.descartes.com/role/DisclosureOtherCharges", "shortName": "Other Charges", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "12101 - Disclosure - Supplemental Cash Flow Information", "menuCat": "Notes", "order": "29", "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation", "shortName": "Supplemental Cash Flow Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesIssued", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)", "menuCat": "Statements", "order": "3", "role": "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals", "shortName": "CONSOLIDATED BALANCE SHEETS (Parentheticals)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesIssued", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "12201 - Disclosure - Segmented Information", "menuCat": "Notes", "order": "30", "role": "http://www.descartes.com/role/DisclosureSegmentedInformation", "shortName": "Segmented Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "12301 - Disclosure - Subsequent Event", "menuCat": "Notes", "order": "31", "role": "http://www.descartes.com/role/DisclosureSubsequentEvent", "shortName": "Subsequent Event", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SubsequentEventsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "20202 - Disclosure - Basis of Presentation (Policies)", "menuCat": "Policies", "order": "32", "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies", "shortName": "Basis of Presentation (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30203 - Disclosure - Basis of Presentation (Tables)", "menuCat": "Tables", "order": "33", "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationTables", "shortName": "Basis of Presentation (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dsgx:ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30303 - Disclosure - Acquisitions (Tables)", "menuCat": "Tables", "order": "34", "role": "http://www.descartes.com/role/DisclosureAcquisitionsTables", "shortName": "Acquisitions (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30403 - Disclosure - Fair Value Measurements (Tables)", "menuCat": "Tables", "order": "35", "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables", "shortName": "Fair Value Measurements (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30503 - Disclosure - Trade Accounts Receivable (Tables)", "menuCat": "Tables", "order": "36", "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables", "shortName": "Trade Accounts Receivable (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "dsgx:OtherReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dsgx:OtherReceivablesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30603 - Disclosure - Other Receivables (Tables)", "menuCat": "Tables", "order": "37", "role": "http://www.descartes.com/role/DisclosureOtherReceivablesTables", "shortName": "Other Receivables (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "dsgx:OtherReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "dsgx:OtherReceivablesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30803 - Disclosure - Property and Equipment (Tables)", "menuCat": "Tables", "order": "38", "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables", "shortName": "Property and Equipment (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "us-gaap:IntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30903 - Disclosure - Intangible Assets (Tables)", "menuCat": "Tables", "order": "39", "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsTables", "shortName": "Intangible Assets (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS", "menuCat": "Statements", "order": "4", "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations", "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "lang": null, "name": "us-gaap:CostOfGoodsAndServicesSold", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "us-gaap:GoodwillDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31003 - Disclosure - Goodwill (Tables)", "menuCat": "Tables", "order": "40", "role": "http://www.descartes.com/role/DisclosureGoodwillTables", "shortName": "Goodwill (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:GoodwillDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31103 - Disclosure - Accrued Liabilities (Tables)", "menuCat": "Tables", "order": "41", "role": "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables", "shortName": "Accrued Liabilities (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31303 - Disclosure - Leases (Tables)", "menuCat": "Tables", "order": "42", "role": "http://www.descartes.com/role/DisclosureLeasesTables", "shortName": "Leases (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31503 - Disclosure - Share Capital (Tables)", "menuCat": "Tables", "order": "43", "role": "http://www.descartes.com/role/DisclosureShareCapitalTables", "shortName": "Share Capital (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31603 - Disclosure - Earnings Per Share (Tables)", "menuCat": "Tables", "order": "44", "role": "http://www.descartes.com/role/DisclosureEarningsPerShareTables", "shortName": "Earnings Per Share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31703 - Disclosure - Stock-Based Compensation Plans (Tables)", "menuCat": "Tables", "order": "45", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables", "shortName": "Stock-Based Compensation Plans (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31803 - Disclosure - Income Taxes (Tables)", "menuCat": "Tables", "order": "46", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesTables", "shortName": "Income Taxes (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Tables)", "menuCat": "Tables", "order": "47", "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables", "shortName": "Contract Balances, Performance Obligations and Contract Costs (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "32003 - Disclosure - Other Charges (Tables)", "menuCat": "Tables", "order": "48", "role": "http://www.descartes.com/role/DisclosureOtherChargesTables", "shortName": "Other Charges (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "32103 - Disclosure - Supplemental Cash Flow Information (Tables)", "menuCat": "Tables", "order": "49", "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables", "shortName": "Supplemental Cash Flow Information (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "menuCat": "Statements", "order": "5", "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome", "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "lang": null, "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "32203 - Disclosure - Segmented Information (Tables)", "menuCat": "Tables", "order": "50", "role": "http://www.descartes.com/role/DisclosureSegmentedInformationTables", "shortName": "Segmented Information (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "span", "p", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ForeignCurrencyTransactionGainLossBeforeTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40201 - Disclosure - Basis of Presentation (Details)", "menuCat": "Details", "order": "51", "role": "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "shortName": "Basis of Presentation (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ForeignCurrencyTransactionGainLossBeforeTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40301 - Disclosure - Acquisitions (Details)", "menuCat": "Details", "order": "52", "role": "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "shortName": "Acquisitions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_2_9_2022_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_CY0iZp9UgUWZkYhtT30qUA", "decimals": "-5", "lang": null, "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40302 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)", "menuCat": "Details", "order": "53", "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2020_To_1_31_2021_Hq_8j4dg2Eej9qYSoW-yiQ", "decimals": "-3", "lang": null, "name": "dsgx:BusinessCombinationConsiderationTransferredPayable", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_BwR915xsckGfznLTvjl0UA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAcquiredFromAcquisition", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40303 - Disclosure - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)", "menuCat": "Details", "order": "54", "role": "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "shortName": "Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired - Parentheticals (Details)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_BwR915xsckGfznLTvjl0UA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAcquiredFromAcquisition", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cqU2dc6e5UqDgm5iZUCFeQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40304 - Disclosure - Acquisitions - Acquired Intangible Assets Useful Lives (Details)", "menuCat": "Details", "order": "55", "role": "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "shortName": "Acquisitions - Acquired Intangible Assets Useful Lives (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_BusinessAcquisitionAxis_dsgx_NetChbLlcMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_CustomerRelationshipsMember_cqU2dc6e5UqDgm5iZUCFeQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:BusinessAcquisitionProFormaInformationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessAcquisitionsProFormaRevenue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40305 - Disclosure - Acquisitions - Pro Forma Results of Operations (Details)", "menuCat": "Details", "order": "56", "role": "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails", "shortName": "Acquisitions - Pro Forma Results of Operations (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:BusinessAcquisitionProFormaInformationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessAcquisitionsProFormaRevenue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "INF", "first": true, "lang": null, "name": "dsgx:DerivativeInstrumentSharesOfCommonStockHeld", "reportCount": 1, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40401 - Disclosure - Fair Value Measurements (Details)", "menuCat": "Details", "order": "57", "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "shortName": "Fair Value Measurements (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "2", "lang": null, "name": "dsgx:DerivativeInstrumentCommonSharesHeldPerShare", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_RLEoqdPXZEixoE90Xu06cQ", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DerivativeAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40402 - Disclosure - Fair Value Measurements - Derivative instruments at fair value (Details)", "menuCat": "Details", "order": "58", "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails", "shortName": "Fair Value Measurements - Derivative instruments at fair value (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DerivativeAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_MbMA8xwoFEWJ0xqEbaGQqw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40403 - Disclosure - Fair Value Measurements - Changes in fair value measurements (Details)", "menuCat": "Details", "order": "59", "role": "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails", "shortName": "Fair Value Measurements - Changes in fair value measurements (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2021_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel3Member_Pzh7BpDHdUm90KsCaUXjiQ", "decimals": "-3", "lang": null, "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00305 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)", "menuCat": "Statements", "order": "6", "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals", "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parentheticals)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccountsReceivableGrossCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40501 - Disclosure - Trade Accounts Receivable (Details)", "menuCat": "Details", "order": "60", "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails", "shortName": "Trade Accounts Receivable (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccountsReceivableGrossCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:UnbilledReceivablesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40502 - Disclosure - Trade Accounts Receivable - Trade receivables (Details)", "menuCat": "Details", "order": "61", "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails", "shortName": "Trade Accounts Receivable - Trade receivables (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:UnbilledReceivablesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40503 - Disclosure - Trade Accounts Receivable - Provision for credit losses (Details)", "menuCat": "Details", "order": "62", "role": "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails", "shortName": "Trade Accounts Receivable - Provision for credit losses (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "lang": null, "name": "us-gaap:ProvisionForDoubtfulAccounts", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "dsgx:OtherReceivablesTableTextBlock", "dsgx:OtherReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40601 - Disclosure - Other Receivables (Details)", "menuCat": "Details", "order": "63", "role": "http://www.descartes.com/role/DisclosureOtherReceivablesDetails", "shortName": "Other Receivables (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "dsgx:OtherReceivablesTableTextBlock", "dsgx:OtherReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "dsgx:NetWorkingCapitalAdjustmentsReceivableFromAcquisitions", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "span", "p", "dsgx:OtherReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40602 - Disclosure - Other Receivables - Additional information (Details)", "menuCat": "Details", "order": "64", "role": "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails", "shortName": "Other Receivables - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "dsgx:OtherReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "dsgx:AmountsRecoverableFromFundsHeldInEscrow", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40801 - Disclosure - Property and Equipment (Details)", "menuCat": "Details", "order": "65", "role": "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails", "shortName": "Property and Equipment (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40901 - Disclosure - Intangible Assets (Details)", "menuCat": "Details", "order": "66", "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails", "shortName": "Intangible Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R67": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsNet", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40902 - Disclosure - Intangible Assets - Additional information (Details)", "menuCat": "Details", "order": "67", "role": "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails", "shortName": "Intangible Assets - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:IntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R68": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41001 - Disclosure - Goodwill (Details)", "menuCat": "Details", "order": "68", "role": "http://www.descartes.com/role/DisclosureGoodwillDetails", "shortName": "Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2021_NrZk_QaNGEWvC7P9x9T-8A", "decimals": "-3", "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R69": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41101 - Disclosure - Accrued Liabilities (Details)", "menuCat": "Details", "order": "69", "role": "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails", "shortName": "Accrued Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_6y8B89_zLEudc5FEZBwcgA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY", "menuCat": "Statements", "order": "7", "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity", "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_6y8B89_zLEudc5FEZBwcgA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R70": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:LettersOfCreditOutstandingAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41201 - Disclosure - Long-term Debt (Details)", "menuCat": "Details", "order": "70", "role": "http://www.descartes.com/role/DisclosureLongTermDebtDetails", "shortName": "Long-term Debt (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:LettersOfCreditOutstandingAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R71": { "firstAnchor": { "ancestors": [ "p", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41301 - Disclosure - Leases (Details)", "menuCat": "Details", "order": "71", "role": "http://www.descartes.com/role/DisclosureLeasesDetails", "shortName": "Leases (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R72": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41302 - Disclosure - Leases - Components of operating lease expense (Details)", "menuCat": "Details", "order": "72", "role": "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails", "shortName": "Leases - Components of operating lease expense (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R73": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41303 - Disclosure - Leases - Maturities of operating lease liabilities (Details)", "menuCat": "Details", "order": "73", "role": "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails", "shortName": "Leases - Maturities of operating lease liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R74": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-5", "first": true, "lang": null, "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41401 - Disclosure - Commitments, Contingencies and Guarantees (Details)", "menuCat": "Details", "order": "74", "role": "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails", "shortName": "Commitments, Contingencies and Guarantees (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:CommitmentsContingenciesAndGuaranteesTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-5", "first": true, "lang": null, "name": "dsgx:DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R75": { "firstAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ProceedsFromStockOptionsExercised", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41501 - Disclosure - Share Capital (Details)", "menuCat": "Details", "order": "75", "role": "http://www.descartes.com/role/DisclosureShareCapitalDetails", "shortName": "Share Capital (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ProceedsFromStockOptionsExercised", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R76": { "firstAnchor": { "ancestors": [ "us-gaap:CommonStockSharesIssued", "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockSharesOutstanding", "reportCount": 1, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41502 - Disclosure - Share Capital - Common Shares Outstanding (Details)", "menuCat": "Details", "order": "76", "role": "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "shortName": "Share Capital - Common Shares Outstanding (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfCommonStockOutstandingRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2020__F9-YM-SsESTaMsLvAhBSw", "decimals": "-3", "lang": null, "name": "us-gaap:CommonStockSharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" } }, "R77": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_5f4_TuZsJkGLR9DsZkkmUg", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41601 - Disclosure - Earnings Per Share (Details)", "menuCat": "Details", "order": "77", "role": "http://www.descartes.com/role/DisclosureEarningsPerShareDetails", "shortName": "Earnings Per Share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_us-gaap_EmployeeStockOptionMember_5f4_TuZsJkGLR9DsZkkmUg", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" } }, "R78": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41602 - Disclosure - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)", "menuCat": "Details", "order": "78", "role": "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "shortName": "Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_EmployeeStockOptionMember_03-LGFHAPUuUZqXwKya8wQ", "decimals": "-3", "lang": null, "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" } }, "R79": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41701 - Disclosure - Stock-Based Compensation Plans - Additional information (Details)", "menuCat": "Details", "order": "79", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "shortName": "Stock-Based Compensation Plans - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00500 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS", "menuCat": "Statements", "order": "8", "role": "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows", "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "lang": null, "name": "us-gaap:Depreciation", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R80": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41702 - Disclosure - Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)", "menuCat": "Details", "order": "80", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails", "shortName": "Stock-Based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R81": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_DQ3GK-LIHEy0irK8dLXnMw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41703 - Disclosure - Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)", "menuCat": "Details", "order": "81", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails", "shortName": "Stock-Based Compensation Plans - Assumptions Used in Black - Scholes Model for Each Grant (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_DQ3GK-LIHEy0irK8dLXnMw", "xsiNil": "false" } }, "R82": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "reportCount": 1, "unitRef": "Unit_Divide_USD_shares_RLEoqdPXZEixoE90Xu06cQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41704 - Disclosure - Stock-Based Compensation Plans - Summary of Option Activity (Details)", "menuCat": "Details", "order": "82", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails", "shortName": "Stock-Based Compensation Plans - Summary of Option Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R83": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_RLEoqdPXZEixoE90Xu06cQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41705 - Disclosure - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)", "menuCat": "Details", "order": "83", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails", "shortName": "Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_RLEoqdPXZEixoE90Xu06cQ", "xsiNil": "false" } }, "R84": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "reportCount": 1, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41706 - Disclosure - Stock-Based Compensation Plans - Summary of Nonvested Share (Details)", "menuCat": "Details", "order": "84", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails", "shortName": "Stock-Based Compensation Plans - Summary of Nonvested Share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfNonvestedShareActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_PlanNameAxis_dsgx_ShareholderApprovedStockOptionsPlanMember_7FtB1NEgIkaAnOEC4ozBNA", "decimals": "0", "lang": null, "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" } }, "R85": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "reportCount": 1, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41707 - Disclosure - Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)", "menuCat": "Details", "order": "85", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "shortName": "Stock-Based Compensation Plans - Summary of Performance Share Units Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_PerformanceSharesMember_ew6tuzn3mk-xa_s3aLe5kg", "decimals": null, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R86": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice", "reportCount": 1, "unitRef": "Unit_Divide_USD_shares_RLEoqdPXZEixoE90Xu06cQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41708 - Disclosure - Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)", "menuCat": "Details", "order": "86", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails", "shortName": "Stock-Based Compensation Plans - Summary of Restricted Share Units Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_5P_6ut5k5kCAiIqY1a_Tcw", "decimals": null, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R87": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "0", "first": true, "lang": null, "name": "dsgx:CRSUAwardsOutstandingNumber", "reportCount": 1, "unitRef": "Unit_Standard_shares_kj_BFR8YTkaXMAgcIgQObw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41709 - Disclosure - Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)", "menuCat": "Details", "order": "87", "role": "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails", "shortName": "Stock-Based Compensation Plans - Summary of CRSU Plan Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "dsgx:ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "lang": "en-US", "name": "dsgx:CRSUAwardsWeightedAverageContractualLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R88": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41801 - Disclosure - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)", "menuCat": "Details", "order": "88", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "shortName": "Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_DoVfGN-cYEuaF7cQf6OxNQ", "decimals": "-3", "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R89": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentIncomeTaxExpenseBenefit", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41802 - Disclosure - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)", "menuCat": "Details", "order": "89", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "shortName": "Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_us-gaap_IncomeTaxAuthorityAxis_country_CA_DoVfGN-cYEuaF7cQf6OxNQ", "decimals": "-3", "lang": null, "name": "us-gaap:CurrentIncomeTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10101 - Disclosure - Description of the Business", "menuCat": "Notes", "order": "9", "role": "http://www.descartes.com/role/DisclosureDescriptionOfBusiness", "shortName": "Description of the Business", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R90": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41803 - Disclosure - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)", "menuCat": "Details", "order": "90", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails", "shortName": "Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R91": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41804 - Disclosure - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)", "menuCat": "Details", "order": "91", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "shortName": "Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "4", "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_DQ3GK-LIHEy0irK8dLXnMw", "xsiNil": "false" } }, "R92": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLossCarryforwards", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41805 - Disclosure - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)", "menuCat": "Details", "order": "92", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails", "shortName": "Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLossCarryforwards", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R93": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LiabilityForUncertainTaxPositionsNoncurrent", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41806 - Disclosure - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)", "menuCat": "Details", "order": "93", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails", "shortName": "Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "lang": null, "name": "us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R94": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "2", "first": true, "lang": null, "name": "dsgx:IncomeBeforeTaxesPercent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_DQ3GK-LIHEy0irK8dLXnMw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41807 - Disclosure - Income Taxes - Additional information (Details)", "menuCat": "Details", "order": "94", "role": "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails", "shortName": "Income Taxes - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "2", "first": true, "lang": null, "name": "dsgx:IncomeBeforeTaxesPercent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_DQ3GK-LIHEy0irK8dLXnMw", "xsiNil": "false" } }, "R95": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2022_idGoK2xU_k2JmAIho_9Q2g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiability", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41901 - Disclosure - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)", "menuCat": "Details", "order": "95", "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails", "shortName": "Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2021_NrZk_QaNGEWvC7P9x9T-8A", "decimals": "-3", "lang": null, "name": "us-gaap:ContractWithCustomerLiability", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R96": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:RevenueRemainingPerformanceObligation", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41902 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)", "menuCat": "Details", "order": "96", "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss", "shortName": "Contract Balances, Performance Obligations and Contract Costs (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:RevenueRemainingPerformanceObligation", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R97": { "firstAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:CapitalizedContractCostNet", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41903 - Disclosure - Contract Balances, Performance Obligations and Contract Costs (Details)", "menuCat": "Details", "order": "97", "role": "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails", "shortName": "Contract Balances, Performance Obligations and Contract Costs (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "As_Of_1_31_2023_dJ7Arn7sK0iUDDqsBnA3UQ", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:CapitalizedContractCostNet", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R98": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock", "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts", "reportCount": 1, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42001 - Disclosure - Other Charges - Components of Other Charges (Details)", "menuCat": "Details", "order": "98", "role": "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails", "shortName": "Other Charges - Components of Other Charges (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock", "us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "lang": null, "name": "us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } }, "R99": { "firstAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncreaseDecreaseInAccountsReceivable", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42101 - Disclosure - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)", "menuCat": "Details", "order": "99", "role": "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails", "shortName": "Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "p", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "dsgx-20230131xex99d1.htm", "contextRef": "Duration_2_1_2022_To_1_31_2023_Smbz4mrQ10KWmddkKXRxsA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncreaseDecreaseInAccountsReceivable", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_a2Q9K2tF6Uu3YYPVWsYO3g", "xsiNil": "false" } } }, "segmentCount": 85, "tag": { "country_CA": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Canada", "terseLabel": "Canada" } } }, "localname": "CA", "nsuri": "http://xbrl.sec.gov/country/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" ], "xbrltype": "domainItemType" }, "country_US": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "United States", "terseLabel": "United States" } } }, "localname": "US", "nsuri": "http://xbrl.sec.gov/country/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" ], "xbrltype": "domainItemType" }, "dei_AddressTypeDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "An entity may have several addresses for different purposes and this domain represents all such types.", "label": "Address Type [Domain]" } } }, "localname": "AddressTypeDomain", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "domainItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_AnnualInformationForm": { "auth_ref": [ "r739" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag with value true on a form if it is an annual report containing an annual information form.", "label": "Annual Information Form" } } }, "localname": "AnnualInformationForm", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_AuditedAnnualFinancialStatements": { "auth_ref": [ "r739" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag with value true on a form if it is an annual report containing audited financial statements.", "label": "Audited Annual Financial Statements" } } }, "localname": "AuditedAnnualFinancialStatements", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_AuditorFirmId": { "auth_ref": [ "r737", "r738", "r739" ], "lang": { "en-us": { "role": { "documentation": "PCAOB issued Audit Firm Identifier", "label": "Auditor Firm ID" } } }, "localname": "AuditorFirmId", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "nonemptySequenceNumberItemType" }, "dei_AuditorLocation": { "auth_ref": [ "r737", "r738", "r739" ], "lang": { "en-us": { "role": { "label": "Auditor Location" } } }, "localname": "AuditorLocation", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_AuditorName": { "auth_ref": [ "r737", "r738", "r739" ], "lang": { "en-us": { "role": { "label": "Auditor Name" } } }, "localname": "AuditorName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_BusinessContactMember": { "auth_ref": [ "r738", "r739" ], "lang": { "en-us": { "role": { "documentation": "Business contact for the entity", "label": "Business Contact [Member]" } } }, "localname": "BusinessContactMember", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "domainItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_ContactPersonnelName": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of contact personnel", "label": "Contact Personnel Name" } } }, "localname": "ContactPersonnelName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentAnnualReport": { "auth_ref": [ "r737", "r738", "r739" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an annual report.", "label": "Document Annual Report" } } }, "localname": "DocumentAnnualReport", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentInformationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Document Information [Line Items]" } } }, "localname": "DocumentInformationLineItems", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stringItemType" }, "dei_DocumentInformationTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package.", "label": "Document Information [Table]" } } }, "localname": "DocumentInformationTable", "nsuri": "http://xbrl.sec.gov/dei/2022", "xbrltype": "stringItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "dateItemType" }, "dei_DocumentRegistrationStatement": { "auth_ref": [ "r733" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a registration statement.", "label": "Document Registration Statement" } } }, "localname": "DocumentRegistrationStatement", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine2": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 2 such as Street or Suite number", "label": "Entity Address, Address Line Two" } } }, "localname": "EntityAddressAddressLine2", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine3": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 3 such as an Office Park", "label": "Entity Address, Address Line Three" } } }, "localname": "EntityAddressAddressLine3", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCountry": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "ISO 3166-1 alpha-2 country code.", "label": "Entity Address, Country" } } }, "localname": "EntityAddressCountry", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "countryCodeItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityAddressesAddressTypeAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The axis of a table defines the relationship between the domain members or categories in the table and the line items or concepts that complete the table.", "label": "Entity Addresses, Address Type [Axis]" } } }, "localname": "EntityAddressesAddressTypeAxis", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stringItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r735" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding (in shares)" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.", "label": "Entity [Domain]" } } }, "localname": "EntityDomain", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationTables", "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureShareCapitalTables", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails", "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "domainItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r735" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r735" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r740" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r735" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r735" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r735" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityVoluntaryFilers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.", "label": "Entity Voluntary Filers" } } }, "localname": "EntityVoluntaryFilers", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityWellKnownSeasonedIssuer": { "auth_ref": [ "r741" ], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.", "label": "Entity Well-known Seasoned Issuer" } } }, "localname": "EntityWellKnownSeasonedIssuer", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_LegalEntityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The set of legal entities associated with a report.", "label": "Legal Entity [Axis]" } } }, "localname": "LegalEntityAxis", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationTables", "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureShareCapitalTables", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails", "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r734" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r736" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "dsgx_AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represent the amount of effects of foreign exchange currency movement against the allowance.", "label": "Accounts Receivable Allowance for Credit Loss Effects of Foreign Exchange", "verboseLabel": "Effect of movements in foreign exchange" } } }, "localname": "AccountsReceivableAllowanceForCreditLossEffectsOfForeignExchange", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_Acquisitions2022Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the 2022 acquisitions.", "label": "Acquisitions 2022 [Member]" } } }, "localname": "Acquisitions2022Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "dsgx_AdjustmentForRoundingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents an adjustment made for rounding in the document.", "label": "Adjustment for rounding" } } }, "localname": "AdjustmentForRoundingMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_AfterTaxYear2026Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to after tax year 2026.", "label": "Thereafter", "terseLabel": "Thereafter" } } }, "localname": "AfterTaxYear2026Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_AmountsRecoverableFromFundsHeldInEscrow": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recoverable from funds held In escrow related to acquisitions.", "label": "Amounts Recoverable from Funds Held in Escrow", "terseLabel": "Capital adjustments receivable from acquisitions is recoverable from amounts held in escrow" } } }, "localname": "AmountsRecoverableFromFundsHeldInEscrow", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureOtherReceivablesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_AsiaPacificIncomeTaxAuthorityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information related to Asia Pacific income tax authority", "label": "Asia Pacific Region", "terseLabel": "Asia Pacific" } } }, "localname": "AsiaPacificIncomeTaxAuthorityMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_BaseAnnualFeePercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The base annual fee percentage required for Directors participating in a share-based compensation plan.", "label": "dsgx_BaseAnnualFeePercent", "verboseLabel": "Base annual fee, percent" } } }, "localname": "BaseAnnualFeePercent", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "percentItemType" }, "dsgx_BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 4.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Business acquisition cost of acquired entity working capital adjustments.", "label": "Business Acquisition Cost Of Acquired Entity Working Capital Adjustments", "terseLabel": "Net working capital adjustments payable (receivable)" } } }, "localname": "BusinessAcquisitionCostOfAcquiredEntityWorkingCapitalAdjustments", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_BusinessCombinationConsiderationTransferredPayable": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred by the acquirer as part of consideration payable transferred in a business combination.", "label": "Consideration payable", "terseLabel": "Consideration payable" } } }, "localname": "BusinessCombinationConsiderationTransferredPayable", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the period (following acquisition) over which contingent consideration is to be paid by the reporting entity if the acquired entity meets certain performance targets.", "label": "Business Combination, Contingent Consideration Arrangements, Period for Revenue Performance Targets", "terseLabel": "Period for revenue performance targets", "verboseLabel": "Period for revenue performance targets" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsPeriodForRevenuePerformanceTargets", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "durationItemType" }, "dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 9.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long term income tax liability attributable to taxable temporary differences assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Long-term Income Tax Liability", "negatedLabel": "Long-term income taxes payable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermIncomeTaxLiability", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 3.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of right-of-use assets acquired at the acquisition date.", "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Right-of-use Assets", "terseLabel": "Right-of-use assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized as of the acquisition date for the identifiable tangible assets acquired in excess of (less than) the aggregate liabilities assumed.", "label": "Business Combination Recognized Identifiable Tangible Assets Acquired And Liabilities Assumed Net", "totalLabel": "Net tangible assets (liabilities) assumed" } } }, "localname": "BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_CRSUAwardNonvestedNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of nonvested CRSU awards.", "label": "Non-vested, CRSU (in shares)" } } }, "localname": "CRSUAwardNonvestedNumber", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "sharesItemType" }, "dsgx_CRSUAwardNonvestedWeightedAverageContractualLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The weighted average remaining contractual life of nonvested CRSU awards.", "label": "Non-vested, Weighted-Average Remaining Contractual Life, CRSU (Year)" } } }, "localname": "CRSUAwardNonvestedWeightedAverageContractualLife", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "durationItemType" }, "dsgx_CRSUAwardsForfeitedInPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to CRSU awards forfeited in period.", "label": "Number of Units Forfeited, CRSU (in shares)", "negatedLabel": "Number of Units Forfeited, CRSU (in shares)" } } }, "localname": "CRSUAwardsForfeitedInPeriod", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "sharesItemType" }, "dsgx_CRSUAwardsGrantsInPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of CRSU grants in period.", "label": "Number of Units Granted, CRSU (in shares)" } } }, "localname": "CRSUAwardsGrantsInPeriod", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "sharesItemType" }, "dsgx_CRSUAwardsOutstandingNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of CRSU awards outstanding.", "label": "Number of Units Outstanding, CRSU (in shares)", "periodEndLabel": "Number of Units Outstanding, CRSU (in shares), Ending", "periodStartLabel": "Number of Units Outstanding, CRSU (in shares),Beginning" } } }, "localname": "CRSUAwardsOutstandingNumber", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "sharesItemType" }, "dsgx_CRSUAwardsVestedAndSettledInCash": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of CRSU awards vested and settled in cash.", "label": "Number of Units Vested and settled in cash, CRSU (in shares)", "negatedLabel": "Number of Units Vested and settled in cash, CRSU (in shares)" } } }, "localname": "CRSUAwardsVestedAndSettledInCash", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "sharesItemType" }, "dsgx_CRSUAwardsWeightedAverageContractualLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The weighted average remaining contractual life of CRSU awards.", "label": "Weighted-Average Remaining Contractual Life, CRSU (Year)" } } }, "localname": "CRSUAwardsWeightedAverageContractualLife", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfCrsuPlanActivityDetails" ], "xbrltype": "durationItemType" }, "dsgx_CanadaOrUsPrimeRateBaOrLiborMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the Canada or US prime rate, Bankers' Acceptance (BA) or London Interbank Offered Rate (LIBOR).", "label": "Canada or US Prime Rate, BA, or LIBOR [Member]", "terseLabel": "CDOR" } } }, "localname": "CanadaOrUsPrimeRateBaOrLiborMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "dsgx_CashSettledRestrictedShareUnitMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cash-Settled Restricted Share Unit [Member]", "label": "Cash-Settled Restricted Share Unit [Member]" } } }, "localname": "CashSettledRestrictedShareUnitMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "dsgx_CashSettledRestrictedShareUnitsCompensationExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash settled restricted share units compensation expense.", "label": "Cash Settled Restricted Share Units Compensation Expense", "terseLabel": "Cash Settled Restricted Share Units Compensation Expense" } } }, "localname": "CashSettledRestrictedShareUnitsCompensationExpense", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash settled restricted share units nonvested, total compensation cost not yet recognized.", "label": "Cash Settled Restricted Share Units Non-vested Total Compensation Cost Not Yet Recognized", "terseLabel": "Unrecognized aggregate liability for the unvested CRSUs" } } }, "localname": "CashSettledRestrictedShareUnitsNonvestedTotalCompensationCostNotYetRecognized", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_CashSettledRestrictedShareUnitsVestingPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Period which an employee's right to exercise an award is no longer contingent on satisfaction of either a service condition, market condition or a performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "dsgx_CashSettledRestrictedShareUnitsVestingPeriod", "verboseLabel": "Cash settled restricted share units, vesting period (Year)" } } }, "localname": "CashSettledRestrictedShareUnitsVestingPeriod", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "durationItemType" }, "dsgx_CashsettledRestrictedSharePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A cash-settled restricted share plan adopted by an entity.", "label": "Cash-Settled Restricted Share Plan [Member]" } } }, "localname": "CashsettledRestrictedSharePlanMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "dsgx_CommitmentsContingenciesAndGuaranteesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "N/A", "label": "Commitments, Contingencies and Guarantees" } } }, "localname": "CommitmentsContingenciesAndGuaranteesDisclosureAbstract", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) to the contract asset during the period attributable to the effect of movements in foreign exchange.", "label": "dsgx_ContractWithCustomerAssetIncreaseDecreaseForForeignExchange", "terseLabel": "Effect of movements in foreign exchange" } } }, "localname": "ContractWithCustomerAssetIncreaseDecreaseForForeignExchange", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the contract asset during the period from term licenses recognized as revenue during the period, net of amounts transferred to trade receivables.", "label": "Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables", "terseLabel": "Increases as a result of delivered term licenses recognized as revenue during the period, net of amounts transferred to trade receivables" } } }, "localname": "ContractWithCustomerAssetIncreaseDecreaseForTermLicensesNet", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents the amount of contract asset before the adoption of ASC 606.", "label": "dsgx_ContractWithCustomerContractAssetBeforeAdoptionOfASC606", "periodStartLabel": "Balance" } } }, "localname": "ContractWithCustomerContractAssetBeforeAdoptionOfASC606", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from movements in foreign exchange.", "label": "Effect of movements in foreign exchange", "terseLabel": "Effect of movements in foreign exchange" } } }, "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForForeignExchange", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from deferral of revenue.", "label": "Deferral of revenue", "terseLabel": "Deferral of revenue" } } }, "localname": "ContractWithCustomerLiabilityIncreaseFromDeferralOfRevenue", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_CoreKontainersShiptrackGreenmileNetchbAndXpsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to CORE, Kontainers, ShipTrack, GreenMile, NetCHB and XPS.", "label": "CORE, Kontainers, ShipTrack, GreenMile, NetCHB And XPS [Member]" } } }, "localname": "CoreKontainersShiptrackGreenmileNetchbAndXpsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "domainItemType" }, "dsgx_CoreTransportTechnologiesNzLimitedMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents Core Transport Technologies NZ Limited (\"CORE\").", "label": "Core Transport Technologies NZ Limited [Member]" } } }, "localname": "CoreTransportTechnologiesNzLimitedMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the period of benefit, including renewals, associated with the asset for the incremental costs of obtaining a contract with a customer.", "label": "dsgx_CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals", "verboseLabel": "Costs to obtain a contract with a customer, period of benefit including renewals (Year)" } } }, "localname": "CostsToObtainAContractWithACustomerPeriodOfBenefitIncludingRenewals", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "durationItemType" }, "dsgx_CurrentIncomeTaxRateContinuingOperations": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Current Income Tax Rate Continuing Operations", "terseLabel": "Percentage of current income tax expense" } } }, "localname": "CurrentIncomeTaxRateContinuingOperations", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "dsgx_DeferredShareUnitLiabilityNumberOfCommonShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of common shares for which there is a deferred share unit liability.", "label": "Deferred Share Unit Liability, Number of Common Shares (in shares)", "terseLabel": "DSU liability, number of common shares (in shares)" } } }, "localname": "DeferredShareUnitLiabilityNumberOfCommonShares", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "sharesItemType" }, "dsgx_DeferredShareUnitPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A plan with deferred share units.", "label": "Deferred Share Unit Plan [Member]" } } }, "localname": "DeferredShareUnitPlanMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "dsgx_DeferredShareUnitsCompensationExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The deferred share units compensation expense.", "label": "Deferred Share Units Compensation Expense", "terseLabel": "Deferred Share Units Compensation Expense" } } }, "localname": "DeferredShareUnitsCompensationExpense", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_DeferredShareUnitsGrantsInPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of deferred share units granted in period.", "label": "Deferred Share Units Grants In Period (in shares)", "terseLabel": "Deferred Share Units Grants In Period (in shares)" } } }, "localname": "DeferredShareUnitsGrantsInPeriod", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "dsgx_DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The deferred share units nonvested, total compensation cost not yet recognized.", "label": "Deferred Share Units Non-vested Total Compensation Cost Not Yet Recognized", "terseLabel": "Unrecognized aggregate liability for the unvested DSUs" } } }, "localname": "DeferredShareUnitsNonvestedTotalCompensationCostNotYetRecognized", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_DeferredShareUnitsOutstandingNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of outstanding deferred share units as of the reported date.", "label": "Deferred Share Units Outstanding Number (in shares)", "terseLabel": "Deferred Share Units Outstanding Number (in shares)" } } }, "localname": "DeferredShareUnitsOutstandingNumber", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "dsgx_DeferredShareUnitsRedeemedAndSettledInCash": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of deferred share units redeemed and settled in cash.", "label": "Deferred Share Units Redeemed and Settled in Cash (in shares)", "terseLabel": "Deferred Share Units Redeemed and Settled in Cash (in shares)" } } }, "localname": "DeferredShareUnitsRedeemedAndSettledInCash", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "dsgx_DeferredTaxAssetsCorporateMinimumTaxes": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from corporate minimum taxes.", "label": "Corporate minimum taxes" } } }, "localname": "DeferredTaxAssetsCorporateMinimumTaxes", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_DeferredTaxAssetsLiabilitesNet1": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances, of deferred tax asset (liability) attributable to deductible differences and carryforwards, without jurisdictional netting.", "label": "Deferred Tax Assets Liabilities Net1", "totalLabel": "Net deferred income taxes, net of valuation allowance" } } }, "localname": "DeferredTaxAssetsLiabilitesNet1", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "dsgx_DeferredTaxAssetsLiabilitesNet1", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax assets.", "label": "Deferred Tax Assets Net Before Valuation Allowance", "terseLabel": "Net deferred income taxes" } } }, "localname": "DeferredTaxAssetsNetBeforeValuationAllowance", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_DeferredTaxCharges": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents the amount of deferred tax charges recorded during the period.", "label": "Deferred Tax Charges", "terseLabel": "Deferred tax expense" } } }, "localname": "DeferredTaxCharges", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "dsgx_DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of accumulated depreciation of property, plant and equipment useful life.", "label": "Depreciation of Property, Plant and Equipment Useful Life [Table Text Block]", "terseLabel": "Schedule of depreciation of property, plant and equipment" } } }, "localname": "DepreciationOfPropertyPlantAndEquipmentUsefulLifeTableTextBlock", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationTables" ], "xbrltype": "textBlockItemType" }, "dsgx_DerivativeGainOnDerivatives": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in the fair value of derivatives recognized in the income statement.", "label": "Derivative Gain On Derivatives", "negatedLabel": "Derivative, Gain on Derivatives" } } }, "localname": "DerivativeGainOnDerivatives", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_DerivativeInstrumentCommonSharesHeldPerShare": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The per share amount of common shares held by certain derivative instruments entered into by the company.", "label": "Derivative Instrument, Common Shares Held, Per Share", "terseLabel": "Derivative, common shares weighted average price (in dollars per share)" } } }, "localname": "DerivativeInstrumentCommonSharesHeldPerShare", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "perShareItemType" }, "dsgx_DerivativeInstrumentSharesOfCommonStockHeld": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of shares held by certain derivative instruments entered into by the company.", "label": "Derivative Instrument, Shares of Common Stock Held", "terseLabel": "Equity derivatives, number of common shares held (in shares)" } } }, "localname": "DerivativeInstrumentSharesOfCommonStockHeld", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "sharesItemType" }, "dsgx_DirectorsAndOfficersMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Titles of individuals' stock options.", "label": "Directors and Officers [Member]" } } }, "localname": "DirectorsAndOfficersMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in accruals for uncertain tax positions .", "label": "dsgx_EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions", "terseLabel": "Increase (decrease) in accruals for uncertain tax positions" } } }, "localname": "EffectiveIncomeTaxRateReconciliationIncreaseDecreaseInAccrualsForUncertainTaxPositions", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_EmeaIncomeTaxAuthorityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents income tax authority for EMEA.", "label": "EMEA Region", "terseLabel": "EMEA" } } }, "localname": "EmeaIncomeTaxAuthorityMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_EquipmentInstalledWithCustomersMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to equipment installed with customers.", "label": "Equipment Installed With Customers [Member]", "terseLabel": "Equipment installed with customers" } } }, "localname": "EquipmentInstalledWithCustomersMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "dsgx_ExistingTechnologyMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information about existing technology.", "label": "Existing Technology [member]", "terseLabel": "Existing technology" } } }, "localname": "ExistingTechnologyMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "dsgx_ExpensesAndRecoveriesNet": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses (recovery) related to operating expenses in the operation statement.", "label": "Expenses and Recoveries, Net", "terseLabel": "Expense (recovery)" } } }, "localname": "ExpensesAndRecoveriesNet", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) from effect of movements in foreign exchange from liability measured at fair value on recurring basis using unobservable input (level 3).", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) From Effect Of Movements In Foreign Exchange", "terseLabel": "Effect of movements in foreign exchange" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossFromEffectOfMovementsInForeignExchange", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Four" } } }, "localname": "FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_Fiscal2023AcquisitionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to Fiscal 2023 Acquisitions.", "label": "Fiscal 2023 Acquisitions [Member]", "terseLabel": "Fiscal 2023 Acquisitions" } } }, "localname": "Fiscal2023AcquisitionsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "dsgx_FoxtrotMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to Foxtrot.", "label": "Foxtrot [Member]", "terseLabel": "Foxtrot" } } }, "localname": "FoxtrotMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_GoodwillDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Goodwill Disclosure [Abstract]", "label": "Goodwill" } } }, "localname": "GoodwillDisclosureAbstract", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_GreenmileMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to GreenMile.", "label": "GreenMile [Member]", "terseLabel": "GreenMile" } } }, "localname": "GreenmileMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_GreenmileNetchbXpsAndSupplyVisionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to GreenMile, NetCHB, XPS and Supply Vision.", "label": "GreenMile, NetCHB, XPS and Supply Vision [Member]", "terseLabel": "GreenMile, NetCHB, XPS and Supply Vision" } } }, "localname": "GreenmileNetchbXpsAndSupplyVisionMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "domainItemType" }, "dsgx_IncomeBeforeTaxesPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Income tax expense expressed as a percentage of income before taxes.", "label": "Income Before Taxes Percent", "terseLabel": "Percentage of income before income taxes" } } }, "localname": "IncomeBeforeTaxesPercent", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "dsgx_IncomeTaxDisclosureLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "N/A", "label": "Income Tax Disclosure [Line Items]", "terseLabel": "Income Taxes" } } }, "localname": "IncomeTaxDisclosureLineItems", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" ], "xbrltype": "stringItemType" }, "dsgx_IncomeTaxDisclosureTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "N/A", "label": "Income Tax Disclosure [Table]" } } }, "localname": "IncomeTaxDisclosureTable", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" ], "xbrltype": "stringItemType" }, "dsgx_IncreaseDecreaseInOperatingLeaseLiabilities": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 8.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of increase (decrease) in operating lease liabilities.", "label": "Increase (Decrease) in Operating Lease Liabilities", "verboseLabel": "Operating leases" } } }, "localname": "IncreaseDecreaseInOperatingLeaseLiabilities", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_InvestmentAndOtherIncome": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 3.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of investment income and other income.", "label": "Investment and Other Income", "terseLabel": "INVESTMENT AND OTHER INCOME" } } }, "localname": "InvestmentAndOtherIncome", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "dsgx_KontainersMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to Kontainers.", "label": "Kontainers [Member]", "terseLabel": "Kontainers" } } }, "localname": "KontainersMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "domainItemType" }, "dsgx_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date.", "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Four", "terseLabel": "2028 and thereafter" } } }, "localname": "LesseeOperatingLeaseLiabilityToBePaidAfterYearFour", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to line of credit borrowings to support foreign exchange and interest rate hedging.", "label": "Line of Credit Borrowings to Support Foreign Exchange and Interest Rate Hedging [Member]" } } }, "localname": "LineOfCreditBorrowingsToSupportForeignExchangeAndInterestRateHedgingMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "dsgx_MaximumPercentageOfSharesToBeRepurchased": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the maximum percentage of shares of the public float to be repurchased.", "label": "Maximum Percentage of Shares to be Repurchased", "terseLabel": "Maximum percentage of shares to be repurchased for cancellation" } } }, "localname": "MaximumPercentageOfSharesToBeRepurchased", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "percentItemType" }, "dsgx_NcibMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the intention of buying back the company's own outstanding shares from the markets.", "label": "NCIB", "terseLabel": "NCIB" } } }, "localname": "NcibMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "domainItemType" }, "dsgx_NetChbLlcMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to Net CHB, LLC.", "label": "Net CHB, LLC [Member]", "terseLabel": "Net CHB, LLC" } } }, "localname": "NetChbLlcMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_NetWorkingCapitalAdjustmentsReceivableFromAcquisitions": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": { "order": 1.0, "parentTag": "us-gaap_OtherReceivablesNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents the amount of net working capital adjustments receivable from acquisitions.", "label": "Net Working Capital Adjustments Receivable from Acquisitions", "terseLabel": "Net working capital adjustments receivable from acquisitions" } } }, "localname": "NetWorkingCapitalAdjustmentsReceivableFromAcquisitions", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureOtherReceivablesDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_NoteToFinancialStatementDetailsTextual": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note To Financial Statement Details Textual" } } }, "localname": "NoteToFinancialStatementDetailsTextual", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_OtherCountriesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents other countries.", "label": "Other Countries [Member]", "terseLabel": "Other countries" } } }, "localname": "OtherCountriesMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails" ], "xbrltype": "domainItemType" }, "dsgx_OtherReceivablesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "No definition available.", "label": "Other Receivables" } } }, "localname": "OtherReceivablesDisclosureAbstract", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_OtherReceivablesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of other receivables.", "label": "Other Receivables [Table Text Block]", "terseLabel": "Schedule of other receivables" } } }, "localname": "OtherReceivablesTableTextBlock", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureOtherReceivablesTables" ], "xbrltype": "textBlockItemType" }, "dsgx_OtherReceivablesTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for other receivables.", "label": "Other Receivables [Text Block]", "terseLabel": "Other Receivables" } } }, "localname": "OtherReceivablesTextBlock", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureOtherReceivables" ], "xbrltype": "textBlockItemType" }, "dsgx_PSUsAndRSUsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to PSUs and RSUs.", "label": "PSUs and RSUs [Member]", "terseLabel": "PSU and RSU" } } }, "localname": "PSUsAndRSUsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "domainItemType" }, "dsgx_PeoplevoxMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to Peoplevox.", "label": "Peoplevox [Member]", "terseLabel": "Peoplevox" } } }, "localname": "PeoplevoxMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "domainItemType" }, "dsgx_PercentageOfAccountReceivable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent of percentage item", "label": "Represents the percentage of accounts receivable.", "terseLabel": "Percentage of account receivable" } } }, "localname": "PercentageOfAccountReceivable", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" ], "xbrltype": "percentItemType" }, "dsgx_PinPointMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to PinPoint GPS Solutions Inc.", "label": "PinPoint [Member]" } } }, "localname": "PinPointMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "domainItemType" }, "dsgx_PortrixMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to Portrix.", "label": "Portrix [Member]", "terseLabel": "Portrix" } } }, "localname": "PortrixMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_ProfessionalServicesAndOtherMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to items categorized as Professional Services and Other.", "label": "Professional services and other" } } }, "localname": "ProfessionalServicesAndOtherMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "domainItemType" }, "dsgx_QuestawebMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to QuestaWeb.", "label": "QuestaWeb [Member]", "terseLabel": "QuestaWeb" } } }, "localname": "QuestawebMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_Range1Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents range 1.", "label": "Range 1 [Member]" } } }, "localname": "Range1Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "domainItemType" }, "dsgx_Range2Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents range 2.", "label": "Range 2 [Member]" } } }, "localname": "Range2Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "domainItemType" }, "dsgx_Range3Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents range 3.", "label": "Range 3 [Member]" } } }, "localname": "Range3Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "domainItemType" }, "dsgx_Range4Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the fourth exercise price range.", "label": "Range 4 [Member]" } } }, "localname": "Range4Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "domainItemType" }, "dsgx_RevolvingOperatingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to a revolving operating credit facility for general corporate purposes including the financing of ongoing working capital needs and acquisitions.", "label": "Revolving Operating Credit Facility [Member]", "terseLabel": "Revolving credit facility" } } }, "localname": "RevolvingOperatingCreditFacilityMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "dsgx_RightsToPurchaseCommonSharesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member pertaining to rights to purchase common shares.", "label": "Rights to purchase Common Shares [Member]" } } }, "localname": "RightsToPurchaseCommonSharesMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "domainItemType" }, "dsgx_ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, amortization of useful life.", "label": "Schedule of Amortization Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Schedule of amortization of intangible assets" } } }, "localname": "ScheduleOfAmortizationFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationTables" ], "xbrltype": "textBlockItemType" }, "dsgx_ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Schedule of cash settled under restricted share units.", "label": "Schedule Of Cash Settled Restricted Share Unit Plan Activity [Table Text Block]", "terseLabel": "Schedule of cash settled restricted share unit plan activity" } } }, "localname": "ScheduleOfCashSettledRestrictedShareUnitPlanActivityTableTextBlock", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "dsgx_SeniorSecuredCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the senior secured credit facility.", "label": "Senior Secured Credit Facility [Member]", "terseLabel": "Senior secured credit facility" } } }, "localname": "SeniorSecuredCreditFacilityMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Intrinsic value of equity-based compensation awards exercisable. Excludes stock and unit options.", "label": "Exercisable, Aggregate Intrinsic Value, PSU" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueExercisable", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of units exercisable other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Exercisable, number of units (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisable", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value of exercisable awards on equity-based plans excluding option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, revenue or profit achievement stock award plan) for which the employer is contingently obligated to issue equity instruments or transfer assets to an employee who has not yet satisfied service or performance criteria necessary to gain title to proceeds from the sale of the award or underlying shares or units.", "label": "Exercisable, PSU weighted-average granted date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageGrantDateFairValue", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for vested portions of equity instruments other than options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Exercisable, Weighted-Average Remaining Contractual, PSU (Year)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisableWeightedAverageRemainingContractualTerm", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "durationItemType" }, "dsgx_ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the weighted average grant date fair value of units issued during the period.", "label": "Performance units issued, weighted-average granted date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardUnitsIssuedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "dsgx_ShareholderApprovedStockOptionsPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents Company's shareholder approved stock option plan.", "label": "Shareholder-Approved Stock Options Plan [Member]" } } }, "localname": "ShareholderApprovedStockOptionsPlanMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "domainItemType" }, "dsgx_ShelfProspectusMaximumAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The maximum amount related to the shelf prospectus.", "label": "Shelf Prospectus, Maximum Amount", "terseLabel": "Shelf Prospectus, Maximum Amount" } } }, "localname": "ShelfProspectusMaximumAmount", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "monetaryItemType" }, "dsgx_ShelfProspectusMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the short-form base shelf prospectus entered into by the company.", "label": "2022 Base Shelf Prospectus" } } }, "localname": "ShelfProspectusMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "domainItemType" }, "dsgx_ShelfProspectusPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The duration of the shelf prospectus.", "label": "Shelf Prospectus Period (Month)", "terseLabel": "Shelf Prospectus Period (Month)" } } }, "localname": "ShelfProspectusPeriod", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "durationItemType" }, "dsgx_ShiptrackMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to ShipTrack.", "label": "ShipTrack [Member]", "terseLabel": "ShipTrack" } } }, "localname": "ShiptrackMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "domainItemType" }, "dsgx_StatementSignificantAccountingPoliciesTablesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "No definition available.", "label": "Note 2 - Basis of Presentation" } } }, "localname": "StatementSignificantAccountingPoliciesTablesAbstract", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of shares issued from the exercise of stock options and share units.", "label": "Stock options and share units exercised (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesOptionsAndShareUnitsExercised", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" ], "xbrltype": "sharesItemType" }, "dsgx_StockOptionsTreasuryStockMethodMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the treasury stock.", "label": "Stock Options, Treasury Stock Method [Member]", "terseLabel": "Treasury stock method" } } }, "localname": "StockOptionsTreasuryStockMethodMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "domainItemType" }, "dsgx_SupplyVisionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to supply vision.", "label": "Supply Vision [Member]", "terseLabel": "Supply Vision" } } }, "localname": "SupplyVisionMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_TaxYear2024Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents tax year 2024.", "label": "2025", "terseLabel": "2024" } } }, "localname": "TaxYear2024Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_TaxYear2025Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents tax year 2025.", "label": "2026", "terseLabel": "2025" } } }, "localname": "TaxYear2025Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_TaxYear2026Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to tax year 2026.", "label": "2027", "terseLabel": "2026" } } }, "localname": "TaxYear2026Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_TaxYear2027Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to related to tax year 2027.", "label": "Tax Year 2027 [Member]", "terseLabel": "2027" } } }, "localname": "TaxYear2027Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_TaxYear2028Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to related to tax year 2028.", "label": "Tax Year 2028 [Member]", "terseLabel": "2028" } } }, "localname": "TaxYear2028Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "dsgx_The2019AcquisitionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the 2019 acquisitions (Aljex, Velocity Mail, and PinPoint).", "label": "The 2019 Acquisitions [Member]" } } }, "localname": "The2019AcquisitionsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "domainItemType" }, "dsgx_The2020AcquisitionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the 2020 acquisitions (Visual Compliance, CORE, STEPcom, and BestTransport).", "label": "The 2020 Acquisitions [Member]" } } }, "localname": "The2020AcquisitionsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "domainItemType" }, "dsgx_The2020BaseShelfProspectusMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the 2020 Base Shelf Prospectus.", "label": "The 2020 Base Shelf Prospectus", "terseLabel": "2020 Base Shelf Prospectus" } } }, "localname": "The2020BaseShelfProspectusMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "domainItemType" }, "dsgx_The2021AcquisitionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the 2021 acquisitions.", "label": "The 2021 Acquisitions [Member]" } } }, "localname": "The2021AcquisitionsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "domainItemType" }, "dsgx_The2022AcquisitionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the 2022 acquisitions.", "label": "The 2022 Acquisitions [Member]" } } }, "localname": "The2022AcquisitionsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "domainItemType" }, "dsgx_TheAccountingStandardsUpdate201616Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the Accounting Standards Update 2016-16.", "label": "The Accounting Standards Update 2016-16 [Member]" } } }, "localname": "TheAccountingStandardsUpdate201616Member", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "dsgx_VelocityMailMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to Velocity Mail, LLC.", "label": "Velocity Mail [Member]" } } }, "localname": "VelocityMailMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "domainItemType" }, "dsgx_VisualComplianceMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the acquisition of substantially all of the assets of the businesses run by the Management Systems Resources Inc. group of companies (collectively, \"Visual Compliance\"), a provider of software solutions and services to automate customs, trade and fiscal compliance processes including denied and restricted party screening processes and export licensing.", "label": "Visual Compliance [Member]" } } }, "localname": "VisualComplianceMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" ], "xbrltype": "domainItemType" }, "dsgx_VitaDexSolutionsLLCMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to VitaDex Solutions, LLC.", "label": "VitaDex Solutions, LLC" } } }, "localname": "VitaDexSolutionsLLCMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "dsgx_VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to accounting changes.", "label": "Voluntary Change Elected to Adopt in Accounting for Deferred Revenue for Income Tax Purposes in the United States [Member]" } } }, "localname": "VoluntaryChangeElectedToAdoptInAccountingForDeferredRevenueForIncomeTaxPurposesInUnitedStatesMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "dsgx_WindigoLogisticsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to windigo logistics.", "label": "Windigo Logistics [Member]", "terseLabel": "GroundCloud" } } }, "localname": "WindigoLogisticsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "dsgx_XpsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represent the member information pertaining to XPS.", "label": "XPS [Member]", "terseLabel": "XPS" } } }, "localname": "XpsMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "domainItemType" }, "dsgx_XpsTechnologyLlcMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to XPS Technology LLC.", "label": "Xps Technology Llc [Member]", "terseLabel": "XPS" } } }, "localname": "XpsTechnologyLlcMember", "nsuri": "http://www.descartes.com/20230131", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "domainItemType" }, "dsgx_statement-statement-note-15-share-capital-common-shares-outstanding-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 15 - Share Capital - Common Shares Outstanding (Details)" } } }, "localname": "statement-statement-note-15-share-capital-common-shares-outstanding-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-15-share-capital-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 15 - Share Capital" } } }, "localname": "statement-statement-note-15-share-capital-tables", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)" } } }, "localname": "statement-statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)" } } }, "localname": "statement-statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)" } } }, "localname": "statement-statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)" } } }, "localname": "statement-statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)" } } }, "localname": "statement-statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)" } } }, "localname": "statement-statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)" } } }, "localname": "statement-statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "dsgx_statement-statement-note-18-income-taxes-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 18 - Income Taxes" } } }, "localname": "statement-statement-note-18-income-taxes-tables", "nsuri": "http://www.descartes.com/20230131", "xbrltype": "stringItemType" }, "srt_AsiaPacificMember": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Asia Pacific", "terseLabel": "Asia Pacific" } } }, "localname": "AsiaPacificMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" ], "xbrltype": "domainItemType" }, "srt_MaximumMember": { "auth_ref": [ "r376", "r377", "r378", "r379", "r468", "r648", "r667", "r694", "r695", "r714", "r724", "r732", "r788", "r835", "r836", "r837", "r838", "r839", "r840" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "terseLabel": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureLeasesDetails", "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r376", "r377", "r378", "r379", "r468", "r648", "r667", "r694", "r695", "r714", "r724", "r732", "r788", "r835", "r836", "r837", "r838", "r839", "r840" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "terseLabel": "Minimum" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r323", "r650", "r717", "r730", "r783", "r784", "r791", "r842" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r323", "r650", "r717", "r730", "r783", "r784", "r791", "r842" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r376", "r377", "r378", "r379", "r461", "r468", "r500", "r501", "r502", "r647", "r648", "r667", "r694", "r695", "r714", "r724", "r732", "r779", "r788", "r836", "r837", "r838", "r839", "r840" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureLeasesDetails", "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r376", "r377", "r378", "r379", "r461", "r468", "r500", "r501", "r502", "r647", "r648", "r667", "r694", "r695", "r714", "r724", "r732", "r779", "r788", "r836", "r837", "r838", "r839", "r840" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureLeasesDetails", "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "srt_ScenarioUnspecifiedDomain": { "auth_ref": [ "r278", "r469", "r743", "r760" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]" } } }, "localname": "ScenarioUnspecifiedDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "domainItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [ "r324", "r325", "r685", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693", "r718", "r731", "r791" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r324", "r325", "r680", "r685", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693", "r718", "r731", "r791" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" ], "xbrltype": "stringItemType" }, "srt_StatementScenarioAxis": { "auth_ref": [ "r278", "r469", "r743", "r744", "r760" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]" } } }, "localname": "StatementScenarioAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "stringItemType" }, "srt_TitleOfIndividualAxis": { "auth_ref": [ "r764", "r832" ], "lang": { "en-us": { "role": { "label": "Title of Individual [Axis]" } } }, "localname": "TitleOfIndividualAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "stringItemType" }, "srt_TitleOfIndividualWithRelationshipToEntityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Title of Individual [Domain]" } } }, "localname": "TitleOfIndividualWithRelationshipToEntityDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Basis of Presentation" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_AccountingStandardsUpdate201409Member": { "auth_ref": [ "r459" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2014-09 Revenue from Contracts with Customers (Topic 606).", "label": "Accounting Standards Update 2014-09 [Member]" } } }, "localname": "AccountingStandardsUpdate201409Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountingStandardsUpdate201602Member": { "auth_ref": [ "r616" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).", "label": "Accounting Standards Update 2016-02 [Member]" } } }, "localname": "AccountingStandardsUpdate201602Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": { "auth_ref": [ "r15" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.", "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]", "terseLabel": "Accrued Liabilities" } } }, "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilities" ], "xbrltype": "textBlockItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r14", "r729" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": { "auth_ref": [ "r767" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable.", "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]", "terseLabel": "Schedule of changes in provision for credit losses" } } }, "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r229", "r329", "r330", "r699" ], "calculation": { "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, before Allowance for Credit Loss, Current", "terseLabel": "Trade accounts receivable" } } }, "localname": "AccountsReceivableGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Accounts receivable (net)", "terseLabel": "Accounts receivable (net)" } } }, "localname": "AccountsReceivableNetAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r329", "r330" ], "calculation": { "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "terseLabel": "Trade", "totalLabel": "Total" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesCurrent": { "auth_ref": [ "r2", "r187", "r200" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.", "label": "Accrued Income Taxes, Current", "terseLabel": "Income taxes payable" } } }, "localname": "AccruedIncomeTaxesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesNoncurrent": { "auth_ref": [ "r4", "r187", "r200" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.", "label": "Accrued Income Taxes, Noncurrent", "terseLabel": "INCOME TAXES PAYABLE" } } }, "localname": "AccruedIncomeTaxesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r18" ], "calculation": { "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Liabilities, Current", "terseLabel": "Accrued liabilities", "totalLabel": "Total" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Accrued Liabilities" } } }, "localname": "AccruedLiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_AccruedProfessionalFeesCurrent": { "auth_ref": [ "r18" ], "calculation": { "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Professional Fees, Current", "terseLabel": "Accrued professional fees" } } }, "localname": "AccruedProfessionalFeesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r91", "r220" ], "calculation": { "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "terseLabel": "Accumulated depreciation" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r28", "r30", "r31", "r230", "r662", "r675", "r679" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r27", "r31", "r171", "r640", "r670", "r671", "r748", "r749", "r750", "r757", "r758", "r759" ], "lang": { "en-us": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "Accumulated Other Comprehensive Income [Member]", "terseLabel": "Accumulated other comprehensive income (loss)" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "auth_ref": [ "r9" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", "label": "Additional Paid in Capital, Common Stock", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapitalCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r510", "r511", "r512", "r757", "r758", "r759", "r824" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid In Capital [Member]", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis": { "auth_ref": [ "r266", "r267", "r268", "r269" ], "lang": { "en-us": { "role": { "documentation": "Information by type of change in accounting principle. Excludes change from amendment to accounting standards.", "label": "Change in Accounting Principle, Type [Axis]" } } }, "localname": "AdjustmentsForChangeInAccountingPrincipleAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": { "auth_ref": [ "r209", "r210", "r211", "r212", "r213", "r266", "r267", "r268", "r269", "r278", "r332", "r333", "r335", "r336", "r337", "r338", "r339", "r340", "r510", "r511", "r512", "r537", "r538", "r539", "r540", "r557", "r558", "r559", "r570", "r571", "r572", "r573", "r574", "r575", "r576", "r577", "r578", "r579", "r580", "r581", "r589", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r612", "r613", "r617", "r618", "r619", "r620", "r635", "r636", "r637", "r638", "r639", "r640", "r652", "r653", "r654", "r668", "r669", "r670", "r671", "r672", "r673", "r674", "r675", "r676", "r677", "r678", "r679" ], "lang": { "en-us": { "role": { "documentation": "Information by amendment to accounting standards.", "label": "Accounting Standards Update [Axis]" } } }, "localname": "AdjustmentsForNewAccountingPronouncementsAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r131", "r132", "r471" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.", "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition", "terseLabel": "Stock-based compensation expense" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net income to cash provided by operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AllocatedShareBasedCompensationExpense": { "auth_ref": [ "r504" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.", "label": "Stock-based compensation expense", "terseLabel": "Effect on net income" } } }, "localname": "AllocatedShareBasedCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r231", "r331", "r341" ], "calculation": { "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Accounts Receivable, Allowance for Credit Loss, Current", "negatedLabel": "Less: Provision for credit losses", "periodEndLabel": "Balance", "periodStartLabel": "Balance" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableDetails", "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": { "auth_ref": [ "r343" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.", "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff", "negatedLabel": "Write-offs charged against the provision" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r54", "r79", "r85" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 4.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization Of Intangible Assets", "terseLabel": "Amortization of intangible assets" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r290" ], "lang": { "en-us": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "terseLabel": "Antidilutive securities excluded from computation of earnings per share, amount (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "auth_ref": [ "r63" ], "lang": { "en-us": { "role": { "documentation": "Information by type of antidilutive security.", "label": "Antidilutive Securities [Axis]" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "auth_ref": [ "r63" ], "lang": { "en-us": { "role": { "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.", "label": "Antidilutive Securities, Name [Domain]" } } }, "localname": "AntidilutiveSecuritiesNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AssetUnderConstructionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Asset in process of being built.", "label": "Asset under Construction [Member]", "terseLabel": "Assets under construction" } } }, "localname": "AssetUnderConstructionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r185", "r199", "r224", "r259", "r310", "r314", "r319", "r334", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r564", "r566", "r588", "r729", "r786", "r787", "r833" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "totalLabel": "TOTAL ASSETS" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "ASSETS" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r215", "r235", "r259", "r334", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r564", "r566", "r588", "r729", "r786", "r787", "r833" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "TOTAL CURRENT ASSETS" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CURRENT ASSETS", "terseLabel": "CURRENT ASSETS" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r475", "r476", "r477", "r479", "r480", "r481", "r482", "r483", "r484", "r485", "r486", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r494", "r495", "r496", "r499", "r500", "r501", "r502", "r503" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Basis of Presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r555", "r722", "r723" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r148", "r149", "r555", "r722", "r723" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails", "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails", "http://www.descartes.com/role/DisclosureGoodwillDetails", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued": { "auth_ref": [ "r164" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of equity interests issued or issuable to acquire entity.", "label": "Acquisitions (in shares)", "terseLabel": "Business Acquisition, Equity Interest Issued or Issuable, Number of Shares (in shares)" } } }, "localname": "BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_BusinessAcquisitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Business Acquisition [Line Items]", "terseLabel": "Acquisition" } } }, "localname": "BusinessAcquisitionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic": { "auth_ref": [ "r822", "r823" ], "lang": { "en-us": { "role": { "documentation": "The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.", "label": "Business Acquisition, Pro Forma Earnings Per Share, Basic", "verboseLabel": "Basic (in dollars per share)" } } }, "localname": "BusinessAcquisitionProFormaEarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted": { "auth_ref": [ "r822", "r823" ], "lang": { "en-us": { "role": { "documentation": "The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.", "label": "Business Acquisition, Pro Forma Earnings Per Share, Diluted", "verboseLabel": "Diluted (in dollars per share)" } } }, "localname": "BusinessAcquisitionProFormaEarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": { "auth_ref": [ "r822", "r823" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.", "label": "Business Acquisition, Pro Forma Information [Table Text Block]", "terseLabel": "Business acquisition on pro forma information" } } }, "localname": "BusinessAcquisitionProFormaInformationTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": { "auth_ref": [ "r552", "r553" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.", "label": "Business Acquisition, Pro Forma Net Income (Loss)", "verboseLabel": "Net income" } } }, "localname": "BusinessAcquisitionsProFormaNetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessAcquisitionsProFormaRevenue": { "auth_ref": [ "r552", "r553" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.", "label": "Business Acquisition, Pro Forma Revenue", "verboseLabel": "Revenues" } } }, "localname": "BusinessAcquisitionsProFormaRevenue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquiredReceivablesEstimatedUncollectible": { "auth_ref": [ "r152" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the best estimate at the acquisition date of the contractual cash flows not expected to be collected, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.", "label": "Business Combination Acquired Receivables Estimated Uncollectible", "terseLabel": "Estimate of contractual cash flows not expected to be collected" } } }, "localname": "BusinessCombinationAcquiredReceivablesEstimatedUncollectible", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquiredReceivablesFairValue": { "auth_ref": [ "r554" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value of acquired receivable from business combination, excluding certain loans and debt securities acquired in transfer.", "label": "Business Combination, Acquired Receivable, Fair Value", "verboseLabel": "Fair value of acquired trade receivables" } } }, "localname": "BusinessCombinationAcquiredReceivablesFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount": { "auth_ref": [ "r151" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the gross contractual amounts receivable, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.", "label": "Business Combination Acquired Receivables Gross Contractual Amount", "verboseLabel": "Gross contractual amount of trade receivables acquired" } } }, "localname": "BusinessCombinationAcquiredReceivablesGrossContractualAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquisitionRelatedCosts": { "auth_ref": [ "r146" ], "calculation": { "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": { "order": 3.0, "parentTag": "us-gaap_OtherCostAndExpenseOperating", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.", "label": "Business Combination, Acquisition Related Costs", "verboseLabel": "Acquisition-related costs" } } }, "localname": "BusinessCombinationAcquisitionRelatedCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Acquisitions" } } }, "localname": "BusinessCombinationAndAssetAcquisitionAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationConsiderationTransferred1": { "auth_ref": [ "r160", "r161", "r163" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.", "label": "Business Combination, Consideration Transferred", "totalLabel": "Purchase price consideration" } } }, "localname": "BusinessCombinationConsiderationTransferred1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable": { "auth_ref": [ "r160", "r161" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of equity interests of the acquirer, including instruments or interests issued or issuable in consideration for the business combination.", "label": "Common shares issued" } } }, "localname": "BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": { "auth_ref": [ "r158", "r160", "r161", "r561" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 3.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.", "label": "Contingent consideration", "terseLabel": "Contingent consideration" } } }, "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": { "auth_ref": [ "r563", "r752" ], "calculation": { "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": { "order": 2.0, "parentTag": "us-gaap_OtherCostAndExpenseOperating", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.", "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability", "terseLabel": "Contingent consideration accretion and adjustments" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh": { "auth_ref": [ "r165" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "For contingent consideration arrangements recognized in connection with a business combination, this element represents an estimate of the high-end of the potential range (undiscounted) of the consideration which may be paid.", "label": "Business Combination, Contingent Consideration Arrangements, Range of Outcomes, Value, High", "terseLabel": "Maximum potential performance-based contingent consideration", "verboseLabel": "Maximum potential performance-based contingent consideration" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsRangeOfOutcomesValueHigh", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationLiability": { "auth_ref": [ "r159", "r162", "r562" ], "calculation": { "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.", "label": "Business Combination, Contingent Consideration, Liability", "terseLabel": "Contingent consideration", "verboseLabel": "Accrued contingent acquisition consideration" } } }, "localname": "BusinessCombinationContingentConsiderationLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationLiabilityMeasurementInput": { "auth_ref": [ "r584" ], "lang": { "en-us": { "role": { "documentation": "Value of input used to measure contingent consideration liability from business combination.", "label": "Business Combination, Contingent Consideration, Liability, Measurement Input", "terseLabel": "Estimated fair value consideration percentage" } } }, "localname": "BusinessCombinationContingentConsiderationLiabilityMeasurementInput", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "decimalItemType" }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "auth_ref": [ "r166", "r556" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).", "label": "Business Combination Disclosure [Text Block]", "terseLabel": "Acquisitions" } } }, "localname": "BusinessCombinationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitions" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual": { "auth_ref": [ "r147" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This element represents the amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.", "label": "Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual", "verboseLabel": "Amount of net income recognized" } } }, "localname": "BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": { "auth_ref": [ "r147" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.", "label": "Business Combination Pro Forma Information Revenue Of Acquire Since Acquisition Date Actual", "verboseLabel": "Amount of revenue recognized" } } }, "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation": { "auth_ref": [ "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 7.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lease obligation assumed in business combination.", "label": "Business Combination Recognized Identifiable Asset Acquired And Liability Assumed Operating Lease Obligation", "negatedLabel": "Lease obligations" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets": { "auth_ref": [ "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 1.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets", "terseLabel": "Current assets, excluding cash acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities": { "auth_ref": [ "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 5.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.", "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities", "negatedLabel": "Current liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": { "auth_ref": [ "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 6.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.", "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Liabilities Deferred Revenue", "negatedLabel": "Deferred revenue" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": { "auth_ref": [ "r153" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.", "label": "Deferred income tax asset" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "auth_ref": [ "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 8.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.", "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Deferred Tax Liabilities", "negatedLabel": "Deferred income tax liability" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities": { "auth_ref": [ "r150", "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 10.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of financial liabilities assumed (as defined) which have been recognized as of the acquisition date.", "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Financial Liabilities", "negatedLabel": "Debt" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedFinancialLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "auth_ref": [ "r150", "r153" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.", "label": "Finite-lived intangible assets acquired", "terseLabel": "Finite-lived intangible assets acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Net [Abstract]", "terseLabel": "Allocated to:" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNetAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": { "auth_ref": [ "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 4.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Other long-term assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": { "auth_ref": [ "r150", "r153" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 2.0, "parentTag": "dsgx_BusinessCombinationRecognizedIdentifiableTangibleAssetsAcquiredAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment", "terseLabel": "Property and equipment" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r153" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net", "terseLabel": "Goodwill" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationsPolicy": { "auth_ref": [ "r144" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.", "label": "Business Combinations Policy [Policy Text Block]", "terseLabel": "Business combinations" } } }, "localname": "BusinessCombinationsPolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": { "auth_ref": [ "r0", "r61", "r69" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Business Description and Basis of Presentation [Text Block]", "terseLabel": "Description of the Business" } } }, "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureDescriptionOfBusiness" ], "xbrltype": "textBlockItemType" }, "us-gaap_CanadaRevenueAgencyMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax department of the government of Canada.", "label": "Canada Revenue", "terseLabel": "Canada" } } }, "localname": "CanadaRevenueAgencyMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CapitalizedContractCostAmortization": { "auth_ref": [ "r348" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "Capitalized Contract Cost, Amortization", "terseLabel": "Capitalized contract cost, amortization" } } }, "localname": "CapitalizedContractCostAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CapitalizedContractCostNet": { "auth_ref": [ "r347" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "Capitalized Contract Cost, Net", "terseLabel": "Capitalized contract cost, net, Total" } } }, "localname": "CapitalizedContractCostNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAcquiredFromAcquisition": { "auth_ref": [ "r44" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business).", "label": "Cash Acquired from Acquisition", "terseLabel": "Cash acquired" } } }, "localname": "CashAcquiredFromAcquisition", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r56", "r218", "r697" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash and Cash Equivalents, at Carrying Value", "terseLabel": "Cash" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "auth_ref": [ "r57" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.", "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash" } } }, "localname": "CashAndCashEquivalentsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r51", "r56", "r59" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "periodEndLabel": "Cash, end of year", "periodStartLabel": "Cash, beginning of year" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r51", "r179" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Increase in cash" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashFlowSupplementalDisclosuresTextBlock": { "auth_ref": [ "r60" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "Cash Flow, Supplemental Disclosures [Text Block]", "terseLabel": "Supplemental Cash Flow Information" } } }, "localname": "CashFlowSupplementalDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_ChangeInAccountingPrincipleMember": { "auth_ref": [ "r266", "r267", "r268", "r269" ], "lang": { "en-us": { "role": { "documentation": "Change in accounting principle. Excludes change from amendment to accounting standards.", "label": "Change in Accounting Principle, Type [Domain]" } } }, "localname": "ChangeInAccountingPrincipleMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ClassOfStockDomain": { "auth_ref": [ "r226", "r227", "r228", "r259", "r281", "r285", "r287", "r289", "r297", "r298", "r334", "r380", "r382", "r383", "r384", "r387", "r388", "r416", "r417", "r420", "r424", "r431", "r588", "r696", "r742", "r753", "r761" ], "lang": { "en-us": { "role": { "documentation": "Share of stock differentiated by the voting rights the holder receives. Examples include, but are not limited to, common stock, redeemable preferred stock, nonredeemable preferred stock, and convertible stock.", "label": "Class of Stock [Domain]" } } }, "localname": "ClassOfStockDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "domainItemType" }, "us-gaap_ClassOfStockLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Class of Stock [Line Items]", "terseLabel": "Share Capital" } } }, "localname": "ClassOfStockLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails", "http://www.descartes.com/role/DisclosureShareCapitalTables" ], "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r22", "r191", "r204" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and Contingencies", "terseLabel": "COMMITMENTS, CONTINGENCIES AND GUARANTEES" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r96", "r373", "r374", "r681", "r785" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments, Contingencies and Guarantees" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommitmentsContingenciesAndGuaranteesTextBlock": { "auth_ref": [ "r96", "r99", "r785" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments, contingencies, and guarantees.", "label": "Commitments Contingencies and Guarantees [Text Block]", "terseLabel": "Commitments, Contingencies and Guarantees" } } }, "localname": "CommitmentsContingenciesAndGuaranteesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuarantees" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r757", "r758", "r824" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]", "terseLabel": "Common shares" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation", "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockSharesAuthorizedUnlimited": { "auth_ref": [ "r23" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the number of common shares permitted to be issued by an entity's charter and bylaws is unlimited. The acceptable value is \"Unlimited\".", "label": "Common Stock, Shares Authorized, Unlimited [Fixed List]", "terseLabel": "Common shares - unlimited shares authorized" } } }, "localname": "CommonStockSharesAuthorizedUnlimited", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "authorizedUnlimitedItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r8" ], "lang": { "en-us": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "terseLabel": "Common shares - Shares issued (in shares)" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r8", "r104" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "periodEndLabel": "Balance, end of year (in shares)", "periodStartLabel": "Balance, beginning of year (in shares)", "terseLabel": "Common shares - Shares outstanding (in shares)" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r8", "r729" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "terseLabel": "Common shares - unlimited shares authorized; Shares issued and outstanding totaled 84,820,100 at January 31, 2023 (January 31, 2022 - 84,756,210)" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r32", "r240", "r242", "r249", "r658", "r664" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "COMPREHENSIVE INCOME" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComputerEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.", "label": "Computer Equipment [Member]", "terseLabel": "Computer equipment and software" } } }, "localname": "ComputerEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConsolidationPolicyTextBlock": { "auth_ref": [ "r169", "r702" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.", "label": "Consolidation, Policy [Policy Text Block]", "terseLabel": "Basis of consolidation" } } }, "localname": "ConsolidationPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r789" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.", "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable", "terseLabel": "Schedule of the changes in the contract assets balance" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetNet": { "auth_ref": [ "r433", "r435", "r456" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "Contract with Customer, Asset, after Allowance for Credit Loss", "periodEndLabel": "Ending balance", "periodStartLabel": "Beginning balance" } } }, "localname": "ContractWithCustomerAssetNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable": { "auth_ref": [ "r716" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.", "label": "Contract with Customer, Asset, Reclassified to Receivable", "negatedLabel": "Transfers to trade receivables from contract assets" } } }, "localname": "ContractWithCustomerAssetReclassifiedToReceivable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r433", "r434", "r456" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "Contract with Customer, Liability", "periodEndLabel": "Ending balance", "periodStartLabel": "Beginning balance" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": { "auth_ref": [ "r715" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.", "label": "Increases from business combinations, net", "terseLabel": "Increases from business combinations, net" } } }, "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "auth_ref": [ "r433", "r434", "r456" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.", "label": "Long-term", "terseLabel": "Long-term" } } }, "localname": "ContractWithCustomerLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r457" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.", "label": "Recognition of previously deferred revenue", "terseLabel": "Recognition of previously deferred revenue" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r39", "r650" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", "label": "Cost Of Goods And Services Sold", "terseLabel": "COST OF REVENUES" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing cost of sales.", "label": "Cost of Sales [Member]", "terseLabel": "Cost of revenues" } } }, "localname": "CostOfSalesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CostsAndExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Costs And Expenses [Abstract]", "terseLabel": "EXPENSES" } } }, "localname": "CostsAndExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_CreditFacilityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Axis]" } } }, "localname": "CreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CreditFacilityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Domain]" } } }, "localname": "CreditFacilityDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CurrentIncomeTaxExpenseBenefit": { "auth_ref": [ "r143", "r534", "r544", "r756" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.", "label": "Current income tax expense", "verboseLabel": "Current" } } }, "localname": "CurrentIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_CustomerRelationshipsMember": { "auth_ref": [ "r156" ], "lang": { "en-us": { "role": { "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.", "label": "Customer Relationships [Member]", "terseLabel": "Customer agreements and relationships" } } }, "localname": "CustomerRelationshipsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DebtDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Long-Term Debt" } } }, "localname": "DebtDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DebtDisclosureTextBlock": { "auth_ref": [ "r100", "r257", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r405", "r412", "r413", "r415" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.", "label": "Debt Disclosure [Text Block]", "terseLabel": "Long-Term Debt" } } }, "localname": "DebtDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebt" ], "xbrltype": "textBlockItemType" }, "us-gaap_DebtInstrumentAxis": { "auth_ref": [ "r1", "r2", "r3", "r186", "r189", "r198", "r262", "r389", "r390", "r391", "r392", "r393", "r395", "r401", "r402", "r403", "r404", "r406", "r407", "r408", "r409", "r410", "r411", "r615", "r709", "r710", "r711", "r712", "r713", "r754" ], "lang": { "en-us": { "role": { "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.", "label": "Debt Instrument [Axis]" } } }, "localname": "DebtInstrumentAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.", "label": "Debt Instrument, Basis Spread on Variable Rate", "terseLabel": "Interest rates under the revolving operating portion" } } }, "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Debt Instrument [Line Items]", "terseLabel": "Long-Term Debt" } } }, "localname": "DebtInstrumentLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentNameDomain": { "auth_ref": [ "r20", "r262", "r389", "r390", "r391", "r392", "r393", "r395", "r401", "r402", "r403", "r404", "r406", "r407", "r408", "r409", "r410", "r411", "r615", "r709", "r710", "r711", "r712", "r713", "r754" ], "lang": { "en-us": { "role": { "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.", "label": "Debt Instrument, Name [Domain]" } } }, "localname": "DebtInstrumentNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DebtInstrumentTable": { "auth_ref": [ "r20", "r105", "r108", "r109", "r110", "r180", "r181", "r183", "r195", "r262", "r389", "r390", "r391", "r392", "r393", "r395", "r401", "r402", "r403", "r404", "r406", "r407", "r408", "r409", "r410", "r411", "r414", "r615", "r709", "r710", "r711", "r712", "r713", "r754" ], "lang": { "en-us": { "role": { "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.", "label": "Schedule of Long-term Debt Instruments [Table]" } } }, "localname": "DebtInstrumentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Debt Instrument, Term", "terseLabel": "Maturity term (year)" } } }, "localname": "DebtInstrumentTerm", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "durationItemType" }, "us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate carrying value as of the balance sheet date of the liabilities for stock option plans and other equity-based compensation arrangements.", "label": "us-gaap_DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent", "terseLabel": "Deferred Compensation Share-based Arrangements, Liability, Current and Noncurrent" } } }, "localname": "DeferredCompensationSharebasedArrangementsLiabilityCurrentAndNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r519", "r520" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "verboseLabel": "DEFERRED INCOME TAXES" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r54", "r143", "r535", "r543", "r544", "r756" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "terseLabel": "Deferred tax expense", "verboseLabel": "Deferred" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilities": { "auth_ref": [ "r5", "r6", "r188", "r197", "r529" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.", "label": "us-gaap_DeferredIncomeTaxLiabilities", "negatedTotalLabel": "Total deferred income tax liabilities" } } }, "localname": "DeferredIncomeTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r519", "r520" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "verboseLabel": "DEFERRED INCOME TAXES" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRevenueCurrent": { "auth_ref": [ "r745" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.", "label": "Deferred Revenue, Current", "terseLabel": "Deferred revenue", "verboseLabel": "Current" } } }, "localname": "DeferredRevenueCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsChangesInDeferredRevenueAndContractAssetsDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRevenueNoncurrent": { "auth_ref": [ "r746" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.", "label": "Deferred Revenue, Noncurrent", "terseLabel": "DEFERRED REVENUE" } } }, "localname": "DeferredRevenueNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGross": { "auth_ref": [ "r530" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "dsgx_DeferredTaxAssetsNetBeforeValuationAllowance", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "us-gaap_DeferredTaxAssetsGross", "totalLabel": "Total deferred income tax assets" } } }, "localname": "DeferredTaxAssetsGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": { "auth_ref": [ "r141", "r821" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.", "label": "Accumulated net operating losses" } } }, "localname": "DeferredTaxAssetsOperatingLossCarryforwards", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.", "label": "Difference between tax and accounting basis of property and equipment" } } }, "localname": "DeferredTaxAssetsPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": { "auth_ref": [ "r139", "r141", "r821" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.", "label": "Research and development expenditures and tax credits" } } }, "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": { "auth_ref": [ "r141", "r821" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.", "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "terseLabel": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities": { "auth_ref": [ "r141", "r821" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from accrued liabilities.", "label": "Accrued liabilities not currently deductible" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r531" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "dsgx_DeferredTaxAssetsLiabilitesNet1", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.", "label": "us-gaap_DeferredTaxAssetsValuationAllowance", "negatedLabel": "Valuation allowance" } } }, "localname": "DeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": { "auth_ref": [ "r141", "r821" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.", "label": "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets", "negatedLabel": "Difference between tax and accounting basis of intangible assets" } } }, "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesOther": { "auth_ref": [ "r141", "r821" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.", "label": "us-gaap_DeferredTaxLiabilitiesOther", "negatedLabel": "Temporary difference on equity derivative" } } }, "localname": "DeferredTaxLiabilitiesOther", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": { "auth_ref": [ "r141", "r821" ], "calculation": { "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.", "label": "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment", "negatedLabel": "Difference between tax and accounting basis of property and equipment" } } }, "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r54", "r89" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.", "label": "Depreciation", "terseLabel": "Depreciation" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeAssets": { "auth_ref": [ "r236", "r237", "r587", "r700" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.", "label": "Derivative Asset", "terseLabel": "Equity derivative contracts" } } }, "localname": "DerivativeAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Derivative Instruments and Hedging Activities Disclosures [Line Items]", "terseLabel": "Fair Value Measurements" } } }, "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about derivatives and hedging activities.", "label": "Derivative Instruments and Hedging Activities Disclosures [Table]" } } }, "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DesignatedAsHedgingInstrumentMember": { "auth_ref": [ "r172" ], "lang": { "en-us": { "role": { "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).", "label": "Designated as Hedging Instrument [Member]" } } }, "localname": "DesignatedAsHedgingInstrumentMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DevelopedTechnologyRightsMember": { "auth_ref": [ "r157" ], "lang": { "en-us": { "role": { "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property.", "label": "Developed Technology Rights [Member]", "terseLabel": "Existing technology" } } }, "localname": "DevelopedTechnologyRightsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r474", "r505", "r506", "r508", "r514", "r725" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Share-based Payment Arrangement [Text Block]", "terseLabel": "Stock-Based Compensation Plans" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlans" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stock-Based Compensation Plans" } } }, "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DomesticCountryMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.", "label": "Domestic Tax Authority [Member]", "terseLabel": "Domestic tax authority" } } }, "localname": "DomesticCountryMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EMEAMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Regions of Europe, Middle East and Africa.", "label": "Europe, Middle-East and Africa", "terseLabel": "Europe, Middle-East and Africa" } } }, "localname": "EMEAMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "EARNINGS PER SHARE", "verboseLabel": "Earnings per share" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsProFormaResultsOfOperationsDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r250", "r270", "r271", "r272", "r273", "r274", "r279", "r281", "r287", "r288", "r289", "r293", "r579", "r580", "r659", "r665", "r705" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earning Per Share (Basic)", "terseLabel": "Basic" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareBasicLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]", "terseLabel": "Earnings Per Share" } } }, "localname": "EarningsPerShareBasicLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r250", "r270", "r271", "r272", "r273", "r274", "r281", "r287", "r288", "r289", "r293", "r579", "r580", "r659", "r665", "r705" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earning Per Share (Diluted)", "terseLabel": "Diluted" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerSharePolicyTextBlock": { "auth_ref": [ "r63", "r64" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.", "label": "Earnings Per Share, Policy [Policy Text Block]", "terseLabel": "Earnings per share" } } }, "localname": "EarningsPerSharePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r290", "r291", "r292", "r294" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "terseLabel": "Earnings Per Share" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r827" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "terseLabel": "Effect of foreign exchange rate changes on cash" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r522" ], "lang": { "en-us": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Effective Income Tax Rate Reconciliation, Percent", "terseLabel": "Percentage of current income tax expense" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r260", "r522", "r545" ], "lang": { "en-us": { "role": { "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).", "label": "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "terseLabel": "Combined basic Canadian statutory rates" } } }, "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r18" ], "calculation": { "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Employee-related Liabilities, Current", "terseLabel": "Accrued compensation and benefits" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r507" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r507" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": { "auth_ref": [ "r504" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.", "label": "Share-Based Payment Arrangement, Expense, Tax Benefit", "terseLabel": "Tax benefit realized in connection with stock options exercised" } } }, "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": { "auth_ref": [ "r509" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement.", "label": "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions", "terseLabel": "Share-based Payment Arrangement, Exercise of Option, Tax Benefit" } } }, "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.", "label": "Share-based Payment Arrangement, Option [Member]", "terseLabel": "Stock options" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tangible personal property used to produce goods and services.", "label": "Equipment [Member]" } } }, "localname": "EquipmentMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share Capital" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r104", "r211", "r244", "r245", "r246", "r263", "r264", "r265", "r267", "r275", "r277", "r296", "r338", "r432", "r510", "r511", "r512", "r539", "r540", "r578", "r602", "r603", "r604", "r605", "r606", "r609", "r640", "r670", "r671", "r672" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Fair Value Measurement Inputs and Valuation Techniques [Line Items]", "terseLabel": "Fair Value Measurements" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable": { "auth_ref": [ "r173" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about input and valuation technique used to measure fair value and change in valuation approach and technique for each separate class of asset and liability measured on recurring and nonrecurring basis.", "label": "Fair Value Measurement Inputs and Valuation Techniques [Table]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisValuationTechniquesTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]", "terseLabel": "Fair value measurements in Level 3 of the fair value inputs" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable": { "auth_ref": [ "r174", "r176" ], "lang": { "en-us": { "role": { "documentation": "Schedule of information required and determined to be provided for purposes of reconciling beginning and ending balances of fair value measurements of assets using significant unobservable inputs (level 3). Such reconciliation, separately presenting changes during the period, at a minimum, may include, but is not limited to: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets) and gains or losses recognized in other comprehensive income, and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of level 3 (for example, transfers due to changes in the observability of significant inputs), by class of asset.", "label": "Fair Value, Assets Measured on Recurring Basis, Unobservable Input Reconciliation [Table]" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r403", "r462", "r463", "r464", "r465", "r466", "r467", "r582", "r644", "r645", "r646", "r710", "r711", "r719", "r720", "r721" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value Hierarchy and NAV [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Fair Value Measurements" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r586" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.", "label": "Fair Value Disclosures [Text Block]", "terseLabel": "Fair Value Measurements" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurements" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r403", "r462", "r467", "r582", "r644", "r719", "r720", "r721" ], "lang": { "en-us": { "role": { "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date.", "label": "Fair Value, Inputs, Level 1 [Member]", "terseLabel": "Level 1" } } }, "localname": "FairValueInputsLevel1Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r403", "r462", "r467", "r582", "r645", "r710", "r711", "r719", "r720", "r721" ], "lang": { "en-us": { "role": { "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.", "label": "Fair Value, Inputs, Level 2 [Member]", "terseLabel": "Level 2" } } }, "localname": "FairValueInputsLevel2Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r403", "r462", "r463", "r464", "r465", "r466", "r467", "r582", "r646", "r710", "r711", "r719", "r720", "r721" ], "lang": { "en-us": { "role": { "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Inputs, Level 3 [Member]", "terseLabel": "Level 3" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": { "auth_ref": [ "r174", "r176" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability.", "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]", "terseLabel": "Schedule of changes in fair value measurements" } } }, "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings": { "auth_ref": [ "r585" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) recognized in income from liability measured at fair value on recurring basis using unobservable input (level 3).", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Gain (Loss) Included in Earnings", "terseLabel": "Charges through profit or loss" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityGainLossIncludedInEarnings", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases": { "auth_ref": [ "r175" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases", "terseLabel": "Increase from acquisitions" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": { "auth_ref": [ "r175" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements", "terseLabel": "Cash payments" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": { "auth_ref": [ "r174" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value", "periodEndLabel": "Balance at the end", "periodStartLabel": "Balance at the beginning" } } }, "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r403", "r462", "r463", "r464", "r465", "r466", "r467", "r644", "r645", "r646", "r710", "r711", "r719", "r720", "r721" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy and NAV [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsChangesInFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueOfFinancialInstrumentsPolicy": { "auth_ref": [ "r177", "r178" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.", "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]", "terseLabel": "Financial instruments" } } }, "localname": "FairValueOfFinancialInstrumentsPolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Finite-Lived Intangible Asset, Useful Life", "terseLabel": "Acquired intangible assets estimated useful lives (Year)" } } }, "localname": "FiniteLivedIntangibleAssetUsefulLife", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r222", "r366" ], "calculation": { "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "terseLabel": "Intangible assets, amortization cost" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "terseLabel": "Thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r86" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "terseLabel": "2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.", "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "auth_ref": [ "r86" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five", "terseLabel": "2028" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r86" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four", "terseLabel": "2027" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r86" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three", "terseLabel": "2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r86" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two", "terseLabel": "2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r364", "r365", "r366", "r367", "r651", "r655" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r84", "r655" ], "calculation": { "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Intangible assets, cost" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Intangible Assets" } } }, "localname": "FiniteLivedIntangibleAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r80", "r83" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r84", "r651" ], "calculation": { "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "totalLabel": "Net", "verboseLabel": "Intangible assets, net" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCountryMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax departments of governments entitled to levy and collect income taxes from the entity outside the entity's country of domicile.", "label": "Foreign Tax Authority [Member]", "terseLabel": "Foreign tax authority" } } }, "localname": "ForeignCountryMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": { "auth_ref": [ "r597", "r598", "r599", "r601" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.", "label": "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax", "verboseLabel": "Foreign currency re-measurement loss" } } }, "localname": "ForeignCurrencyTransactionGainLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": { "auth_ref": [ "r611" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.", "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]", "terseLabel": "Foreign currency translation" } } }, "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_FurnitureAndFixturesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Furniture and Fixtures [Member]", "terseLabel": "Furniture and fixtures" } } }, "localname": "FurnitureAndFixturesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GeneralAndAdministrativeExpense": { "auth_ref": [ "r41" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.", "label": "General and administrative expense", "terseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeneralAndAdministrativeExpenseMember": { "auth_ref": [ "r36" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing general and administrative expense.", "label": "General and Administrative Expense [Member]", "terseLabel": "General and administrative expenses", "verboseLabel": "General and administrative" } } }, "localname": "GeneralAndAdministrativeExpenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r221", "r349", "r656", "r708", "r729", "r768", "r775" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill.", "periodEndLabel": "Balance", "periodStartLabel": "Balance", "verboseLabel": "GOODWILL" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwillDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAcquiredDuringPeriod": { "auth_ref": [ "r352", "r708" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.", "label": "Goodwill, Acquired During Period", "terseLabel": "Acquisition of goodwill" } } }, "localname": "GoodwillAcquiredDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": { "auth_ref": [ "r77", "r81" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.", "label": "Goodwill and Intangible Assets, Policy [Policy Text Block]", "terseLabel": "Goodwill and intangible assets" } } }, "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillDisclosureTextBlock": { "auth_ref": [ "r359", "r361", "r363", "r708" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for goodwill.", "label": "Goodwill Disclosure [Text Block]", "terseLabel": "Goodwill" } } }, "localname": "GoodwillDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwill" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillImpairmentLoss": { "auth_ref": [ "r54", "r350", "r355", "r362", "r708" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "us-gaap_GoodwillImpairmentLoss", "verboseLabel": "Goodwill impairment loss" } } }, "localname": "GoodwillImpairmentLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Goodwill [Line Items]", "terseLabel": "Goodwill" } } }, "localname": "GoodwillLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GoodwillTranslationAndPurchaseAccountingAdjustments": { "auth_ref": [ "r145", "r776" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from foreign currency translation adjustments and purchase accounting adjustments of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Translation and Purchase Accounting Adjustments", "terseLabel": "Adjustments on account of foreign exchange" } } }, "localname": "GoodwillTranslationAndPurchaseAccountingAdjustments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r38", "r259", "r310", "r313", "r318", "r321", "r334", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r588", "r707", "r786" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "totalLabel": "GROSS MARGIN" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_HedgingDesignationAxis": { "auth_ref": [ "r172", "r568" ], "lang": { "en-us": { "role": { "documentation": "Information by designation of purpose of derivative instrument.", "label": "Hedging Designation [Axis]" } } }, "localname": "HedgingDesignationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_HedgingDesignationDomain": { "auth_ref": [ "r172" ], "lang": { "en-us": { "role": { "documentation": "Designation of purpose of derivative instrument.", "label": "Hedging Designation [Domain]" } } }, "localname": "HedgingDesignationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the impairment and disposal of long-lived assets including goodwill and other intangible assets.", "label": "Impairment or Disposal of Long-Lived Assets, Including Intangible Assets, Policy [Policy Text Block]", "terseLabel": "Impairment of long-lived assets" } } }, "localname": "ImpairmentOrDisposalOfLongLivedAssetsIncludingIntangibleAssetsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r34", "r184", "r192", "r206", "r310", "r313", "r318", "r321", "r660", "r707" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "terseLabel": "Income before income taxes", "totalLabel": "INCOME BEFORE INCOME TAXES" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF OPERATIONS" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r369", "r370" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r370" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxAuthorityAxis": { "auth_ref": [ "r137" ], "lang": { "en-us": { "role": { "documentation": "Information by tax jurisdiction.", "label": "Income Tax Authority [Axis]" } } }, "localname": "IncomeTaxAuthorityAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxAuthorityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.", "label": "Income Tax Authority [Domain]" } } }, "localname": "IncomeTaxAuthorityDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeLossBeforeIncomeTaxesEarnedByTaxJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxAuthorityNameAxis": { "auth_ref": [ "r137" ], "lang": { "en-us": { "role": { "documentation": "Information by name of taxing authority.", "label": "Income Tax Authority, Name [Axis]" } } }, "localname": "IncomeTaxAuthorityNameAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxAuthorityNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.", "label": "Income Tax Authority, Name [Domain]" } } }, "localname": "IncomeTaxAuthorityNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Taxes." } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r260", "r523", "r527", "r533", "r541", "r546", "r548", "r549", "r551" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Taxes" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r261", "r276", "r277", "r309", "r521", "r542", "r547", "r666" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "terseLabel": "Income tax expense", "totalLabel": "TOTAL INCOME TAX EXPENSE" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxExpenseRecoveryIncurredByJurisdictionsDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit), Continuing Operations [Abstract]", "terseLabel": "INCOME TAX EXPENSE" } } }, "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxPolicyTextBlock": { "auth_ref": [ "r243", "r517", "r518", "r527", "r528", "r532", "r536" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.", "label": "Income Tax, Policy [Policy Text Block]", "terseLabel": "Income taxes" } } }, "localname": "IncomeTaxPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r819" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.", "label": "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance", "terseLabel": "Valuation allowance" } } }, "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate": { "auth_ref": [ "r516", "r522" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, attributable to increase (decrease) in the income tax rates.", "label": "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate", "terseLabel": "Effect of rate changes on current year timing differences" } } }, "localname": "IncomeTaxReconciliationChangeInEnactedTaxRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": { "auth_ref": [ "r819" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).", "label": "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential", "terseLabel": "Effect of differences between Canadian and foreign tax rates" } } }, "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r522" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.", "label": "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "terseLabel": "Income tax expense based on the above rates" } } }, "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization": { "auth_ref": [ "r819" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible amortization.", "label": "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization", "terseLabel": "Permanent differences including amortization of intangible assets" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpenseAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": { "auth_ref": [ "r819" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of reported income tax expense (benefit) in excess of (less than) expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for award under share-based payment arrangement. Includes, but is not limited to, expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.", "label": "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost", "terseLabel": "Stock based compensation" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationOtherAdjustments": { "auth_ref": [ "r819" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.", "label": "us-gaap_IncomeTaxReconciliationOtherAdjustments", "terseLabel": "Other, including foreign exchange" } } }, "localname": "IncomeTaxReconciliationOtherAdjustments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes": { "auth_ref": [ "r819" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to revisions of previously reported income tax expense (benefit).", "label": "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes", "terseLabel": "Adjustments relating to previous periods" } } }, "localname": "IncomeTaxReconciliationPriorYearIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesProvisionRecoveryForIncomeTaxesFromExpectedProvisionAtStatutoryRatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaidNet": { "auth_ref": [ "r58" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.", "label": "Income Taxes Paid, Net", "terseLabel": "Cash paid during the year for income taxes" } } }, "localname": "IncomeTaxesPaidNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", "label": "Increase (Decrease) in Accounts Payable", "verboseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Trade accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 6.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.", "label": "Increase (Decrease) in Accrued Liabilities", "terseLabel": "Accrued liabilities" } } }, "localname": "IncreaseDecreaseInAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInDeferredRevenue": { "auth_ref": [ "r701" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 9.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.", "label": "Deferred revenue", "terseLabel": "Deferred revenue" } } }, "localname": "IncreaseDecreaseInDeferredRevenue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInIncomeTaxes": { "auth_ref": [ "r752" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 7.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes, and in deferred and other tax liabilities and assets.", "label": "Increase (Decrease) in Income Taxes", "verboseLabel": "Income taxes payable" } } }, "localname": "IncreaseDecreaseInIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventory" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapital": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period of all assets and liabilities used in operating activities.", "label": "Increase (Decrease) in Operating Capital", "negatedLabel": "Changes in operating assets and liabilities", "negatedTotalLabel": "Increase (Decrease) in Operating Capital, Total" } } }, "localname": "IncreaseDecreaseInOperatingCapital", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherReceivables": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in receivables classified as other.", "label": "Increase (Decrease) in Other Receivables", "negatedLabel": "Other accounts receivable" } } }, "localname": "IncreaseDecreaseInOtherReceivables", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_IncreaseDecreaseInOperatingCapital", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedTerseLabel": "Prepaid expenses and other" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationCashFlowChangesInOperatingAssetAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r282", "r283", "r284", "r289", "r473" ], "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Dilutive effect of employee stock options (in shares)" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_IntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r368" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all or part of the information related to intangible assets.", "label": "Intangible Assets Disclosure [Text Block]", "terseLabel": "Intangible Assets" } } }, "localname": "IntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssets" ], "xbrltype": "textBlockItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "auth_ref": [ "r78", "r82" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.", "label": "Intangible Assets, Net (Excluding Goodwill)", "terseLabel": "INTANGIBLE ASSETS, NET" } } }, "localname": "IntangibleAssetsNetExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwillAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Intangible Assets" } } }, "localname": "IntangibleAssetsNetExcludingGoodwillAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_InterestExpense": { "auth_ref": [ "r182", "r194", "r247", "r308", "r614" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.", "label": "Interest Expense", "negatedLabel": "INTEREST EXPENSE" } } }, "localname": "InterestExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestPaidNet": { "auth_ref": [ "r252", "r254", "r255" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", "label": "Interest Paid, Net", "verboseLabel": "Cash paid during the year for interest" } } }, "localname": "InterestPaidNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_InternalRevenueServiceIRSMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity.", "label": "United States.", "terseLabel": "United States" } } }, "localname": "InternalRevenueServiceIRSMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InventoryDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Inventory" } } }, "localname": "InventoryDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r346" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.", "label": "Inventory Disclosure [Text Block]", "terseLabel": "Inventory" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureInventory" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r233", "r698", "r729" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "terseLabel": "Inventory" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPolicyTextBlock": { "auth_ref": [ "r217", "r232", "r295", "r344", "r345", "r346", "r649", "r703" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.", "label": "Inventory, Policy [Policy Text Block]", "terseLabel": "Inventory" } } }, "localname": "InventoryPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_InvestmentIncomeNet": { "auth_ref": [ "r42", "r43" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 4.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after accretion (amortization) of discount (premium), and investment expense, of interest income and dividend income on nonoperating securities.", "label": "INVESTMENT INCOME" } } }, "localname": "InvestmentIncomeNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r632", "r728" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "Lease, Cost", "totalLabel": "Total operating lease cost" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r830" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.", "label": "Lease, Cost [Table Text Block]", "terseLabel": "Schedule of components of operating lease expense" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r90" ], "lang": { "en-us": { "role": { "documentation": "Additions or improvements to assets held under a lease arrangement.", "label": "Leasehold Improvements [Member]", "terseLabel": "Leasehold improvements" } } }, "localname": "LeaseholdImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LeasesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Leases" } } }, "localname": "LeasesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_LesseeLeaseDescriptionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Lessee, Lease, Description [Line Items]", "terseLabel": "Leases" } } }, "localname": "LesseeLeaseDescriptionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LesseeLeaseDescriptionTable": { "auth_ref": [ "r625" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about lessee's leases.", "label": "Lessee, Lease, Description [Table]" } } }, "localname": "LesseeLeaseDescriptionTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LesseeLeasesPolicyTextBlock": { "auth_ref": [ "r624" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.", "label": "Lessee, Leases [Policy Text Block]", "terseLabel": "Leases" } } }, "localname": "LesseeLeasesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r831" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.", "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]", "terseLabel": "Schedule of maturities for operating lease liabilities" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.", "label": "Lessee, Operating Lease, Liability, to be Paid", "totalLabel": "Total lease payments" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 8.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five", "terseLabel": "2029 and thereafter" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "terseLabel": "2024" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 7.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five", "terseLabel": "2028" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four", "terseLabel": "2027" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three", "terseLabel": "2026" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two", "terseLabel": "2025" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r633" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.", "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less: imputed interest" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": { "auth_ref": [ "r828" ], "lang": { "en-us": { "role": { "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Remaining Lease Term", "terseLabel": "Operating lease remaining lease term (year)" } } }, "localname": "LesseeOperatingLeaseRemainingLeaseTerm", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LesseeOperatingLeaseRenewalTerm": { "auth_ref": [ "r829" ], "lang": { "en-us": { "role": { "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Lessee, Operating Lease, Renewal Term", "terseLabel": "Operating lease renewal term (year)" } } }, "localname": "LesseeOperatingLeaseRenewalTerm", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_LesseeOperatingLeasesTextBlock": { "auth_ref": [ "r634" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.", "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "Leases" } } }, "localname": "LesseeOperatingLeasesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeases" ], "xbrltype": "textBlockItemType" }, "us-gaap_LettersOfCreditOutstandingAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.", "label": "Letters of Credit Outstanding, Amount", "terseLabel": "Letters of credit outstanding" } } }, "localname": "LettersOfCreditOutstandingAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r17", "r259", "r334", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r565", "r566", "r567", "r588", "r706", "r786", "r833", "r834" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "TOTAL LIABILITIES" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r13", "r190", "r202", "r729", "r755", "r766", "r826" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "TOTAL LIABILITIES AND SHAREHOLDERS' EQUITY" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "verboseLabel": "LIABILITIES AND SHAREHOLDERS' EQUITY" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r19", "r216", "r259", "r334", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r565", "r566", "r567", "r588", "r729", "r786", "r833", "r834" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "TOTAL CURRENT LIABILITIES" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CURRENT LIABILITIES", "verboseLabel": "CURRENT LIABILITIES" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": { "auth_ref": [ "r21" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent.", "label": "Liability for Uncertainty in Income Taxes, Noncurrent", "periodEndLabel": "Liability, end of year", "periodStartLabel": "Liability, beginning of year", "terseLabel": "Liability for Uncertainty in Income Taxes, Noncurrent" } } }, "localname": "LiabilityForUncertainTaxPositionsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LicenseMember": { "auth_ref": [ "r792" ], "lang": { "en-us": { "role": { "documentation": "Right to use intangible asset. Intangible asset includes, but is not limited to, patent, copyright, technology, manufacturing process, software or trademark.", "label": "License" } } }, "localname": "LicenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LineOfCredit": { "auth_ref": [ "r3", "r189", "r198" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.", "label": "Long-Term Line of Credit", "terseLabel": "Long-term line of credit drawn amount" } } }, "localname": "LineOfCredit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "auth_ref": [ "r16" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.", "label": "Line of Credit Facility, Maximum Borrowing Capacity", "terseLabel": "Line of credit facility" } } }, "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": { "auth_ref": [ "r16" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).", "label": "Line of Credit Facility, Remaining Borrowing Capacity", "terseLabel": "Available for use" } } }, "localname": "LineOfCreditFacilityRemainingBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.", "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage", "terseLabel": "Percentage of undrawn amounts (in percentage)" } } }, "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "percentItemType" }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "auth_ref": [ "r765" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.", "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]", "terseLabel": "Trade Accounts Receivable" } } }, "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivable" ], "xbrltype": "textBlockItemType" }, "us-gaap_LongTermDebtNoncurrent": { "auth_ref": [ "r225" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, excluding unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", "label": "Long-Term Debt, Excluding Current Maturities", "terseLabel": "LONG-TERM DEBT" } } }, "localname": "LongTermDebtNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LossContingenciesLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Loss Contingencies [Line Items]", "terseLabel": "Commitments, Contingencies and Guarantees" } } }, "localname": "LossContingenciesLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingenciesTable": { "auth_ref": [ "r97", "r98", "r375", "r376", "r377", "r781", "r782" ], "lang": { "en-us": { "role": { "documentation": "Discloses the specific components (such as the nature, name, and date) of the loss contingency and gives an estimate of the possible loss or range of loss, or states that a reasonable estimate cannot be made. Excludes environmental contingencies, warranties and unconditional purchase obligations.", "label": "Loss Contingencies [Table]" } } }, "localname": "LossContingenciesTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureCommitmentsContingenciesAndGuaranteesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_MeasurementInputDiscountRateMember": { "auth_ref": [ "r825" ], "lang": { "en-us": { "role": { "documentation": "Measurement input using interest rate to determine present value of future cash flows.", "label": "Measurement Input, Discount Rate [Member]", "terseLabel": "Discount rate" } } }, "localname": "MeasurementInputDiscountRateMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_MeasurementInputLongTermRevenueGrowthRateMember": { "auth_ref": [ "r825" ], "lang": { "en-us": { "role": { "documentation": "Measurement input using compounded annualized rate of long-term growth in revenue.", "label": "Measurement Input, Long-term Revenue Growth Rate [Member]", "terseLabel": "Revenue growth rate" } } }, "localname": "MeasurementInputLongTermRevenueGrowthRateMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_MeasurementInputTypeAxis": { "auth_ref": [ "r583" ], "lang": { "en-us": { "role": { "documentation": "Information by type of measurement input used to determine value of asset and liability.", "label": "Measurement Input Type [Axis]" } } }, "localname": "MeasurementInputTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_MeasurementInputTypeDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Measurement input used to determine value of asset and liability.", "label": "Measurement Input Type [Domain]" } } }, "localname": "MeasurementInputTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r253" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Cash (used in) provided by financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract]", "terseLabel": "FINANCING ACTIVITIES" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r253" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract]", "terseLabel": "INVESTING ACTIVITIES" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r51", "r52", "r55" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "verboseLabel": "OPERATING ACTIVITIES" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r35", "r55", "r193", "r205", "r214", "r238", "r241", "r246", "r259", "r266", "r270", "r271", "r272", "r273", "r276", "r277", "r286", "r310", "r313", "r318", "r321", "r334", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r580", "r588", "r707", "r786" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 }, "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss)", "terseLabel": "Net Income", "totalLabel": "NET INCOME", "verboseLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations", "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recently issued accounting pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r155" ], "lang": { "en-us": { "role": { "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.", "label": "Noncompete Agreements [Member]", "terseLabel": "Non-compete covenants" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NoncurrentAssets": { "auth_ref": [ "r325" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.", "label": "Geographical long-lived assets", "terseLabel": "Geographical long-lived assets" } } }, "localname": "NoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NondesignatedMember": { "auth_ref": [ "r172" ], "lang": { "en-us": { "role": { "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).", "label": "Not Designated as Hedging Instrument [Member]" } } }, "localname": "NondesignatedMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsDerivativeInstrumentsAtFairValueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NumberOfReportableSegments": { "auth_ref": [ "r763" ], "lang": { "en-us": { "role": { "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.", "label": "Number of Reportable Segments", "terseLabel": "Number of reportable segments" } } }, "localname": "NumberOfReportableSegments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationAdditionalInformationDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "totalLabel": "TOTAL EXPENSES" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r310", "r313", "r318", "r321", "r707" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "INCOME FROM OPERATIONS" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r626", "r728" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": { "order": 1.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.", "label": "Operating Lease, Cost", "terseLabel": "Operating lease cost" } } }, "localname": "OperatingLeaseCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r622" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Operating Lease, Liability", "totalLabel": "Total lease obligations" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r622" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": { "order": 1.0, "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0 }, "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Lease obligations", "verboseLabel": "Current" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r622" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetailsCalc2": { "order": 2.0, "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0 }, "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "LEASE OBLIGATIONS", "verboseLabel": "Long-term" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r623", "r628" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating Lease, Payments", "terseLabel": "Operating cash outflows from operating leases included in measurement of lease liabilities" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r621" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "verboseLabel": "RIGHT-OF-USE ASSETS" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r631", "r728" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Operating Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Weighted average discount rate (%)" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r630", "r728" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "terseLabel": "Weighted average remaining lease term (years)" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OperatingLossCarryforwards": { "auth_ref": [ "r139" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.", "label": "Operating loss carryforwards", "terseLabel": "Income tax loss carryforwards" } } }, "localname": "OperatingLossCarryforwards", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Description of the Business" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "auth_ref": [ "r18" ], "calculation": { "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Accrued Liabilities, Current", "terseLabel": "Other accrued liabilities" } } }, "localname": "OtherAccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsCurrent": { "auth_ref": [ "r234", "r729" ], "calculation": { "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": { "order": 2.0, "parentTag": "us-gaap_OtherReceivablesNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current assets classified as other.", "label": "Other Assets, Current", "terseLabel": "Other receivables" } } }, "localname": "OtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherReceivablesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r223" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "verboseLabel": "OTHER LONG-TERM ASSETS" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "auth_ref": [ "r26" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.", "label": "Foreign currency translation adjustment, net of income tax (recovery) expense of $290 for the year ended January 31, 2021 (January 31, 2020 - ($132); January 31, 2019 - ($44))", "terseLabel": "Foreign currency translation adjustment, net of income tax (recovery) expense of ($58) for the year ended January 31, 2023 (January 31, 2022 - ($348); January 31, 2021 - $290)" } } }, "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": { "auth_ref": [ "r26", "r29", "r600", "r608" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.", "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax", "terseLabel": "Foreign currency translation adjustment, income tax expense (recovery)" } } }, "localname": "OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeParentheticals" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r33", "r104", "r239", "r242", "r248", "r602", "r607", "r609", "r657", "r663", "r748", "r749" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss).", "label": "Other Comprehensive Income (Loss), Net of Tax", "totalLabel": "Total other comprehensive income (loss)" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r167", "r168", "r170", "r239", "r242" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "terseLabel": "Other comprehensive income (loss), net of income taxes" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossTaxAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income Loss Tax [Abstract]", "terseLabel": "Other comprehensive income (loss):" } } }, "localname": "OtherComprehensiveIncomeLossTaxAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_OtherCostAndExpenseOperating": { "auth_ref": [ "r40" ], "calculation": { "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 5.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The total amount of other operating cost and expense items that are associated with the entity's normal revenue producing operation.", "label": "Other Cost and Expense, Operating", "terseLabel": "Other charges", "totalLabel": "Other non-operating expense, Total" } } }, "localname": "OtherCostAndExpenseOperating", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherIncomeAndExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other Charges." } } }, "localname": "OtherIncomeAndExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_OtherIncomeAndOtherExpenseDisclosureTextBlock": { "auth_ref": [ "r113", "r133" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for other income or other expense items (both operating and nonoperating). Sources of nonoperating income or nonoperating expense that may be disclosed, include amounts earned from dividends, interest on securities, profits (losses) on securities, net and miscellaneous other income or income deductions.", "label": "Other Charges" } } }, "localname": "OtherIncomeAndOtherExpenseDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherCharges" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherNoncashExpense": { "auth_ref": [ "r55" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense or loss included in net income that result in no cash flow, classified as other.", "label": "Other Noncash Expense", "terseLabel": "Other non-cash operating activities" } } }, "localname": "OtherNoncashExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherReceivablesNetCurrent": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureOtherReceivablesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance, of receivables classified as other, due within one year or the operating cycle, if longer.", "label": "Other Receivables, Net, Current", "terseLabel": "Other", "totalLabel": "Total" } } }, "localname": "OtherReceivablesNetCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherReceivablesDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": { "auth_ref": [ "r50" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.", "label": "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities", "negatedLabel": "Payment of contingent consideration" } } }, "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfDebtIssuanceCosts": { "auth_ref": [ "r49" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.", "label": "Payments of Debt Issuance Costs", "negatedLabel": "Payment of debt issuance costs" } } }, "localname": "PaymentsOfDebtIssuanceCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesGross": { "auth_ref": [ "r45", "r560" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.", "label": "Payments to Acquire Businesses, Gross", "negatedLabel": "Acquisition of subsidiaries, net of cash acquired" } } }, "localname": "PaymentsToAcquireBusinessesGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r45" ], "calculation": { "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "Cash, net of cash acquired", "terseLabel": "Cash, less cash acquired", "verboseLabel": "Acquisition purchase price, net of cash acquired" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r46" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Additions to property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PerformanceSharesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement awarded for meeting performance target.", "label": "Performance Shares [Member]" } } }, "localname": "PerformanceSharesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r793", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808", "r809", "r810", "r811", "r812", "r813", "r814", "r815", "r816", "r817", "r818" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [ "r793", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r801", "r802", "r803", "r804", "r805", "r806", "r807", "r808", "r809", "r810", "r811", "r812", "r813", "r814", "r815", "r816", "r817", "r818" ], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "auth_ref": [ "r747" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other" } } }, "localname": "PrepaidExpenseAndOtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "auth_ref": [ "r47" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the additional capital contribution to the entity.", "label": "Proceeds from Issuance of Common Stock", "terseLabel": "Issuance of common shares for cash, net of issuance costs" } } }, "localname": "ProceedsFromIssuanceOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromLinesOfCredit": { "auth_ref": [ "r48", "r754" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.", "label": "Proceeds from Lines of Credit", "terseLabel": "Proceeds from borrowings on the credit facility" } } }, "localname": "ProceedsFromLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r47", "r130" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.", "label": "Proceeds from Stock Options Exercised", "terseLabel": "Proceeds from Stock Options Exercised" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Property and Equipment" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r92" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Long-Lived Tangible Asset [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r93", "r682", "r683", "r684" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "Property and Equipment" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipment" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r90", "r219" ], "calculation": { "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Gross", "terseLabel": "Cost" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Property, Plant and Equipment [Line Items]", "terseLabel": "Property and Equipment" } } }, "localname": "PropertyPlantAndEquipmentLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r92", "r203", "r661", "r729" ], "calculation": { "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "PROPERTY AND EQUIPMENT, NET", "totalLabel": "Net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "auth_ref": [ "r92", "r682", "r683" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment, Policy [Policy Text Block]", "terseLabel": "Property and equipment" } } }, "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r92" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Schedule of property and equipment" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r90" ], "lang": { "en-us": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Long-Lived Tangible Asset [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PropertyPlantAndEquipmentUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.", "label": "us-gaap_PropertyPlantAndEquipmentUsefulLife", "verboseLabel": "Property and equipment useful life (Year)" } } }, "localname": "PropertyPlantAndEquipmentUsefulLife", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r251", "r342" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Accounts Receivable, Credit Loss Expense (Reversal)", "terseLabel": "Current period provision for expected losses" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableProvisionForCreditLossesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails": { "order": 6.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of purchase arrangement to be paid in remainder of current fiscal year. Includes, but is not limited to, recorded and unrecorded purchase obligations, long-term purchase commitment, and short-term purchase commitment.", "label": "Purchase Obligation, to be Paid, Remainder of Fiscal Year", "terseLabel": "Remainder of 2023" } } }, "localname": "PurchaseObligationFutureMinimumPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesMaturitiesOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Trade Accounts Receivable" } } }, "localname": "ReceivablesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": { "auth_ref": [ "r75" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.", "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]", "terseLabel": "Provision for Credit Losses" } } }, "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RepaymentsOfDebt": { "auth_ref": [ "r751" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow during the period from the repayment of aggregate short-term and long-term debt. Excludes payment of capital lease obligations.", "label": "Repayments of Debt", "negatedLabel": "Credit facility and other debt repayments" } } }, "localname": "RepaymentsOfDebt", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r134", "r208", "r841" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.", "label": "Research and development expense", "terseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.", "label": "Research and Development Expense [Member]", "terseLabel": "Research and development" } } }, "localname": "ResearchAndDevelopmentExpenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": { "auth_ref": [ "r87", "r88", "r208" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.", "label": "Research, Development, and Computer Software, Policy [Policy Text Block]", "terseLabel": "Research and development costs" } } }, "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "Restricted Stock Units (RSUs) [Member]" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RestructuringCharges": { "auth_ref": [ "r54", "r371", "r372", "r780" ], "calculation": { "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails": { "order": 1.0, "parentTag": "us-gaap_OtherCostAndExpenseOperating", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.", "label": "Restructuring on plans", "terseLabel": "Restructuring plans" } } }, "localname": "RestructuringCharges", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherChargesComponentsOfOtherChargesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r10", "r111", "r201", "r674", "r679", "r729" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "verboseLabel": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r211", "r263", "r264", "r265", "r267", "r275", "r277", "r338", "r510", "r511", "r512", "r539", "r540", "r578", "r670", "r672" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]", "terseLabel": "Retained earnings (accumulated deficit)" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Contract Balances, Performance Obligations and Contract Costs" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "auth_ref": [ "r306", "r307", "r312", "r316", "r317", "r323", "r324", "r327", "r454", "r455", "r650" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.", "label": "Revenue From Contract With Customer Including Assessed Tax", "terseLabel": "Geographical revenue", "verboseLabel": "REVENUES" } } }, "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": { "auth_ref": [ "r446", "r447", "r448", "r449", "r450", "r451", "r452", "r453", "r460", "r704" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue from contract with customer.", "label": "Revenue from Contract with Customer [Policy Text Block]", "terseLabel": "Revenue recognition" } } }, "localname": "RevenueFromContractWithCustomerPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r436", "r437", "r438", "r439", "r440", "r441", "r444", "r445", "r458", "r460" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Contract Balances, Performance Obligations and Contract Costs." } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCosts" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueRemainingPerformanceObligation": { "auth_ref": [ "r442" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Amount", "terseLabel": "Remaining performance obligation, Amount" } } }, "localname": "RevenueRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "auth_ref": [ "r443" ], "lang": { "en-us": { "role": { "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "terseLabel": "Remaining performance obligation, Period (Month)" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" ], "xbrltype": "durationItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "auth_ref": [ "r443" ], "lang": { "en-us": { "role": { "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationPercentage": { "auth_ref": [ "r790" ], "lang": { "en-us": { "role": { "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Percentage", "terseLabel": "Remaining performance obligation, Percentage" } } }, "localname": "RevenueRemainingPerformanceObligationPercentage", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureContractBalancesPerformanceObligationsAndContractCostsDetailss" ], "xbrltype": "percentItemType" }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "auth_ref": [ "r629", "r728" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.", "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "terseLabel": "New ROU assets obtained in exchange for lease obligations" } } }, "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.", "label": "Sale of Stock [Domain]" } } }, "localname": "SaleOfStockNameOfTransactionDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "auth_ref": [ "r25" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.", "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]", "terseLabel": "Schedule of trade accounts receivable" } } }, "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of accrued liabilities.", "label": "Schedule of Accrued Liabilities [Table Text Block]", "terseLabel": "Schedule of accrued liabilities" } } }, "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAccruedLiabilitiesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock": { "auth_ref": [ "r80" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.", "label": "Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]", "terseLabel": "Schedule of acquired intangible assets are being amortized over their estimated useful lives" } } }, "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "auth_ref": [ "r148", "r149", "r555" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.", "label": "Schedule of Business Acquisitions, by Acquisition [Table]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredParentheticalsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "auth_ref": [ "r148", "r149" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts.", "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]", "terseLabel": "Schedule of preliminary purchase price allocation for businesses acquired" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented.", "label": "Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]", "terseLabel": "Schedule of cash flow changes in operating asset and liabilities" } } }, "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSupplementalCashFlowInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCommonStockOutstandingRollForwardTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the change in common stock outstanding.", "label": "Schedule of Common Stock Outstanding Roll Forward [Table Text Block]", "terseLabel": "Schedule of common shares outstanding" } } }, "localname": "ScheduleOfCommonStockOutstandingRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "auth_ref": [ "r142" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.", "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]", "terseLabel": "Schedule of components of Income Tax Expense (Benefit)" } } }, "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [ "r138" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.", "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]", "terseLabel": "Schedule of deferred tax assets and liabilities" } } }, "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of derivative assets at fair value.", "label": "Schedule of Derivative Assets at Fair Value [Table Text Block]", "terseLabel": "Schedule of financial instruments measured at fair value on recurring basis" } } }, "localname": "ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureFairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r762" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of computation of basic and diluted earnings per share" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicByCommonClassTable": { "auth_ref": [ "r62", "r65", "r281", "r285", "r287" ], "lang": { "en-us": { "role": { "documentation": "The table contains disclosure pertaining to an entity's basic earnings per share.", "label": "Schedule of Earnings Per Share, Basic, by Common Class, Including Two Class Method [Table]" } } }, "localname": "ScheduleOfEarningsPerShareBasicByCommonClassTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "auth_ref": [ "r135" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.", "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]", "terseLabel": "Schedule of effective income tax rate reconciliation" } } }, "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "auth_ref": [ "r128" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.", "label": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "terseLabel": "Schedule of estimated stock-based compensation expense recognized in condensed consolidated statement of operations" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": { "auth_ref": [ "r74" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area.", "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]", "terseLabel": "Schedule of disclosure on geographic areas, long-lived assets in individual foreign countries by country" } } }, "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "auth_ref": [ "r80", "r83", "r651" ], "lang": { "en-us": { "role": { "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Schedule of Finite-Lived Intangible Assets [Table]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r80", "r83" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "verboseLabel": "Schedule of intangible asset" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTable": { "auth_ref": [ "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r362", "r708" ], "lang": { "en-us": { "role": { "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.", "label": "Schedule of Goodwill [Table]" } } }, "localname": "ScheduleOfGoodwillTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r708", "r768", "r769", "r770", "r771", "r772", "r773", "r774", "r775", "r776", "r777", "r778" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.", "label": "Schedule of Goodwill [Table Text Block]", "terseLabel": "Schedule of goodwill" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureGoodwillTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": { "auth_ref": [ "r756" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.", "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]", "terseLabel": "Schedule of Income before Income Tax, Domestic and Foreign" } } }, "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock": { "auth_ref": [ "r120" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the changes in outstanding nonvested shares.", "label": "Schedule of Nonvested Share Activity [Table Text Block]", "terseLabel": "Schedule of Non vested share activity" } } }, "localname": "ScheduleOfNonvestedShareActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock": { "auth_ref": [ "r40" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of each detailed component of other operating costs and expenses that are applicable to sales and revenues, but not included in the cost of sales in the income statement.", "label": "Schedule of Other Operating Cost and Expense, by Component [Table Text Block]", "terseLabel": "Schedule of components of other charges" } } }, "localname": "ScheduleOfOtherOperatingCostAndExpenseByComponentTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherChargesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r92" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": { "auth_ref": [ "r94", "r95" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost. This element may also include a description of any reversal and other adjustment made during the period to the amount of an accrued liability for restructuring activities. This element may be used to encapsulate the roll forward presentations of an entity's restructuring reserve by type of cost and in total, and explanation of changes that occurred in the period.", "label": "Schedule of Restructuring Reserve by Type of Cost [Table Text Block]", "terseLabel": "Schedule of changes in restructuring plan" } } }, "localname": "ScheduleOfRestructuringReserveByTypeOfCostTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureOtherChargesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": { "auth_ref": [ "r37", "r73" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.", "label": "Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]", "terseLabel": "Schedule of disaggregated revenue information by geographic location of customer and revenue" } } }, "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "auth_ref": [ "r70", "r71", "r72", "r77" ], "lang": { "en-us": { "role": { "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table]" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "auth_ref": [ "r70", "r71", "r72", "r77" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Schedule of segment reporting information, by segment" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r470", "r472", "r475", "r476", "r477", "r479", "r480", "r481", "r482", "r483", "r484", "r485", "r486", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r494", "r495", "r496", "r499", "r500", "r501", "r502", "r503" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about share-based payment arrangement.", "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": { "auth_ref": [ "r129" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]", "terseLabel": "Summary of performance share units activity" } } }, "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r115", "r122", "r123" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.", "label": "Share-based Payment Arrangement, Option, Activity [Table Text Block]", "terseLabel": "Schedule of stock option activity" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "auth_ref": [ "r126" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.", "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]", "terseLabel": "Schedule of weighted-average assumptions" } } }, "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.", "label": "Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]", "terseLabel": "Schedule of restricted share units activity" } } }, "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfStockByClassTable": { "auth_ref": [ "r101", "r102", "r103", "r105", "r106", "r107", "r108", "r109", "r110", "r111", "r226", "r227", "r228", "r297", "r416", "r417", "r418", "r420", "r424", "r429", "r431", "r714", "r742", "r753" ], "lang": { "en-us": { "role": { "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity.", "label": "Schedule of Stock by Class [Table]" } } }, "localname": "ScheduleOfStockByClassTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails", "http://www.descartes.com/role/DisclosureShareCapitalTables" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": { "auth_ref": [ "r727", "r820" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the change in unrecognized tax benefits.", "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]", "terseLabel": "Schedule of unrecognized tax benefits roll forward" } } }, "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Segmented Information." } } }, "localname": "SegmentReportingAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r303", "r304", "r305", "r310", "r311", "r315", "r319", "r320", "r321", "r322", "r323", "r326", "r327", "r328" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.", "label": "Segmented Information" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingInformationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Segment Reporting Information [Line Items]", "terseLabel": "Segmented Information" } } }, "localname": "SegmentReportingInformationLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationLongLivedAssetsByGeographicalLocationDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByGeographicalLocationOfCustomerDetails", "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SellingAndMarketingExpense": { "auth_ref": [], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations": { "order": 3.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.", "label": "Selling And Marketing Expense", "terseLabel": "Sales and marketing" } } }, "localname": "SellingAndMarketingExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingAndMarketingExpenseMember": { "auth_ref": [ "r36" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling and marketing expense.", "label": "Selling and Marketing Expense [Member]", "terseLabel": "Sales and marketing" } } }, "localname": "SellingAndMarketingExpenseMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ServiceMember": { "auth_ref": [ "r717" ], "lang": { "en-us": { "role": { "documentation": "Assistance, including, but not limited to, technology, license and maintenance, license and service, maintenance, oil and gas, and financial service.", "label": "Service" } } }, "localname": "ServiceMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSegmentedInformationSegmentedRevenueByRevenueTypeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r53" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Payment Arrangement, Noncash Expense", "verboseLabel": "Stock-based compensation expense" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "auth_ref": [ "r725" ], "lang": { "en-us": { "role": { "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "verboseLabel": "Share-based compensation arrangement by share-based payment award, award vesting period (Year)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r490" ], "lang": { "en-us": { "role": { "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Number of PSUs Granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r490" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "PSUs Granted, Weighted-Average Granted Date Fair Value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [ "r487", "r488" ], "lang": { "en-us": { "role": { "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "periodEndLabel": "Weighted-Average Grant Date Fair Value, PSU (in dollars per share), Ending", "periodStartLabel": "Weighted-Average Grant Date Fair Value, PSU (in dollars per share), Beginning" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Weighted-Average Remaining Contractual, PSU (Year)", "terseLabel": "Weighted-Average Remaining Contractual, PSU (Year)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r491" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period", "negatedLabel": "Exercised (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": { "auth_ref": [ "r494" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r491" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Exercised (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r501" ], "lang": { "en-us": { "role": { "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.", "label": "Expected dividend yield (%)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r500" ], "lang": { "en-us": { "role": { "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.", "label": "Expected volatility (%)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r502" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Risk-free rate (%)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTotalEstimatedStockBasedCompensationExpenseDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": { "auth_ref": [ "r116", "r118" ], "lang": { "en-us": { "role": { "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "periodEndLabel": "Number of Units Outstanding (in shares), Ending", "periodStartLabel": "Number of Units Outstanding (in shares), Beginning" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r129" ], "lang": { "en-us": { "role": { "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r481" ], "lang": { "en-us": { "role": { "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.", "label": "Exercisable, shares (in shares)", "terseLabel": "Exercisable, shares (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r481" ], "lang": { "en-us": { "role": { "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.", "label": "Exercisable, weighted-average exercise price (in dollars per share)", "terseLabel": "Exercisable, weighted-average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "auth_ref": [ "r494" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "auth_ref": [ "r485" ], "lang": { "en-us": { "role": { "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "negatedLabel": "Forfeited, shares (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [ "r483" ], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Granted, shares (in shares)", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares)", "verboseLabel": "Granted, shares (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r493" ], "lang": { "en-us": { "role": { "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "Granted, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r129" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.", "label": "Aggregate Intrinsic Value", "periodEndLabel": "Aggregate Intrinsic Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r479", "r480" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "periodEndLabel": "Number of Stock Options Outstanding (in shares), Ending", "periodStartLabel": "Number of Stock Options Outstanding (in shares), Beginning", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r479", "r480" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "periodEndLabel": "Weighted-Average Exercise Price (in dollars per share), Ending", "periodStartLabel": "Weighted-Average Exercise Price (in dollars per share), Beginning" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": { "auth_ref": [ "r496" ], "lang": { "en-us": { "role": { "documentation": "Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested or expected to vest, RSU (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": { "auth_ref": [ "r495" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested or expected to vest, aggregate intrinsic value", "terseLabel": "Vested or expected to vest, aggregate intrinsic value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "auth_ref": [ "r495" ], "lang": { "en-us": { "role": { "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested or expected to vest, shares (in shares)", "terseLabel": "Vested or expected to vest, shares (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r495" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested or expected to vest, weighted-average exercise price (in dollars per share)", "terseLabel": "Vested or expected to vest, weighted-average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": { "auth_ref": [ "r129" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued under share-based payment arrangement.", "label": "Performance units issued (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r475", "r476", "r477", "r479", "r480", "r481", "r482", "r483", "r484", "r485", "r486", "r487", "r488", "r489", "r490", "r491", "r492", "r493", "r494", "r495", "r496", "r499", "r500", "r501", "r502", "r503" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r484" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "Exercised, weighted-average exercise price (in dollars per share)", "terseLabel": "Exercised, weighted-average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r485" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.", "label": "Forfeited, weighted-average exercise price (in dollars per share)", "terseLabel": "Forfeited, weighted-average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r483" ], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Granted, weighted-average exercise price (in dollars per share)", "terseLabel": "Granted, weighted-average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r478", "r497", "r498", "r499", "r500", "r503", "r513", "r514" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.", "label": "Share-Based Payment Arrangement [Policy Text Block]", "terseLabel": "Stock-based compensation plans" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock": { "auth_ref": [ "r114" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for outstanding performance shares.", "label": "Share-based Payment Arrangement, Performance Shares, Outstanding Activity [Table Text Block]", "terseLabel": "Schedule of performance share units activity" } } }, "localname": "ShareBasedCompensationPerformanceSharesAwardOutstandingActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": { "auth_ref": [ "r125" ], "lang": { "en-us": { "role": { "documentation": "Information by range of option prices pertaining to options granted.", "label": "Exercise Price Range [Axis]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": { "auth_ref": [ "r127" ], "lang": { "en-us": { "role": { "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.", "label": "Exercise Price Range [Domain]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit": { "auth_ref": [ "r127" ], "lang": { "en-us": { "role": { "documentation": "The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.", "label": "Range of Exercise Prices, Lower Limit (in dollars per share)" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions": { "auth_ref": [ "r121" ], "lang": { "en-us": { "role": { "documentation": "The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied.", "label": "Number of Stock Options, Options Exercisable (in shares)" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices.", "label": "Number of Stock Options, Options Outstanding (in shares)" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit": { "auth_ref": [ "r127" ], "lang": { "en-us": { "role": { "documentation": "The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range.", "label": "Range of Exercise Prices, Upper Limit (in dollars per share)" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options.", "label": "Aggregate Intrinsic Value, PSU", "periodEndLabel": "Aggregate Intrinsic Value, PSU" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "auth_ref": [ "r726" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "verboseLabel": "Share-based compensation arrangement by share-based payment award, expiration period (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r499" ], "lang": { "en-us": { "role": { "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Expected option life (years) (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAssumptionsUsedInBlackScholesModelForEachGrantDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": { "auth_ref": [ "r129" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.", "label": "Exercisable, aggregate intrinsic value", "terseLabel": "Exercisable, aggregate intrinsic value" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r129" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Exercisable, weighted-average remaining contractual life (Year)", "terseLabel": "Exercisable, weighted-average remaining contractual life (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of non-vested options outstanding.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares", "periodEndLabel": "Stock Options Outstanding (in shares), Ending", "periodStartLabel": "Stock Options Outstanding (in shares), Beginning" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of non-vested options forfeited.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares", "negatedLabel": "Forfeited (in shares)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average grant-date fair value of non-vested options forfeited.", "label": "Forfeited, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedOptionsForfeitedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average grant-date fair value of non-vested options outstanding.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue", "periodEndLabel": "Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Ending", "periodStartLabel": "Weighted- Average Grant-Date Fair Value per Share (in dollars per share), Beginning" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Weighted-Average Remaining Contractual Life (Year)", "terseLabel": "Weighted-Average Remaining Contractual Life (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r495" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested or expected to vest, weighted-average remaining contractual life (Year)", "terseLabel": "Vested or expected to vest, weighted-average remaining contractual life (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfPerformanceShareUnitsActivityDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfRestrictedShareUnitsActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": { "auth_ref": [ "r494" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of options vested.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "negatedLabel": "Vested (in shares)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average grant-date fair value of options vested.", "label": "Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)", "terseLabel": "Vested, Weighted- Average Grant-Date Fair Value per Share (in dollars per share)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfNonvestedShareDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1": { "auth_ref": [ "r119" ], "lang": { "en-us": { "role": { "documentation": "Weighted average exercise price as of the balance sheet date for those equity-based payment arrangements exercisable and outstanding.", "label": "Weighted Average Exercise Price, Options Exercisable (in dollars per share)" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": { "auth_ref": [ "r117" ], "lang": { "en-us": { "role": { "documentation": "The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices.", "label": "Weighted Average Exercise Price, Options Outstanding (in dollars per share)" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Weighted Average Remaining Contractual Life, Options Outstanding (Year)" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharesIssuedPricePerShare": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Per share or per unit amount of equity securities issued.", "label": "Shares Issued, Price Per Share", "terseLabel": "Shares Issued, Price Per Share (in dollars per share)" } } }, "localname": "SharesIssuedPricePerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShortTermLeaseCost": { "auth_ref": [ "r627", "r728" ], "calculation": { "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails": { "order": 2.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.", "label": "Short-Term Lease, Cost", "terseLabel": "Short-term lease cost" } } }, "localname": "ShortTermLeaseCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLeasesComponentsOfOperatingLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r61", "r256" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.", "label": "Significant Accounting Policies [Text Block]", "terseLabel": "Basis of Presentation" } } }, "localname": "SignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentation" ], "xbrltype": "textBlockItemType" }, "us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit": { "auth_ref": [ "r136" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of the unrecognized tax benefit of a position taken for which it is reasonably possible that the total amount thereof will significantly increase or decrease within twelve months of the balance sheet date.", "label": "us-gaap_SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit", "terseLabel": "Significant change in unrecognized tax benefits is reasonably possible, amount of unrecorded benefit" } } }, "localname": "SignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleAmountOfUnrecordedBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StatementClassOfStockAxis": { "auth_ref": [ "r226", "r227", "r228", "r259", "r281", "r285", "r287", "r289", "r297", "r298", "r334", "r380", "r382", "r383", "r384", "r387", "r388", "r416", "r417", "r420", "r424", "r431", "r588", "r696", "r742", "r753", "r761" ], "lang": { "en-us": { "role": { "documentation": "Information by the different classes of stock of the entity.", "label": "Class of Stock [Axis]" } } }, "localname": "StatementClassOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stringItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r24", "r104", "r211", "r244", "r245", "r246", "r263", "r264", "r265", "r267", "r275", "r277", "r296", "r338", "r432", "r510", "r511", "r512", "r539", "r540", "r578", "r602", "r603", "r604", "r605", "r606", "r609", "r640", "r670", "r671", "r672" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]", "terseLabel": "Subsequent Event", "verboseLabel": "Statement" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationTables", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED BALANCE SHEETS" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" } } }, "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r263", "r264", "r265", "r296", "r650" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationTables", "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansOptionsOutstandingAndOptionsExercisableDetails", "http://www.descartes.com/role/DisclosureSubsequentEventDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "auth_ref": [ "r7", "r8", "r104", "r111" ], "lang": { "en-us": { "role": { "documentation": "Number of new stock issued during the period.", "label": "Issuance of common shares (in shares)", "terseLabel": "Stock issued during period, shares, new issues (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesNewIssues", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalCommonSharesOutstandingDetails", "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r7", "r8", "r104", "r111", "r484" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period", "negatedLabel": "Exercised, shares (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureStockBasedCompensationPlansSummaryOfOptionActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "auth_ref": [ "r24", "r104", "r111" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of stock issued as a result of the exercise of stock options.", "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Stock options and share units exercised" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan.", "label": "Stock Repurchase Program, Number of Shares Authorized to be Repurchased", "terseLabel": "Number of shares to be purchased for cancellation" } } }, "localname": "StockRepurchaseProgramNumberOfSharesAuthorizedToBeRepurchased", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r8", "r11", "r12", "r76", "r729", "r755", "r766", "r826" ], "calculation": { "http://www.descartes.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "Balance, end of year", "periodStartLabel": "Balance, beginning of year", "totalLabel": "TOTAL SHAREHOLDERS' EQUITY" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets", "http://www.descartes.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders Equity [Abstract]", "terseLabel": "SHAREHOLDERS' EQUITY" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r112", "r258", "r417", "r419", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r427", "r428", "r430", "r432", "r569" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Share Capital" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapital" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsequentEventMember": { "auth_ref": [ "r610", "r642" ], "lang": { "en-us": { "role": { "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event.", "terseLabel": "Subsequent Event" } } }, "localname": "SubsequentEventMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventTypeAxis": { "auth_ref": [ "r610", "r642" ], "lang": { "en-us": { "role": { "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Axis]" } } }, "localname": "SubsequentEventTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventTypeDomain": { "auth_ref": [ "r610", "r642" ], "lang": { "en-us": { "role": { "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.", "label": "Subsequent Event Type [Domain]" } } }, "localname": "SubsequentEventTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSubsequentEventDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SubsequentEventsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Subsequent Event" } } }, "localname": "SubsequentEventsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_SubsequentEventsTextBlock": { "auth_ref": [ "r641", "r643" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.", "label": "Subsequent Events [Text Block]", "terseLabel": "Subsequent Event" } } }, "localname": "SubsequentEventsTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureSubsequentEvent" ], "xbrltype": "textBlockItemType" }, "us-gaap_SubsidiarySaleOfStockAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of sale of the entity's stock.", "label": "Sale of Stock [Axis]" } } }, "localname": "SubsidiarySaleOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureShareCapitalDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SummaryOfOperatingLossCarryforwardsTextBlock": { "auth_ref": [ "r140" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.", "label": "Summary of Operating Loss Carryforwards [Table Text Block]", "terseLabel": "Schedule of operating loss carryforwards" } } }, "localname": "SummaryOfOperatingLossCarryforwardsTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SupplementalCashFlowElementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information" } } }, "localname": "SupplementalCashFlowElementsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "verboseLabel": "Supplemental disclosure of cash flow information:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_TableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "localname": "TableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationTables" ], "xbrltype": "stringItemType" }, "us-gaap_TaxPeriodAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information about the period subject to enacted tax laws.", "label": "Tax Period [Axis]" } } }, "localname": "TaxPeriodAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_TaxPeriodDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Identified tax period.", "label": "Tax Period [Domain]" } } }, "localname": "TaxPeriodDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesIncomeTaxLossCarryforwardsExpirationDatesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TradeNamesMember": { "auth_ref": [ "r154" ], "lang": { "en-us": { "role": { "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.", "label": "Trade Names [Member]", "terseLabel": "Trade names" } } }, "localname": "TradeNamesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureAcquisitionsAcquiredIntangibleAssetsUsefulLivesDetails", "http://www.descartes.com/role/DisclosureAcquisitionsPreliminaryPurchasePriceAllocationForBusinessesAcquiredDetails", "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails", "http://www.descartes.com/role/DisclosureIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TypeOfAdoptionMember": { "auth_ref": [ "r209", "r210", "r211", "r212", "r213", "r266", "r267", "r268", "r269", "r278", "r332", "r333", "r335", "r336", "r337", "r338", "r339", "r340", "r510", "r511", "r512", "r537", "r538", "r539", "r540", "r557", "r558", "r559", "r570", "r571", "r572", "r573", "r574", "r575", "r576", "r577", "r578", "r579", "r580", "r581", "r589", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r612", "r613", "r617", "r618", "r619", "r620", "r635", "r636", "r637", "r638", "r639", "r640", "r652", "r653", "r654", "r668", "r669", "r670", "r671", "r672", "r673", "r674", "r675", "r676", "r677", "r678", "r679" ], "lang": { "en-us": { "role": { "documentation": "Amendment to accounting standards.", "label": "Accounting Standards Update [Domain]" } } }, "localname": "TypeOfAdoptionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_UnbilledReceivablesCurrent": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.", "label": "Unbilled Receivables, Current", "verboseLabel": "Unbilled receivables" } } }, "localname": "UnbilledReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureTradeAccountsReceivableTradeReceivablesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UndistributedEarningsOfForeignSubsidiaries": { "auth_ref": [ "r196", "r207", "r515", "r550" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of undistributed earnings of foreign subsidiaries intended to be permanently reinvested outside the country of domicile.", "label": "Undistributed Earnings of Foreign Subsidiaries", "terseLabel": "Undistributed Earnings of Foreign Subsidiaries" } } }, "localname": "UndistributedEarningsOfForeignSubsidiaries", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": { "auth_ref": [ "r524" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.", "label": "Gross increases - current period" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": { "auth_ref": [ "r525" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.", "label": "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations", "negatedLabel": "Lapsing due to statutes of limitations" } } }, "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesReconciliationOfTotalEstimatedLiabilityAssociatedWithUncertainTaxProvisionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": { "auth_ref": [ "r526" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.", "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate", "terseLabel": "Unrecognized tax benefits that would impact effective tax rate" } } }, "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureIncomeTaxesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r66", "r67", "r68", "r299", "r300", "r301", "r302" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureBasisOfPresentationPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureLongTermDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r280", "r289" ], "lang": { "en-us": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Weighted average common and common equivalent shares outstanding (in shares)", "verboseLabel": "Diluted" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted Average Number Of Shares Outstanding [Abstract]", "terseLabel": "WEIGHTED AVERAGE SHARES OUTSTANDING (thousands)" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r279", "r289" ], "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Weighted average shares outstanding (in shares)", "verboseLabel": "Basic" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.descartes.com/role/DisclosureEarningsPerShareComputationOfBasicAndDilutedEarningsPerShareDetails", "http://www.descartes.com/role/StatementConsolidatedStatementsOfOperations" ], "xbrltype": "sharesItemType" } }, "unitCount": 7 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "205", "URI": "https://asc.fasb.org/topic&trid=2122149", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(19))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r100": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "470", "URI": "https://asc.fasb.org/topic&trid=2208564", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(CFRR 211.02)", "Topic": "480", "URI": "https://asc.fasb.org/extlink&oid=122040564&loc=d3e177068-122764", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=65888546&loc=d3e21300-112643", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21553-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21484-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21488-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21506-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21521-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21538-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r112": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "https://asc.fasb.org/topic&trid=2208762", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r113": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "610", "URI": "https://asc.fasb.org/topic&trid=49130413", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)-(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11149-113907", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11178-113907", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r133": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "720", "URI": "https://asc.fasb.org/topic&trid=2122503", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Subparagraph": "(a)-(d)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e1043-128460", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a),20,24)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "37", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "38", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=6911189&loc=d3e6405-128476", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6578-128477", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6613-128477", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966325&loc=d3e6819-128478", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(4)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)(3)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r166": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "https://asc.fasb.org/topic&trid=2303972", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569616-111683", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569643-111683", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19279-110258", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "60", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13279-108611", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(13))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(2))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(16))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04.9)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "470", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "740", "Subparagraph": "(b)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=6479915&loc=d3e66715-112838", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(15)(b)(2))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(16))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "740", "Subparagraph": "(b)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=6487024&loc=d3e29054-158556", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(15))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(16))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(17))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(18))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(27)(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(9))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(210.5-03(11))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(21))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18726-107790", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(c))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(e)(1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(4)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.M.Q2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1707-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1757-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1500-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1278-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e640-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r294": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "https://asc.fasb.org/topic&trid=2144383", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "270", "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e543-108305", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "272", "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "272", "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8657-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669686-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8844-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e557-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "34", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8981-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r328": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "https://asc.fasb.org/topic&trid=2134510", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124507222&loc=d3e1436-108581", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(3)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(4)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r346": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "https://asc.fasb.org/topic&trid=2126998", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "340", "URI": "https://asc.fasb.org/extlink&oid=126905575&loc=SL49131252-203054", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "340", "URI": "https://asc.fasb.org/extlink&oid=126905575&loc=SL49131252-203054", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13777-109266", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(4))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r363": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/subtopic&trid=2144439", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r368": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/subtopic&trid=2144471", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.3)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(b)(1))", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(i)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(24))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.3)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7(a),(b))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496180-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.8)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130533-203044", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130558-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130561-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130564-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130550-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=123338486&loc=SL49131195-203048", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r460": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "https://asc.fasb.org/topic&trid=49130388", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(3)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4534-113899", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126962052&loc=d3e4991-113900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(04)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(a))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(v)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(l)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r514": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "https://asc.fasb.org/topic&trid=2228938", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126928070&loc=d3e28200-109314", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32059-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(4)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r539": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r542": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r543": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r544": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r545": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r546": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r547": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r549": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r550": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r551": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "https://asc.fasb.org/topic&trid=2144680", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r552": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r553": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(3)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r554": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r555": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r556": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r557": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r558": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r559": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r560": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(1)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r561": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(3)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r562": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)(1)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r563": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e7008-128479", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r564": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r565": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r566": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r567": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r568": { "Name": "Accounting Standards Codification", "Paragraph": "4E", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624181-113959", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r569": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=SL126733271-114008", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r570": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(1)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r571": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(2)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r572": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r573": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(1)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r574": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(2)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r575": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r576": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r577": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(2)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r578": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r579": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r580": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r581": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r582": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r583": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r584": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(2)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r585": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r586": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r587": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r588": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r589": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r590": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r591": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r592": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r593": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r594": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r595": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r596": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r597": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=126980362&loc=d3e28228-110885", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r598": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r599": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r60": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "230", "URI": "https://asc.fasb.org/topic&trid=2134446", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r600": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30755-110894", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r601": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r602": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r603": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r604": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r605": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r606": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r607": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r608": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32262-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r609": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r61": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "https://asc.fasb.org/topic&trid=2122369", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r610": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r611": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "830", "URI": "https://asc.fasb.org/topic&trid=2175825", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r612": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "832", "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r613": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "832", "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r614": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r615": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r616": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL77916155-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r617": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r618": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r619": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r620": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r621": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r622": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r623": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r624": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918666-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r625": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r626": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r627": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r628": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r629": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(2)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r630": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r631": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r632": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r633": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r634": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/subtopic&trid=77888251", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r635": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r636": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r637": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r638": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r639": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(01)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r640": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r641": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "855", "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r642": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r643": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "855", "URI": "https://asc.fasb.org/topic&trid=2122774", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r644": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r645": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r646": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r647": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r648": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r649": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "330", "Topic": "912", "URI": "https://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r650": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r651": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r652": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r653": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r654": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r655": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r656": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r657": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(23))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r658": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r659": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r660": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r661": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r662": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r663": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(19))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r664": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r665": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r666": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r667": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r668": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r669": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r670": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r671": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r672": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r673": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r674": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r675": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r676": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iii)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r677": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iv)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r678": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r679": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r680": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r681": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r682": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r683": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r684": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r685": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column B))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r686": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column C))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r687": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column D))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r688": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column E))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r689": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column F))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r69": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "https://asc.fasb.org/topic&trid=2134479", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r690": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column G))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r691": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column H))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r692": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column I))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r693": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r694": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r695": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r696": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1402", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r697": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r698": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r699": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r700": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r701": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r702": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r703": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r704": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r705": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r706": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r707": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r708": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r709": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r710": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r711": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r712": { "Name": "Accounting Standards Codification", "Paragraph": "69E", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r713": { "Name": "Accounting Standards Codification", "Paragraph": "69F", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r714": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r715": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r716": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r717": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r718": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r719": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r720": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r721": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r722": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r723": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r724": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r725": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r726": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r727": { "Name": "Accounting Standards Codification", "Paragraph": "217", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126976462&loc=d3e36027-109320", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r728": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r729": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r730": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r731": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r732": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r733": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r734": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r735": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r736": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r737": { "Name": "Form 10-K", "Number": "249", "Publisher": "SEC", "Section": "310", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r738": { "Name": "Form 20-F", "Number": "249", "Publisher": "SEC", "Section": "220", "Subsection": "f", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r739": { "Name": "Form 40-F", "Number": "249", "Publisher": "SEC", "Section": "240", "Subsection": "f", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r740": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r741": { "Name": "Securities Act", "Number": "230", "Publisher": "SEC", "Section": "405", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r742": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r743": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r744": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314020-165662", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r745": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r746": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(c))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r747": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(9))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r748": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r749": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5144-111524", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r750": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r751": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r752": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r753": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(d))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r754": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(f))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r755": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r756": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r757": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r758": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r759": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r760": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r761": { "Name": "Accounting Standards Codification", "Paragraph": "55", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2626-109256", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r762": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r763": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r764": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r765": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/subtopic&trid=2196772", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r766": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r767": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r768": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r769": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r770": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r771": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r772": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r773": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r774": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r775": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r776": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r777": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r778": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r779": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "410", "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r780": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=109237686&loc=d3e17752-110868", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r781": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r782": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r783": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r784": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r785": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "https://asc.fasb.org/topic&trid=2127136", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r786": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r787": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r788": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r789": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r790": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r791": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r792": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r793": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r794": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r795": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r796": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r797": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r798": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r799": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r800": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r801": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r802": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r803": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(04)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r804": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r805": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r806": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r807": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r808": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r809": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r810": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r811": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r812": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r813": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r814": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r815": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r816": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r817": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r818": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(v)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r819": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "((a)(1),(b))", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r820": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r821": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r822": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r823": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(3)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r824": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r825": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r826": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r827": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r828": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(1)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r829": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(3)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r830": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r831": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r832": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r833": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r834": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r835": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r836": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r837": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r838": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r839": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r840": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r841": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r842": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "30", "SubTopic": "40", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "25", "SubTopic": "50", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r93": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "https://asc.fasb.org/topic&trid=2155823", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(b)(2))", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r96": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "https://asc.fasb.org/topic&trid=2144648", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=124440162&loc=d3e12021-110248", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=124440162&loc=d3e12053-110248", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r99": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "460", "URI": "https://asc.fasb.org/topic&trid=2155896", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" } }, "version": "2.2" } ZIP 127 0001104659-23-027452-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001104659-23-027452-xbrl.zip M4$L#!!0 ( +V*85:7ARJ%D!T 'E9 0 1 9'-G>"TR,#(S,#$S,2YX M )7A_Q':GBP=ZL@C6 LY@DPR5*HO/H,8N?*>3M\Q/H."3KK'O]W> MW$L)$V*7+#EQL!)R>583[B6YSHXY\\CQAC+)&XH.IH@TY]06$YDK24'M>@FY M$W(.(*]3 MZ2 9X78 G8;H]+#3B"V+A7[ RPPK2LR5YY.@RMR!9--&J)HU).39VM01:E*9 ME"->%8"*&VKW[.SL6*:F @1\J^IS0D/R,2;+^NJ<=#N][D;1F4G;CLE2.%;. M7*T&IN2T,.BTDEZ)5O=*'>J+P/8=DFW75&/-V_1@B4KSS,GLBMG*J$=.:U]3 M?^ZFF*/"1C/ %'Z40RG MPV72SVFP*LF@!:VG!^U^#/_=#KZ/[ZWAE34<#>[ZXVL@:.&K!=\%6T ES''< M>B37,+%=$$,<53FU@)[6 ?1B>#NZ&WP;?+^__F5@77^'WX,6VGK0VF)^Y;$G MTX:YH=?"^*$6C/W[;];5S?#7MEWFP+NDPO&8"#GI.W^$5,BBQ8@3CRZH;_/U M*.3.'":_(TX=TO<\YDBE8.YR'@KJ$R&(D%DY<2])8%,OAOE9.&L,XCVTZQX8 MP:9<^)$M&GYF2K>2XBU9OK41P)HR;FU$L!(9K!]B*?[%FV[UHIMQ:N M*KBN04U_AALP?1A"@K(&54:FA>FL"-.&CQ4Q:A&JGNTX/"3N#;4GU ,)2CN] M)4A=,-@2F:P"4>\W/+=G\FDP:K)2S\RJ88-7-K$57, M+B/VN/!(2[#8U&))&9:'!!:)2FG!-@/[U@Y"+IO'-ES5K74'#A6@GY:"OBE% M!;K7MO+G!/X"=.SMCW[$YB5-H".+; VA;.*$VW=C>Y7OM2_)E'!8@J?)T30' MIKC57<(A6&H-Y%/10"*FEBRT,#PD)6>HDFD;3K/;Z4'=E>O%'%T'\L-\YKMN M-6N858<_'L>I5[@QDX(!Y%-;C"LPO@^7R\B)P_:2K>%K?\KX0FJ1?(+Z]*$^ MK_VTSY>-RJB/>(XBM#:C6!YD9;"P1 N+M#)BH"&EWV-9+.I;J311-]+V(@_KG&3;"7E+H_-0(*2ATT'0_%*&1+*R81PM)_;93,GIJ*+4[F;WB(%C2>MH!S/SL MUN 0UO T5;&#F3E-;4%Y_@/U$718/JP6 @KJFR![T'(JS*/0OQ[TL!WRYX1J M[:V.O275N'W"]"#(-/1NZ*/FO&,G+A6V\K["5E+8BT=946&6+*TU@BHCN+(I M_\7V0G)+;/PM5R0E4&MIM8"^+XX-R,R2W*PLNQ:Q'1'C]!&T0(=&$7!YD4?T M@Y2V'J)FO"H0+YQ^E2$.9&F)%MT4:=F!-<4\CS)/:QB[&$:Z!;5W0S?C5&$4 MA3E N5%D-JPR5K!H^XH:)O&5,?>)>EX)SMO)VF,+Q;9UDK\%HO+ DOFS,<'K M.Y,R/RP5B180Q7(8>70"8&(AEQ86LW-DK6^ X;%_$8KHS+>%H *""[98T" : M89B/IQ+$=RC!@]6OH_ YCY4E!@1+JNO!,PR,BUR"B_]A(\%C&(86XAJ0H1^'V&D^7"* M9QL.#&67U L#XNX(YRXL*Z O-%H%])$/2UPP'M#(HN7(&1?>&LPN?7; G-]E MK!6L7N(+*?S(LWW1=UTIDNUE7$#*.O =V6@-XT?%B(SEQ+%ALB59LBC8%#,, M6C_ZO:UIN)1'+IF)%PP?\,#*T![6% ]^%B8?/U"(K^O&%"G!-HD=DD7'L2]WP- M/_X6;2 MFLJNIC+B[)%BB-VD8J\8SR1?<;; NL<./27M!WAU(PP87]_!"M; ?@Y92H51 M%3SOMHPJY9^U)73*S-%-02(KF!,K$2N3SPYD2BJ=)<5KK6Z7#@K'@@N;\S4@ M\&1S%Y;.2QI%*;PT,ZW:K"KLI[ 2+^^4L$0K5Z2U*=.Z;*VBIE5@>_0=ZM%X MMS^_69?<\%OWA6 .Q4^_TF#^ ,L4#E7L XNTC1K8S3,45F%9A27\EF7E)<+) M-'8SV[N%J6361C0+9;-2X:1Q;L1K;;"&#=8YA3#-5F$7A<7ZEEVT9PR[>N;X M ;>=((Y7+#+[&L.)1V=2%_2U20@OF$@=016^.GMQT]K 67$JG'"QDO+^DMN7 MR10I=WU3/FA323/]&4M)2Z]M9C*/3TR0U\ZO!R4]L'IMSOR M2/R0G*^_$C;C]G*.5[ANXBM?P^E%* +HT7G9OMX!6>NLIZ?PN$W+V0J\L/D> M"X#+[*P(5B(#3E02*5HS.HP9Q7]@$7O9C()/A8$4C[/K&$CRIZR;UA9VL 7T M@,>K?VYT&U#=[&O81"U^%;91##!08AO2C=_#4I-+C:6=1VLDE=& )H+\$8*V M@\?R(+@E5%I %4[_&S:6Y-/"4P)/_-98\C_&'O8#6)1GVD$,D0FE!J:3DY,S M#):3Y,_^V<<@Q9)9MOVU2-5[Z29_[=[TW9NM7%H$NW)3T? 5'.N'/.NVY>W] MKHHQPO7X:#$_U6->_>9*:P>& ^0E)'*ZC)9#262-[?%13:1!L'NB"%F7X9)L MSR:\6G2,HRH9A%/2(V,:1ZG%I#IPBBX77B')@%,! #X=YB)(6 MF5JO^1@^XZ-'I\[[/2T^9J_V5#W7HT?$Y)V>%HFR\U+<'&!\73P131*T=:^X M:97F;.O<_$4DDZ>0]$@8OX'4PF+V\E'5DT=Z.$S>.FJ1T,<**@L2I*UY772@ MML)-GY2J?DM*#X+9(U(M'M4QFG3!F?085$9E:JM?%XM)'81)7^6ET9?:JMXC MYM).P9;T0.T39:G%LCJ*CRY.CQZ9JFA*;>V;!7"IBL:B1\$HJDX+1>U+HS4N M@NH!JAWBI 6KTF-4,7J?2_GW-8"JA_!T[UR MIT6K\AF[MO9W>IZNYE-S>HQV>C:N!<[8N*D7]GA6.G'@L# MC\X6!F,_E1'SJ*/8U=21:N#IG2B\ZTO>_TKXM4Y?!BXLZO?S%!0:<$XKWW=J MG\_;P:]%#8V.5(M1C?):RU/&E!:VF!XP:K1(J+4P? MBS 5O&%:>'9PT5!#I*'4PO2I")/:7:/%JJ;?AAJG$BHM1F=%C(J/_+7PF#ES MJ&'92M7!T3TIPK%Y]JE%H::'1]E,N>'NT(!GY':B!R:5IP5 L M?Y(7H-KZKW6$JD:BA$J+B6)2IGISHL5GYZ<&E%!59]"B]J/BGKP^@&Z+H/%A M:]DT;9M BY!B%IT+N=7B\1PGL&KH]N*E15DQ#]\SJ%9K%L;'LIJ=B3R%#L*> M8NZ>.Z)M(=GOK+9D_#/*I 5.,;6O/K=MT=SA +<$PG)*+6[&,7Y:J,S/IT:< M76'%W1$1>AA:8K@D48S@LC"U-7-K('T?!Z(H/]>2.XB6+,**R\#SR$TI;0R@ M7<]2\'-F_[P$[)JYM6 K'B0M/VU)TGAVB[_%>B>LTVC+T) N.'%I<,-$^=/< M.W*IP+[&25LV#CX&OW=D:98GBVNMH.Y!7)VHT;7R:A%7O&1:/+1KXT[;S^[TS!P[BEKG$@VYZ M8#OSKWC%:X>7:G?BKS.6'?8>.U9&# OE /NQI"28.1+&DM+(@0+EL:1 K6T= MXAFXZ+G. SS\IF9482V%QW+J//46E=@^[790>[C@(L0O!["(,E85-G&VCTU< MW-T_R.^M63SS=OK%'.8 ^/S1)9D2? F,'\D M( YBB8AI5/)UK+J+\=76>-5#N_#O]>3S&9 M*0E/__][K83_X+OR=V1JK>27 &B^' FZ6&*TP^C;G)/IER-7S%:=W@E>+#KM M_A-4?;=:> D)LL]9RVK"O7>,SX[QX"ZRENW:B0M.6-C<*7!Y.I4\NF=G9\>2 M"IA(%U=*Q'$B_)%U?"BM (>Z6FU!UT"EP$CJ*I6WJP;JY-F3NCI!%N(]JSK[ MK 9@T+&YBZ.=?#ZGOZ+BDBULBI,K?)1),>NOSJ+I)$&SDY/B[#[B*5\3B+A: MR-:*^"8/1/V'7H?^Z7@EW,_V7;"R*6ME-N M>F<1T#X)CBSAS,G"3AX[46?Q.$]S=#!_I]OK=#^^@T)C:ZM7_NDQ]46 ,QRS M\F46_-5)\J$4IRC%:==8BJDM)I)=*#HSVUX"VUY/+8 >;!UR9RJ+(D/^I)D*M8-^#'V+TP;0R7H^+)8=_SV!.VW=S)X6 Z)0[Z#,!70F?^ M8.7(Y7$TKN#H^L_]647#-ZI#/R\8=&(V7U\'9(&=+*@?3D1 @Q"5_\I9N$Q( M*9 <63[U/"STRU' 0QS]9=HD6J]].8J.)9//,!A3YHYE>6[(XP &I94T#0@? MVZM_$)M#E7Z\)8L)X5G52P@BA: -=F2;^^S*@=!8)1M2<1F9J*16L:8NBP0D M?+ &3Z5>A[XIOQ(,%U$# A.8IJYQICN>$SR43-7K12!-H%!;4'MD.G5(G M=>[MA\&<<1JLBTB:4#<05MQ3[?M^:'M7A(P(=]( $%(M=?*V'LLH84_,:@H> MOWJ2\23"39/A5'Z 1AL]2_4KX[]3?Q;'X.N[_X+I9>:]@TC)O5DUM0-*-+M@ MBPGU[4@S7U W]JP:<]L7T1;ER%YOGAK(54N=S&^K(J)(F4%.JS[G.*A(8$>R M#!ANXNW;S-;=&+U_E59T^"*RE9JH^BIM+:,:]NHSG_Z;N-XWTF@K[S#E-#,L07/J/I/L.3]SOQ'(F":^3W<&E#*2;(J M";Q_)0YH##N(_BM,QN;P?Q]'^5FZP0YCQ@V=$JU*55E?W?)3D04TT2FA4E14#6DLXA=I[]!/W9,@ M\- ^\ *"4HLRTL: 4;_!5V9Y_89N^[9K#_F#&'&Z('>P]#^'GS=TPGAALF]" MW,"Y/II1;%-W8&.<.OC@)%K2@T\Q)/G&L6*PPC]S6.Z0^54&W[WK(1V=Q@RO M'V44PU7!=Q;\@P2;R8EY%=7E^S9K#WLOZ'^+@TRM; WH#\1<*,5%UR)%CV!" MWL0^(>Z)?Z7!/#IZ(5S.K:]]6&_!ZO^21/_#S*9\"V\O+DVU\QHZX;LF-]3! M7D_D%S9[<7E#-9-SO3HGL(8E?9?%K]WV[R\^GGRLJ!4C#@U=SBG42=:CZ[T; M4BU.3=V ,5(,]XP(:3 "3I9Q'M)Y!&DX#A])SX9$JQI_1"7-/=P>^G M]/GTN"H.P.W5)QN)FV@Z'4J-.EK&RJ?@P6AE>E;]NAE?=S5E+]U6JB9]Y1V-HH [+_WV9_5F\-9MQ1E1-ZP3$G?$)4"A MVYRKDZDA1HWGS_*,!&8+,$^P W)+?;H(%YD7@W*Z565HYM2[('TR LHE5%>G MYS9EXQ7,O3>SK5.:V-B.A--'H'DDUZ R#Q?R5'0S.4&7D/P3<+&&=;(I'!-D MRLMV,$6)(UG3V1C>9D/!*_0LS?7*/2CEQ D8QTLRP^F4.H2+XBQ.0]3 25SD M6R9K/W;>P4U]')]]!_J(:$FPM?R^]F6L6%A"P"K\ =H'QT4(9!VQ.+)-ICZ> MJX"&MO;!@M@&7E-ZLB;:21+='%NI[<&PG]V+*#8#0_HF:KJBP/R;2!U@(SPE)WOXV?,FXU9B.99>IG5P;- MG(3"G5R \U7^?X*5OJY!Y/(;8TTA-NZ!4G2BZYI"U*::-(T)4;W#S@9OH/_ M"H:E2&N@58VH/V+4#XKB;R4T47;.ID1@L#GHC0A_A 6)7)J@U13U,2!NH(YW M.-1V"]KD/S=5[IY:[E[3Y3Y5RWW:=+G?J^5^WV2YR2/S'F&.D,[!H_GGE>W( M,Z^B1H89&JCKO3,G;NCA'%OK.)6-KE0ZRA^"63,&T7OB4\;OB1,"D!7H&] V M$7@$HQ!6*W-EY'R](1G9:_PD?6QQJP&]()+=0R&'JS&LOZ(H::(_FW%YI_4: MYZ^^H(Y\M'*P(MRA8NORS^N*TW M%[HPH5*G-W(2E9.TX)I4DO[Z+1G/>*.&<1GR]#Y$?! !,: M%".SO(V@+.,YZ9UTS[)'2$5-RFF:JE'OI%HC-4US-<))4-4 6TW:6/VZ!H@I M:9JI41R3"@;/)#BA>%BZ,!^%IO2QJ^@NC+,T4-]?B,<>+%7$LZ^"@7',SW]?W1##7+<@\OUBS6I*L M;T;W'^$+S.XQ#*Z+H*:;#ITE/@31B:Z+YA&&_]+O9+.]4\N>GJ7<-U/KGSI4 M^FB"O:R@^:#^S,?=LPZ;@CJ1"WJ&IF-+_WI9 ][&0:Y6C1^\S+=:V_$/?!:O M,Y&WHO/IL$CQH28F:UD+_X(%OW"I$YG='A5^D&+?>)VC9B2ZC]?A413+-::% MTO9 ]4/7]JX%_@?4LS0TQ^9\#;8F0P9A3="HJ Y.HP]5P;5*>JLUNTR>UMS8 M$6B;IYERMN@$$[!Z HI#;2VZ$"F9W!HHZ1IH$;I%;-[ ML"=\A@%ZCLV1S(AYU*'Q_2;1C\O/>1+LDKUAD[F-GW=_ ;,$^F])?X7/4I$; M^HC>5ODWX0T\QG?DM&TA]=W%GV5*>$F6L+B)>JPAGJ]"]F"-?N\!#)WI;>T' M0::A#$U<6D-[ MKF]@#N#,)] 1J%3;)7,#Z^"*"L?V\&U,[31"3]9 O:#6-Q$M5!.\,H(&ZA([ M'F=W;Z+>>S<+T%8^#7T,:[(*3"NG?FT# 32;?C-K*.M[;B MRTEVT,4-/L_7V'&'$WF1YL6TP@!"6*#0:Y8A:QA2<:1>&; MM&'N$3NJ?,4_B(]HL_L#95W77ER:45657=@OS M]E.U"[F0./*G7F,DW#&0D MOW@O"1:32=C..#@]?$DM'U;22P8F<^WCU1SBRGVIXJ3Z14IKX'Q6'[] ^2Q+ M-?F>>M;1:[M.M%\O\0 =L=G<=5(&3J^1IX$:?W=H\9PV^[&!,E_+ M$-_R6FL<'2AJ6;DAK8QDKWYM-VWB/K!DWE9JB^%RZ:U_D2X<1:-3)#80J5^I M[](9NV$S#%GI%#O4,H(&ZA(94/1"CHS-/2H\VUQ.LN^:?2_#,P[B_3UY 0A/ M(J-)0?(DO"ZBMS;;,[>W=()0U=SB*4;UI<0?-9<2?VRP?6ZD_*31X%.#-=C: MB?UM*>]+Z[I!XQP-U/:0KB;R0&@X?1 Q\3-YM!2+>2.M>T38TB./3.'6M9W2 M0$O9'%H4Q"\F-5#^]*A%,7?>2FF@]!>1#U<%/ MQZBP<.9D8?_\?U!+ P04 " "]BF%6CE)N]XP4 #0/@$ %0 &1S9W@M M,C R,S Q,S%?8V%L+GAM;.U=;7/BN);^OE7['[S9+[L?TH&0]#1=W?<6(62& MJJ2A2&;F[J=;CBW .\9B93LO]]>O)-M@8\N2C,$'IZNFI@/HY3SG.3H^DH[D M;W]_6[G&"R*^@[WO9]U/G3,#>1:V'6_Q_2STSTW?H$2^,)K]>F9SP@0AS7-6Z(8R^0870[GRX_=3Y= M&>?G<1LWID_K8,_@C5U^ZFY^&<;M8>^KT;OH7EQV+GNT@:_=WM?NI3%]V!1\ MH/+-'6E)U_'^^LK^]TR[-"A0S__ZYCO?SY9!L/YZV9N$D#O8M-7\(2[--Y M4NRO3SO=3^]^?99+"+[6:&3I#C[U2DIG\(2E<^U'^N@V^_W+_BO9U1[ MAO&-8!?-T-S@WWT-WM?H^YGOK-8N:XM_MR1H_OW,]A=OYXR"3C="\I^/ 262 MV<@0>SYV'9OQ>F.Z3([')4*!?V:PUG^?C3.2V,BW3!(@_Y.%5Q>LQ(5*4QR8 MDLHN#H)L\Z4_F4_6B' [V1.BJ$U(6(=XM29HB3S?>4%CZC96J#[0A8V#0F_Z MRSL7O]9(=*K)(R*]=7S+Q7Y(T,#ZO]#Q'6YJ4X)<9^5X)GF?AL1:TKZFQ+'0 MP'5C3WB'R4WH.Q[R?>3SJ@39MR@P'5==)X?IO!'M/1'3IB@L'%(R9\A"SHOY M[*+J&I$UV C*2;!$9"N,7QV>L*5&<$T)IFXV>!]X]HA:TYH-R>K82EMK!-_8 MHV' PJ&*'M A$^S!F["EAGR614)DWSOFL^-2[[&/19:TU0BV>T1;]-F3$'N9 M4,!;\)]&;VOZ?-S#P^AVT* 6'LP@))R372%KH;Y*)R>BC:'I6I='44G<4T/^ MC86(3^9;UIYOT9Q.29&]^3GR6=0OUV(VM?3:W'-\N#3)8L$]_BW7(1*UE>IYB";T%R+.1O?G6"5@GG4ZWTS'.C4US]._AY,?CY'Y\.W@: MW1HW@_O!C^'(>/QM-'IZU(#( 5*(=-Z0$83/(S#)V@MKSJ?M\;;FIO_,&PS] M\X5IKMDJT^4%<@,_^8:9UB4WJ_B+?T;#/&G4-9^1RY?1,C]>'%EV^MUKJ^_]+M7W7[_JI<"D;*= H*23UYP2O\IJ,.\-5 &!B(_+]K'MFA#Z5"Z]9GZ9[9KPB M9[$,^"]'9BJ9-$SI\ G2,X M+#=D^UB_8FR_.JXKH%"EZBF161E/3.LU(%HEU)TB/2H4? 9$081D6!HU9LJ< M$AERP6-&?H'$2&Y#@ YQ"4$E5:#R529> 9.Z" &&_[O[(5):Q17:0:HF/H!3 M@BE!:].QXV5T.J])S4_+N56HV0Z2JP(%.'T8>R]46DS>Q1.&=)$LK%Z_W_MR M@OQ)$0&<+K!E56II[!^VT/!BNFQU>A ,34+>:9S\A^F&2,"@4MUV4%L=*L"Y M1&JAG&)Z#+#UUQ*[5$R?80O>!73+JQT9A[+D^8+PK%*5E+15*N("&. -\6J% M/2Y_J8?9*0:/-D4*"CR*"C2 S ULVXFDF-)89>P-S;7#=NRV<$0S+VG%%K%; M$2S N)U.)\,5TSN*PM&"9-1[[+,)R63^9+Z)I]TZK;3)$FI #C# G[$==@_9 M(Y-X-/[Q4S!OT=RQ'%'8+Z^85<%5OW_5.57R*X(%.$](A2?R\! >@U6B*QD@ M@,[Z'GN+)T16M^@YD&8X%!<&S5VA< 7,J2,#&&$5IQ:^RS-69/7:0&TUD "' M:K+3/$,OR N1E%UA^3:PJ@<.8#@4I\NGI8&; M+]\B9O4P @YYXZE8.:/%A;-0/U.HOYPJG1H 8:W;+O)"?B-&BQY 7O,Y2#/ M$B_BEM0 S:KRHJXN0'6W^^UBY^S@00X4"B_#22E<>++PLOQDX>,3_>=A]./I MT9C<&9/I:#9X&M,"9U#/&-*9YG8';<>B=WX[>OY;[/_C9+X;Y*&Y<$],4!K. MB"M4=#;U31V!= IR#F"A1XDW22TX_%6A26'1IPZR&W@J1@]Q/:K+*[6-Z0IH M M:']'&_?6[>H#G.W%PQ>@N(2:'P^[;&5+M\T9K6I(JGHBW& M7H (\LL=^4%ZS"K]EW[_JJF4&,6'P?&T -+T(GGC@2,TETPI.!0WQ621+[C5Q AQ#VJ%2>#\BRMH M,M^]\4.T$55:J3WT5L )<$;90 MZA^)32$ MG!(L7GE+E_(6_[!M^1X7/][^3^T4V+Q1)LU1:%AY!S2U/Z2L*8!"]E3^2 MN_S2EIV2/ZVA:-5:34WJT?;QLTN*WSJ4XD^89M+323,93AZFL]%OHQ^/XS]& MQO@'_3P"FW!2H!/!P??2DLU,H*JS3_%_-C_&T9>:P^KJ-X9'#O:VT#T;*UFE0&T MSK)$O<(R<&Q!TZ?(4:A/[!MXYJ?>NJ?RI+_6>M(/'G\S[NXG?\)-*&7X=^YX MF]% CC@6551\!USVBU3)*2(.9LEQA!WJN$71OYM)_>C-XJ\NF5%EC>9S9 E3 MS8XLQ)%]0=3M9)X69>+M!7H#[];QU]@W73IA#]=L4]+QK2C\1W8^6WI'[\T+ M!L?K-3L@T@X5*"LP'[(,Z)3@%XQ585:4CQ4G:#CWH# M/PVU\,F_C_8 KO=3*!9"-E]%N6?OEZ4! D&V<*=&6!Z>N>Q)5IY]/>P O<<, MK^W[(WD7'MB9$3X"2&A^ :%WT MTI7\)CA/^:$$ 5_+E=S.*JV7T'>[7Y$8RG=OU(LW4:<"\"M47[77O,,0H:@&)H14L%$,]7Y( (WX"J:@S"!CZB M6>@I ^(\1J"C[0O *SYT"AJ 9R!@'SJJV@,8']^B-4&6PU4O,)ET$7A&L28ZE< &N6.VWJ=Q.'N5X :XS'_H,SW6WW^]UVT9U!04 C/\?ER:-7.E#R6:) M%LCSRYQR<>$/P+4&<("/6Y[[Q/)I67!2>N:RH.0'8%<5-<#C6X>_-ZN=E%?1 M0/W7< O.B"3"4;&&U/$L%I93:,SU9)I.+_9 @O@KD\Y<1^E."7&?%S[A,0T+G_CZ:$L=" Y>; M'2URA\EV&3%>0+)OV5O,7+6B'M ST8TH,(Y'#X((86TF, M.2;&5A8C$<;XKUB<_SY4%JG *R:RT CLF^S9W^%JZ0G3]H==BNCNQVE'$HR!]?25@Z)SQ8?]GQ?=F@DSN& M*:9]WW%5"G"5J4X%Z&YL'*7OG[9]?/76OPBW[T-+ >*,B3:9TVBJT D?O+^/ M9ZC-J!3@*F&=.MBLMAPYH"CL]^/9=+.J!;@Z>H (2_ZRYL-V^M.JCZA7B&F" MAU7#SDMY&C'Q'1E^6GQS:I:NBY_Z (C6&/FKXB;/KK,HVR(]?,<_3?W(NI7N M)YRX?:>V58X;N!1WG.6@U^]?7?^T[T/J5F.?!-!JR':ZD?KM'GN+)T16N==B MOQ]ZL413G(]GY" U'IM^OZVN/3[J1)]S1W7L1=U^/(MO5+/)3DX'N&EGCNCQ MN[:BYU97W4Q+FFCZ),UV_YS?6<6/"\3TZA^LRC4!9TCM0[#BF2HU]/5O8*J' M,B*D%!0;W8H1B*25]G!>IP( )M5K($OY\G$4TXB\PWZ-ML=V#JB/^G??)!XD ME9P5W5J>.+@1#0R"]S\Q^6N;Z+:]@K)T^[=JF^VQD,.IH\$[H[=)?12VC0:6 MA4-^'M%"S@MSCGJ9@M>=[FZF(&_72!HVMBT?/NUO_V-,.76P3-1HBB@ZQ%1: MY=C'L%P7O[([3^XPN<7A6[$5FA?ST5_SKMHWF#*,_LGX)IWE2!US&45 M:HF^:(/"Q_ZV7W8353IYOBCFJM82O $IYV@35]4(&6#&,5=$M!:G8*29@J?* MJB8B$(XUR?A-)_OJ.=>>:-&J8GFULFCT!#RO,?\X?<2DO>OS[$HN%*;U] MJK12UF2OZ:RMU] @5"%EYP)$75P _2>-U,(54S';A=Y>:T+_=A%7NV>G[T[0 M/9115_.G:R8'U8#&!50'=.Z[UVGH.?9^WK%O&S2B%D_ I]\Y'C66>^>%'9_- MZB/OU66%C^P$2L1)F6_:3 7#7;\A. -;C<#TT*X)+<15C1)H9<]Z6;66LBU] MXC<;?%-C)&%F4T7+0W>[>0\=-VFDVCP!'YU7A'293E3^V.\!6JU=_([0#'&? MHHQ 6@_.B%0F*?/"FTKX8,;A##5[;S+R?2[.'5*T3T&E$Z>V CB F071(HVF MWRFOE('^N?-+__K+*?%: =QI'+*5766OE292VM*.DOK]7O^4+* NQ" V]_FA M% 9EC3W$WX>RN>^(_Q3?5:87<15<"Q3UPUX:N>G*P',#)YT9+BM@H*B[$PC& M.""6X;$S+E+?']M79X@K$$U<$,Z(S,F>\;UJ@@.,CQZ7=!;-#@O(N,D7/!%N M% 4',:.,G-&#&82$._M=IU=YJMGK](2.;]M=D>-S3VHF>L_2I%&QTMZ3Q.K; MW'%M]6JU[+N7=O>$;]#4=.S!/$#D?Y!)[G!(=N2MV JD$:O'TV;7O2;0 #VQ MJDH$)E&UF=.VB5I1 YSFZN!ZHGV*[J'0;N?CF848-L!ILA:P5UR'5;SBK'*Z M_?Y54XD]1[,) 6B -SBIPOI!8\2G5^2^H ?L!4O1CE/5YCZ6C2BA!WAC?G+A M\?;2C[N03@+0@^,YJW"5()RAE>G0^029S._HU,%TV9@0I2/MT60[C*9V#=1_ MU_YQ@U3GI8YPA#73#@.I!37 B_U5<6VG9?M;1J:MCV4>MEY)V2/WBQVA'7%/E4!*6H+CN>H2K6R!]%2 M <#U,0$LI:TDP7[G9;]_?7S663-G+OF(OSN+WJ:;-?\J%?U+K!>\^ECIMK*7W87298(Q<\J[EX#)BW=T/L7-_+\8;IA-.R2JPD$ URA)IPA MKDA2T1L6=?$=X.B"JN51*#=HC@F2DJA=_R2IK S,GJ(!Y"*KT3FN<-R'[U; P[GE3DJ]=E*> '&V\40=,\8:[:250Z[)^RR MK<:@IP/ OC\+ZU>,[5?'=2FBW9-XNY^U3$:CW0]D1/MJ!6!62NZA6W:FM;@P M' ,X=!BA@!NVYXBDIW\DW\5',F;(1^0%L3D^/[YBNG[^&(NJ451L'HX95:!= MP6;J5 OL ";"NUT88]?=F82\TS'X:A);V9#$+;3=5C21'^VUL#E!AYBL,14U MR9CARWE*BPZ%-5O"Z[Z(3R%.V&-J(FF@)490$W" >:M%C[8A_>P$&5?%'F]4 MRTN-N*&DE;9;107TZEFJA[XG=K@TR6+GZ&_J>ZW-(LJ#X.[8N+7<;E'V5_@G MWB+58)\/_B@4W#SP1=NJI56.//ZI408DM%C&EK>(U2Z0NZAHUI;9U9Q-7]:O M0DAZ\"JC ABGJ]\X,"#$I-_R;!8*DOXY]J+\H\E<=DF!WFN0:N_]]$VL244! M7,,H4$?JBN;XRB.F7HW7Q D::*7MZ&!5GWT<,*QX#-=KEQNUZ;*W9]VY^'7L MT; HTE;R563P_MC;*(1'4WODJEP67/&6%L9@71NL;R,E#XM)-M_'0AF.9VS$ MBM)7CI^]LO?(&WL689E-MRCZ-Z7J^!)UP8A3J7AD+Y(7*?]V!F4T^:KP/(6G_41DKP'"G0 ,[-\NKF^].Q?;2K8048)201S(E:&TZ]L[".WT\I-X8H&P M*HVUUR@JHP>XFIE'-_9>Z.,=$_$^5VF=+' (%TS61;L,),#U2?'SJ_B5ILKU MVLNR"E#I"5'B<',6Z36'*&:(PA/ HMK7?JC.\'-*:Z7_'% M-]\N(IW'JTM_^W]02P,$% @ O8IA5N"YK2B32 )"P% !4 !DMNO]!-_?#W:W:3.)DWG5F;\FO MC'>=V&L[,V<_3=$D).$,1>J I&/-K[\ 2$I\ "!(@D338=74Q)+PZ!> [D9W MXV__[WGK+YX0B7 8_/+JY)NWKQ8H<$,/!^M?7B7QZO6/K_[??_RO?_G;_W[] M^N^G=]<++W23+0KBA4N0$R-O\07'F\5#N-LYP>(C(@3[_N*48&^-%HN3M]^\ M^^;M-]\N7K_^#S[$J1/1+F&PX&.]^^8D_^$L&RT,?EZ\?W/RYMW;=^]I]Y]/ MWO]\\FYQ^S%O]Y%"ML)-#7T<_/DS^]\CG6]!,0RBGY\C_,NK31SO?G[SYLN7 M+]]\>?]-2-:T_]N3-W__>'WO;M#6>8V#*'8"%[U:T/8_1_S+Z]!U8DZ>0O?G M1^+G [Q_ITW>\V^>GWR[O7[DV^>(^]5!B+[66.2O#G[%2O:%W!) MV]?&SVAP\M-//[WAOQ:']N)#V^*XW[U)?WSU'_^R6/R-A#ZZ0ZL%[_USO-^A M7UY%>+OSV:S\NPU!JU]>>='Z^37CU=N3%.?_]1X;SX9X+C_:L%F^[SW54)"0]%KD-B%'WCAMLWK,6;3F-SS+7( M_Z8GZNG$Z M)=A%2]_/-O7+D)PF$0Y0%*&(=R7(,T.%OI-/E'BW=,D&\0;%V'5\0P)E%A3; MA,W!NZ*K/UACNJTM*=1Q]#E"J\2_QD_($-G:3&2#*)<.)K\Y?H(^(H=]YJ=S M=]35PP%"D. G*K1/Z(IJ:(2KT]$R/K0U3@#-Z< 0Z&Q#I15%5\$8\J$YF0WB MW))PATB\7P8>4U)W#*+NV"M'LX%>=5?JCIIT)!MH?0A#[PNU@KNC4QO!!AK7 M8;!^0&1[CAY[")UP%"OHT$7=YUBM]+>!PEFXW>(XW;3"(,9TVPI<3+6=P/N0 M.,0)8M0'PW;#VS8IN^,I',4V.HSX8<"_B6Z2F#ENF O.#)9-@]M _L(A 84A MND6$ ]8=4^E($-"BI-\EJ8U_LV*&OTN7TSGVDQAYPY&@TZQ6ED /"3DA71_;EQ3,B+HZ8JW$0\K6=&QCI[I/MUB'[F]6G,'A" M$9. ?CM7C[F@DH9NK'P7"=ST$/X<8&ION]0 Q_%^6$KI30V5<'>4R02[.:-' MI)O6S'9,9(H1>G">F8."_7D=1M$IHDPN_L2.=.2=[NF'_TP(CCR*2C]GOJ%Y M09",_ID=2'?(#9\0V=/O$T(8Y$.1J_VCYVB%"/<:9S^G3A5Z M4%UCYQ'[5%GJ8V<:F=4RN6Y)^(19R$3.WLN0%'Z^).&6\9_M*(>FRYC=0"=Q M2/9W5'"R3V+#-J3VR'6]B M$!/'C4\=G^F+44%WO'GT\=I);Q #+V]X%D8'SWHW_V*_":=$I)63^+$%6E7F MM:+IHS7S(;.#_"#HA^_NT!,*$G2Z_X#"-7%V&W8QG\?7W:S.DBBF*X;TT/9- MS@Z7?-D?#W2*H6DEF@H*8=CM$HMB\%)=4.IU M82P;J"U2'.XH=48=$N9RC-)8(;)G3( M.^0B_,1N_/K!*QW4!,0W=)\AQT%[DK8^F@D8KP*FHH9DWP^XPC FH!*%7/8# M4#RB&0J68RC[$K(ZF@D8\\#(?K =1S&S,[HD0<5+BK[[8WT\$W 6(S'[05@> MR0AL/+BR)U39&";@Z>9^ZP=_USF-[?!GU#Q>&]G=#R,9L?^3'86 [7..GRN+ M?0UM_<&-8"!P(_4$6SCB0!KI+57;W=[;FG)@TQKJ@P$]133>8-JJ"8"5 P^H MN9J O6'H(;18$V#+QAQ*=S0!LVK<(?1($S#+QC2I4YJ LSK6,/JEF=U--JH] M_9 %USBJ%T+",H*,8=8K=LB!,QN(>J9[*W"QSR MI< MVI@<9L)!_,;#V\-LCHXC41+ED%?!8I6\ON/P.16'8D>@/,ZPUUNT?>Q*42%X ME7$- (JW[$(R#%ZG0YN$M39T?W W%"SB)H_H]6%T@Q +1S=*XW0%#T/D?.P" MP/0['/ =\9I^+,V*GF,4>,C+YV60FMT&&1@Y('[HEF;G]7Y"4D\-T;1 =EG]C.^8XC3S_\<99L$Y_71;E8K9 ;TZ,?A][-:NF%_+*7 M 99/XSN/R/_E59LN,8X97?2ZO(&!\GEI)6LB7>ZDB?9Y<6'7A6Y)RB2@"R*? M(%L;/1;/BH3;EKP,.Y+AB-'/"YT)%W'8V"Z?*(GH!.E7+)XM)/1\_.75B3EA M2J+7:\?9%00J^^8H5-D7?QS#/'PG8O456=*=8 $UMLOHIFAG ;LB$.(E(FV0 M+P=! WNBW\R%4 .GHFQ+1^0"+1AI*.&-D/O-.GQZXR&<"H%684BJGT]PP!P>_VA%23]&$S6D5!58_* MI%4P&JB=-GF,L(<=LK]W?*38:9O:Y3NMO)T-[(XP?'*V],\'X@21XTJ5$_T. M.;X:'2SNS(U<"SO@7-JI93,PV=<9V=[.?8W6CI\MX+K 2W[-2%#[=:1S1BBT MHI]*9XA]0911,U1"7Q2TR@A,O,H]H>VJA507B3;0T*JPHPI;PW*/62X9G4:PP+2?HO&4Z(YVI6[SY/]Q^=?X2$&Z:"%=&A M9T;)5CUAT>0('5/]A.NH8^]FVHA[VUMC700@[$N?XBIL 0!;F:TG'GR=-CBB M[]C]N6#EU;[/:%/X?DP(/Y9NX8HPEG\I0OFQ>,-F17KK1 Q54!?E[M"5256I M"Z2=/0]A9$7HKFWZ)%11:L')-RENGV+'DVXP]#WVS S[()_<45H M3,;6BM8DD-;0DI6ZDJP6X6^YC[C\FPV;EI5QJ!5T7!+"MBL>]'ZZ/[:Y=?:\ ME@(#^PA[X#%&216=(:?(+>E!IK"W*,4R$XY"R^)Z+<'!;?5!YK>M0#TPS&]6 M5X&'G["7.+Y@&2O;9*23M+&%!2L1=X?\-.IR@W/<"JVC%I/ >JP\_Z11.G3%ISN&E@CM'563?"T)FU@\C#KQ+-3"M738M)F'KR+A^)"62EI> MYA#/D5 H/&2TVJKQM'^ Z+ J;(=K<1DHAF="WS L).DO MI,Y>!;M$=A'8U"RCD;P9$-2$$M_<4(&>?5EOY$W8 L6BE,L&9B*N&A"2?(N- MH?1EJ&42;T*"_T+>YX""R*- TI=)^&,)I_OL?9+TY569!W? &926<\\9IL6+ M.A8MW!A&9NC/"_D,%B,)!A1>J2O$)#]*\0OFD9'[4WHB 6F//#Y D6(CC#93 M-RKI@_5&()!2:+OR9E+$[*_=!HZ$VLC5-=OJH$>E5C28;=?@0=&^=U'@$!RJ M\C!$;:HY&.4V8V&13?HYB';(Q2N,//$9U]0NQT;>#D BAI -H3YVPER,XJ!\ MYY8/!GO_98YWK3VXVE"Z71T;@D%0_2H M5SAMW+#.V:9/,5]N()/W8!@)&0NEN:"7#"IAD MUY@1ZF(FE>9\2![W*!L*D@0?M'P6:1;OCV6:5-:>JFW5ZA.WM8!I!1!Q1IVJ M39Y:)VX#P/I3LB74PTYH 8H&YHEXX@$AR?>OR%NSPP-%>!W(KJ#5C3+*R!J! M0$HHS4W-I(C9E^D&CH3:R!7E63PH$V3Y8)!D^5"9^71_^/-7C BEZ69_C9Z0 M*'JO7:<\QT:SDTTB%,M3UX$4)QYUZ5LEB5Y?BTE'[1@>]B-+*=M(:V:>:-1N M1DB+\(P@#\>7CIN^2BPH[B5MD!?Q$32PCHBX'I&BB1 9^]*OH'ZHA5"IU%9M M,%Z'2#@()!EE+ZI[NIF1 I&&YM!2=";<2* M,EL?D,FL?"!(T2>L"O)9I8V.:;P"IJ,BP(KFY]- M'\DRD]7MRLB(VEG-0I8S(=1'KI)L7!LSRRZ6C05)#5@&,?:PG[#:M??(30A_ M6.;BV?43#WF7E&S,Y9BDKW_=K"X<$N!@S=Y<2(,*]^(!1$E9P\^4IW -.1,8 M'DDU=-WF2FK!T-C'D)FP-<5*Z63#0<@KFS9"!FDSR3.N1>>?X*?\J"C]9!%L M\8&GRF*'D\LOI&_8 '[I'"L,P,^OL;/G.^<&IR_[7 7%1$X20JS+VK ]%>3YQ V3+^@?[S\>+3P_WBYG)Q_^OR[N+7 MF^OSB[O[_[NX^._/5P__0T?<^D$D?27E/:?&HQ.APQLDXP9S\*?E*LM*UNB- M'1 UXDTT^^0(F%W7PJ=XCE)?7.-J\K/%K(E)98V-RQF=^)B&ML-PHOZ,DR8; MFN)A&K"QR@T*S38,>.:;\)!4M!N("YPJAX>_U"Q01QJ%2O"MDOWX?M^M@[VK MX,S9X=CQE2QHZ#,F.][U9$<#*G99X[KIBT;(2Q^0I.C0\Y]M#4\H3=%0LTF_ M_Y@L>]^79?IH667?'7L$,T!>[FU0\DK6>$S&?-N3,3(A[,6AY(6GVA#:C0/@+&VQ7[3##0Z#93K9=1A%GU!\LV+9G2'A MY(]C@A^3F)U>#^$M%? @EK"[]ZAC,O^[/LSOC2D<4:#@'F&7,+;29DPV?=^' M316X&XG^MS MTI=E/D=HE?C7>(6:V=I[2 !KL(&MO5&TIOMRGTCF'VFC])Y\5U=Z^5B+;##X MRNYA*7)_P.F>/U2GU'Q5/68U6')Z-9-YUHE?L$[,V9TQOTDMEK2UIADK82\I MQRHAGYZF?$2G$&IQD\01U4T\'*SO0M^_# E_HDI'J>XQ'H"SOX,4M$83DN_K MG-U!^WIZP+=OW[T]T71^9>/"50C@!T)V?U:ZTPAPE(C&(,E6>%D]$/L]@]UY M%!AAEAT?M^Z,M5W5)XGB<(M(\:4Z=0B3L@< [T;71\9#310'<&A<4%%BN0D/ MR-T$H1^N]T(.-+0%H(;TH'T#C, H2D&ED,=+[O7S2&[ MD-VA&"W7!*5),TJ^J#H "!8QP"$5AN9YU5#=0/;R5>6W\16WIKN+FN)6@=@. M)86B7?O5KNHD9'N)@M:D\2,EQS;92JE8^=VB B/A>$[&"J#C$])Y5A.R_+M% M;:2)D&5 K9YETFN8TSVK%*\PDK5ZCK_'-@7(2HUC+7Q@\HK!IS2$M7K",'Y; M"*06]XH8VLX[W"4Q(@?(FK(/Q:T!&+@MY+"2D2A&R:ZG*2&4C E!%)%+_,S^ M4BOSJ@X +.".S%%A93UYNGFY6%TFDB.G(R=@+8\EOXA1:P*5-N.?^4U)$-(S MOP*YW;A(X;.M2T*8(LD-ZM/]L7L ZL60"Z&TT'3F1)L(Q;&/O(* L,G5S-+K!R%W^W=&4?RN\SY% ;Y_:O^-X4PPX> @5 M\;Z=1K!_1Z04,2F'FO :XC#"!+FT,:LH?K-:81<1L1[8V-KRA5)',3N>, K4 MH)0SN0S))_2E6.(S#.B?;KIAJSPG[<88?X=K2EV7>U;:868WNF;/GD1>>F&S MY2QN"L3ST44@2V$V0N1LEZ;+4+AG\>%4PXD^[UB]VG=O3[Y]^U-363J=O@ \ M'BH!K%2DT\%H@./H88-4DW]_\KW\<-+O"\!ET<2*EAB!73S?OWW7>?$4^@)P M2)A8/ 6,1DRGFT3&X@]M-8 Y2?&%)BG.A3L@IR-2E0_A=7"6$(("=_] G"!R M7(; !RHZK'C4*5K1-@_.LRRPHA]P;Y_M=TYF' L MY;7-9(T!G,YZ3)(A (WE&SU-"-V/F$ESF.6]I#=*;U2D**$E9\4,_ MX8GA]/,7QZ^IR<:&!5\2TARJ<%9GXWV7\KKK-\2S]5*$3V3JJ-$IQI22)MM+ MK=(:11N8Q-0*5-?Q>JSB=?&\PX0W3K%2B8N9\<>4E1][RXH9G(<^09BX+H,@ MV%4 ^^*>T(LA@+_?ZCNMW? M=C]N6R%EK4+-TDWK\[,[U7:E:=[72],4!YM 19I#0:'3)*)\C*(B_*?[PB>] MNG6ZPXQ[[ F@4EPL2UO#J5;3D6W%8TN*I54%1005^Y,@=52^1C\8%\T-HMC$ MH0I.P]Q6TB]/B@*EO)Z4-09P-:PM3,7+21D^ Y"Z. U;"7(ZRUH"\"2W)[(, MF0$H_!N.J"+(]'(?LPAW.85E+0&X@=M36(;,($XI@OB]P"XD\:'R#T;1I[^N M\193A4\16*S=%X"#MST7]-$;0O(1;4VUZ8]4_U1(O: 5 *=L!XD7(#( 56]Q M]**,!EB_>/(=7SVO9[9IFX_*JF-F6YJG 8@^G\G*(J=+^A13N=: MDU%):\Q@JZ$QA&9%=62"GQ6*5;G!J)0T9IA5D!B CA_HY,$6^PI3M]9D5%H: M,Z]J: PAE2C<^>@I5,EEMO/ - M"P/$P9IB0_^*,*52K6P$KT=[L[I)8O:8=,3?>/\5KS<-:]W4)##O()3R89H$ M@T=&=8(W#5VY#,D=>D)!@@JUE!X9%F0&.%W"<&I,OHAAOG1AYGP,W]'WD MQE@>4-EO2)C7>P;8+T,8OBRD)."EFUB>0%33#+L, /.VL1.?1>B!YNHM"2^9 MTGD5<-TSA9ZKHS>KW)=UCZE*6D#OG"*WY">5/O/[S@/TWK2MD/0EP]1DZ<(A M 55XHQO"DKD'%ZDNTP&])C8@65VH 4_ "H"R=.5X?Q7$B""ZM5Y%48*\&\+^ M9>?JIX01^V:5UG].?]5W8W<:'.A%N);P],4=1*+3+4$^WM(U0/:W"7$W3H1N M":;B[7.II$WHJC@Z=7-EK&U^U#ME?M3K10&,10['@@.R.$*RH"MS<81ED0,S MYU=)A[&^Y5][X+.Q\+M1 I^5L]$JA?V6HTP_N6=1'LT<7G7"G.H7#["67_.5I_3XE%@7/9U M$'%-+HNQMLKIO$)]\?U/]?/VRAX [A0[RFZ1A4H4!SCJ+J@HL4R48\$<^4DG M;PO@&K('[1N0L_L<*7$\Q,!6KXQZ,P!7FP:60QTOJ]SX% 8NJXD?H^6:*E \ M>T_)%U4' />E!CBDPG!^/K&LX,F>Q>JAX,T/++[0!Q9U@GGGDAQS28ZY)(?A MDARM"BH<4[?Y-<$*$<+?Q!'$/G<>!8 FI\NZSCC"RS;1@#[/ULB[@P](T#\E17JH+_!Z2/ZE5>.;L<.SX2^\?U#[G MNY)J=7^['7!=D/ C$LTM:I!O1,H@/L.N>$ZP']1T]>C MHHA7V#D8O[GT+H/BYD1_2[;(H\K'\C'B-3KTQ<#,;###+]M*C!E:O$SA2I\F MC].6(XA793X 3O2!E^I0LEDAY,N43NFST2-(JF)N0,;MQ*16050+!G5G-.[P M>D.5SL\1$FZ<(\P'R$@?4 1'(.3+W#AOX@TB[*IDY.-=,B\@?\+$-DP)05^F MU&8Z3>&'\332TJ2 W"(3DU<1-;\683U'J2E&O$?:&2 MG;I-KY$3H9M''Z_Y<&.(LV1B0&ZHJ^.TZ9#&?9'O%PMA0 ;UJU7K[X !*<)^2CZ$UG5_F9GQ)!PA< M3 ^?4;=B\;20J@M,;"<6$Q3,/OQ0BB)N(EJO/;;M5) *+H#90-L2\65NCL?H M]S'VQ-)L@'12&W?Z)5I,7K@^A*'W!?N^YGXW^&R 5,:!A:N9%J"%2Q9%)2S( M37',*W+W#T1KG@&2LC9 H%HS 4!+C@F3?K3[2,&@@"13+JA_ZS!+ M>X-B[#I^U+:\_OM!R^O3_B7HYGK[TF&L)[O-]?;G>OLV2G TB*+]>OL3*XFH M3^6&BF5S140 I?NM%D2<1I$^8\4GYQI])@O]CU"B#_I+*,:J1W[M+Z$8JQOY M=;Z$8JPJY/P2BL'"_O-+*&8K^W_M+Z&8*^H_/X5BKGS__!:*R3+]\V,H9NOM MSZ^A&*VA;_0UE)=8D$^R$\!T[BJYK,0'Q(UT#EVU5.WG"*T2GU6Q;7W?_&W#??/AZO@XYR*==)'.NN#3 MSA?)0"Z27_P;$0->.,]O1,QO1,QO1,QO1,QO1,QO1(QV+3Z_$3&_$0'*II]& MW.$ CJLY[G"..YSC#NM16'/>X0U.:_QQW.,<=SG&'<]SA''XP[GN,,Y[E!UNY9'M:UD ML5AZ76&Z>Y5\UT/,6DCBI8/);XZ?4%7689_Y=6:[P,-OWYY4 P_9J L^[*(X M+OS(P@,YLEI'I1I'&2K>#:N/E!""@S5M\"D,2/[QU(EPQ/JG9;F8:Q__DYJP MJBC$8:<<=P-("Q#?QT[,&7Z=U3!27$,K>X")2!Q#+(J;AI(J5@]P"63*:^N& M/C"NK#5$5X-#()2L#X@:?PXK'KGTMI2DK*IN3 ^@B^<=)8G8/=.R+X#;;RU) M++),$S7SK(M(7& ;_71D&?WPQQU5"I!@BZS\!B8N9ZS-L(*_';X(%TOM5[M; MF%"(2A2T)ML?*3FVR59*Q'(S3;6Q%54X2<(Q5JJBJ#C#TTR99;>(*",VT"EC^ M<$WVYMT'$GZ)-W=4HU/JJ*U' :"M-DNDBH&-&(+B*G,%A4D0MV:DJ", EU\_ MWHF0LIMP.,P9T>3''WY::W]*0?_>Y!Y1,!D0'"0&!2W MB/ /NMR6]P<0S@Z"W7(*C4X8F M>RWDB/*V "+W1V>;G!J@G^8YHX<_Q9?O&(6WAPY/C5;UWH9PCEXC M \A3L*'S&:$=M%"#^HD4+>-#V[:A".]T0Q%HL\/4"WR<>^'$BQ7K\\3[@(]8 M$!,P\'Y%WIJ)G4M_XC)YI(HR'*''>.-N41E YRC"ZZ IS$#6&$R$06\V%O<) M&;96CY0Z4$J/K+PY#'^L6OS4W #AB\WA0=XRRD \BI[2;:?5$X#/M4GBBDS2 MPLEV*1;O &13#99Z2P#>C3;\$.( PVUZNC_\^2NF^A9Q-_MK](1\52$^SZV,/@;U%-K(.KKL+7;@P8)UD[P1;R50]=&.SE9E#$\3I1;J/*'@". MMTX"*V2?"$%PS'K7FEGO )U]@S#K'5AFO6_-K/TYIK5K6R.T*!L1G96FZ25['9%5/KA>;P9@-QZ0\]K/GD/VY9OSW8/8SXVS MNQ,A8#G>SS8L1C>Z"HQD -:>NI>[W;.)%S@H^MFW4TX3%%SW\/N=ST'X&"'R MQ+9XK@FP^[[ I?+@U-+>U=%2_6:8'26CI0::$(79=3*[3J"[3B9BX(WI.H%A MX)G9CYI,/N.S0(G=-44O1:ANOR-B>H:B:+']CN--#=^HC'!4)L]!D^9CM3A% M#,P%P&0=4T[-$@^.)=P500E^MPD])*CMT;A)&I\.@$T-6!Z;Z?=B1?(>Q7%Z M!HPDE*4)X05A3T L2Q1\L8+)(M2OPRBZ"EP_\5@MK N'!+392'*JFA]>$/H$ MQ%9%T*%S#P9"A3T4>[%:(3>^67T,G](U>15FXB-: M/6$XO%N(JA;WP%0F86^B)3$B!\B4_FUI:P"^[19R6'J'5X:272LDH3IE3$\M MBL@E?F9_J=\?574 X,7KR!P55E;Y]JNR.Y_J1DD+(' +]61PXI MT1HB_3H'BT6T.+Z//*8-YX]I*UZYT.P(P)73DA-ML+.Z9M+BWU17)RQ2*":) MR^!0+AIU%P#^BXZK1HT73'6NZ6I4IZ.UVTY]K,1O%S0I[M.[G91B](&$46L> M9YT@:QI*3C%\AZ4K>5KE>)9BA_9^6-E):!R#_5?9W' M 1?IB%-R<\H?CU'6\&@S )07@J+3_4?G'R$Y\YTH4@4(MQD!H.M3EZ5Z;P@) M<+;KKY%#>H3SD[-5.T1;CP+#.=I!N#6Y+,;:KL,TLZGOD)\&@6VPY)5LK1X M'*<=9;?D1%6A:#GO\PGY],3W>*FQT _7^SN\WC0XZQI[ 3!T#+"M$4VKK'L@ MCH<8 FI>U9L!L#P,,*>.E^TR/%1MW:$8+=<$:3B\51T 6 \&.*3"$*HVTN3% MT^MJ+VNA!69B3UZS'CH]7YX")Y4WK[D;[&-.R?%FY.!X9Q2P%IQ11:=3>XY* M!X)]6G;EL13=27!=[I5KZ@3[9.W*3;N^N0]AZ'W!OM_*)W?RMNZ3RP>:DBLN MAUG/[U9I;?V1=85#3=H:H/-,R 1188X:,B JL!2A8G]295GI!]/H!\/SU2!Q M31RJX#1 N,QO.$H1(3, A<]"@JBI'D0[ MJF4<_"CL98._KO$6RVK6MNP+0!%OSP5]] ;@RW\G*(J=+^A13OY:$P"J<'LJ MU[ 8@)BWE($$/\M)66D 0 MM3\@*#@.0\0.=/-AB7[$-UYH "')K3\H:%@,0 MD]H$9YO':]^5$[/6!$#"6'MBUK 8(K,P?(Y)* [^%S48DY _F")D!8C*?+]W@[AIF<:;+ ,OKW*S=/FKTZR\K?>/)(I5-6$ZC03 MMFG%SE;(6?.QYR^]GZ/'=GG^)^_J?G8VV.N8CK9@P\'WMC,HCQ6:U:_4"5J. M' !'MP8<7SHN+RBA<+"+&H+QK2M(7@IL$^!@-_RP!)#2BRYN"L-Q+ADA9*922.)*;1IZEEU139V@*+YS8I25M)[X#0Z 5"XM=BC@8KEV.GB&:DXZ44- ;WHIW72BW 1/W&W!%Y M)XV,WA&+!9CNE'Z_Q8T@4<6H:O0 H9')1.8:D M:6 "2.NO.?B52O\U@"O9!OCENOYD+V6+3I:#6I]J >?RYFSH[](WY=L-P0 M[U,++K?##<%@IV@L^!Q0D+]\!SL+M%O/+Z$N$;JF&2_]R:F\/&!@/0%AM MSTU4$U'8W+]#C&#LF8(>1Z5J$ 1OSWYK,(.)G,U6 "RL9\OB>V2L:.P&($*Y#7L:\;$7V,0*9+!'\IT MC:((I4B?4[(0S*FL"FE2]OB*+T(D!K8&@><+D?E"Y.NZ$.F]034YVAI[67.X M:>)3/BT56\@$'7 !\2ASATMVBK]'Y;5WH+L_S[ MHC0/?\'O.-,$].(P*E-*J1)+&MNOWC+E;:70&HASVJ=#1A9U8MN_3SI]"R,XD]A_#^(OWF]#O!?J)I';6A, M (M0C\V&\!WZN?DS)]K$<$?Q$ MYW]"QSL9#BV[=:%V6AC395=Y1H[C_P> M^5/"\#Z Q '4VH<;1@ 02=%GUVW #HYG+-?O*'R/.,AV@@SGF#TCBCWN)V+T M)\P7S_TFW"M_L[I)8C?9EF@!#K_=N\*9% M72Y#>4)"P@*%52+:L5.J#0]:H5C%EX+D !(.TV$.&H\,4=YO#!MI[2RF, M!"#\9*A]HX"E-?<]/]W.G!VFJF4[+_UW=2\]'VR1C0;?$W^L!\?5LM,]?^E' MK[R]H,>XR_(^>:22A!VROW<. "F\\HKV8/SR&@PIU?.3HV1UQRQ PW+!;U:\ M\);#7W97^N=U.L)PT#=*7XE/&F@-451D@WSV7'NT0VZ<*-SPDH8 /.WZDG0L M,2!&9@#Z/FP0_?+M*=VWM4G=W > ZZX#U9OQ&J+NM8L5->V+OP+PAW4@:A$# MNZ76V#&4 =]TYR!I:^VZ00F[N#JNX/"%P#;3B=J5]" 8XNGOLBK*$J0=TNPRUP'_#N90BEO#\"SKK\U MR=$ Q!N&1@ICL5YR"OLG](7_)+7.-#L#<+'K!NG7T:(PTP1\T+$3HZ9:[]5&W7?8"+G?K,,G MRGN<0D?_. )%/_QQC=:.?Q'$XHKNPA9P_,="8O+5(X+;V+G53-5T6J'SM_ZS M71>O0@AR2I;!!7$[.;G4!)GO42K".#7W*G>Y"T6-;3F M*I9#7;88RCO4]-*$"Z&8-=U4YM57=@'@5=;CG1J-P9W+*H=0YF-@>2>'R&>9 MWZ7W: I;_JJW^=!@?@%]?CORF$K?EW+AS"2D9$^15,.V?.]_6@P7S !1TQ\^S M]]H<[LJKY&#E-]W3?7K0MH@GU!YGW,6_I):^A_V$Y;3P9TNH\"!ZSKA^0MG+ M+@B8YIW$/)Y5@,5>/(#"1!]T1CB>JJX"5-Q+!B65U3-'#%CCRT?-W6#X$D98 M5[A'J'#5*/1=:+0'X,'0%=TB@Q08#66&9>;# T$./8?W M_+N/*-Z$GB).5J\C &NX#1/:H#8 -V[O/S,C[H[^(Z>\H!$ $[8UE05HV-UY M1&=OD\NNJ9,U]YT>-N*03VTM9'K>OIZ'K;)ZLJ&Q >R8[87'$.Y@#-D2M!Q] MNE6=,P21U]?HK44P"(Q>'L:00[ (5PL. R]OET$QF\J@3>4O#O$>Z 0JX[;< MYH69HV7D[ =*LVP$UQNZ_I=/B#CKRF5D M(7J$HRAA4,LQ 'BVVC.P)8YP&$S%CO"%7P[77\9TXW^DUBC=.!["^EE2.&HD M7#S,):$;/]=Z% !'<8V 3F6<-@L1+:-$@4BQ;$] MRR2XP&5,)DR:K#FT!I"3V)\Y!VSL9;?QTAA5PXL94M'2\W *PU7 R_GQRB:M M',4_"$JJL0E?\QD7Q2D7?$[:X#CM A_GG9)?N+LQJUFJK>_XLQ^Y0P$W,TR= M_ M-MQT *)8@(E?(\G@2*'67GYX3YEC%W5YLWJ$^0 $[%@\;[O1["L0Q,+;H?PK MUNYD;.F4 &@C/K$1%9"2#ARS%%];*;GHT1G^8U3Y"K($'4PX2\BRR1VN.G& ME,V?1C_6!R$9,"GLH3ES/27* MJHQ#OQ<@JGDEW2@F";_ZO(DWB#QLG$"H[' R#+;[]@1F5'$>]1K'%D6'+F]? M"XEI]*+K=QM5&D:Y?M'''<[&E(-;Q/]H7!5C+JZQ\XA]"O190CM0.@3>IS!P MTP\-L0:]1Q]56$:]0C%&HO'W@K+JJ+<15/N,RMA1+BH[)P%+]^:Q*,S\SF&)PV'4=EX2A^[C;8#\T]=:"K+BN[ MC#(J7T?Q$7J[.7T0QWCIYGE&M889 VZS[^@.S35GW')C% 9JLPV.] M0P;1G(\_V7S\M"[7\74?-@F#5YY.INSQ=>3J*TE@N]Z5"#)E[EE#'QBI:!IR MJL$A$"GR[*J.*"$VK%8]>D)^N&-HZ;!+JR> 7(+6'--"S"K3 M/J $<>G "Z]+:4KUO$F7&D$X6S)TBZ2>$,E]2_D?:;\)86\,\ZM MTWT>Y'%+L(ONV.)1>"@&F0F.9T/(ZN80A)[X ]1+M#"JX].A'F'/F6"X4 9< M@(:D3T[! :YB^/@G\MHJY=\!>%X&7 2'ZY0RTD-1_5T#U=\!KN,>5L@0M#0]248#-F 2;RIE9T7#JK39XSM534[A!ICX^^T*HH M$\'1EN8=8CRC/Y]179HX;IPX_@,BVW<@]EL%=!#JE '<:A44>Z$B7KB%U3A] M1M$C6H,$H=C9^,+"_*1D;/_%[4_%[4 M_%X4(&5KCCF?8\Y'L4OU:XD>E*!RR?!6)J>!V2#F^:'<(='$B1 MU:;@5R"RUJW]#@#-3Q(-0%30]]-4(U^%9,NB/CD!> '.I1OC)Y93T_*Z^H<^ MU]4%2+(+:P[+(@=FOK^>[/UU.C.=0'&!76GS==Q@5Y"V?Q!V0N^(1>!I780/ M,Q6,ZW2AK+?RI71"WF[T0^4049?(E+8&<#T_Y"(H!57(: !["YAO]>=;?;M/ MLX?9PTKUAY<:'C8:=^J7?=\_./F N0>ZX-OX,IB9L #KH+WL@ 'KY/T:5D)A M ]!,G3*N9PP#XQR^, Z=@2V2+G[&1L(LUVN"UG1S*#^26J"7:7^R$9!>=DB$ M-;("D_A!M@+E\X3C3_^RXRA&(>'7)[7P='O006WCQV? H/$+6!BI&_,JBI+C M<]>FA5L\Q\N.QC!'IZ&?R>P,+K_G+4/;=M^T <"+"Y:P0<07L/,U'@=I()\U M1;8Z_:C7;&\GL6&VIN'7)[;P--G6\(TJ^.->)L(A\@M8&274EX''GF9B+U0_ MA.RKP2\:6T\_JEQ/X[:Q-0V_)K%5E?2R)LQJH$85\6E<,QJB+##![Q&CW9H2 MLANE=@4)[0 XZH(8_VX1")6!+8Y!MPG)M9.U T$*SZBB/ZDTZQY$!>L<;+10 M"B4AC3H%VTT\JE".A/2-Z[,V#-FH\CO*-1\H\KY$ 9?I35#$7 [? MJ,(^RI4A0")/5^0E2I(U14,'GE%%>@*WD4:("CIS^XYJ]@2[>6GQ7HG;/_9) MW#X",N=MBVWE.6^[YSXTYVW/>=MMCZXY;[M1= I'"-OO^;Y]=_]9F;W=T.=,[CF3>VCRO8 ;M#F3>\[DGC.YYTSN.9-[SN2>,[GG M3&ZS9 4F\8-L!7,F]]0W\SF3&YYN/V=R Z3QU[ PON)\QFGD?\_IC',ZXP3S MSP'2^ 4L#'5L>"'>Q48VHV#Z.3V]/PU?O-C.V8PO+!%]SF;L2XDYFQ%L!CL0 M*@-;'(-N$W,VXU>0V3YG,[Z$;,91[COG;,8YFW$@^1WELA(4>5^B@,_9C%]C MZOFZIQ_^,R$X M\K#+46N7R_CCVY-J+F,ZQX)/3ZA%_J+9*\/$JL.E#I0RT4_> M'$:RGEJTU-PPGGD7(?>;=?CTQ@T3NOGN4W9D'XZ13L V2 Z-%1@8%PR M/813J:1_'"62?OCCFNI>_D40B\\X88OQ#[9W'0\V(?@C$C>=5GA>U7^V>SXI M9"&G9!G< 9:]@*4UBZ1!7;RVF*NKC<-A]'KIM$?[Z))2@WDA<)#@8'U# MES4W%@5VTW-,'$I+'#ADSRGT*0P8CI32%+0UM0@105&L5/4&FM'B0=Q*CD8A M!AS[F_[)[M2""-TA-WQ"%/# 30AAYG ML]4]6]VSU0U#JYFM[MGJGJWNV>J>K>[9ZIZM[MGJ?G%6]QDS.X*X:AR=HH#2 M7V8X-W6:FNW;A ^%L_>3@QK1 @.Q]IQ"@2'OC7 H>Z< M&<$5Q$)0PH 'DZQJHK2,(A1'R\"[QLXC]NFDJ+4SZ'V#,^@( *LBG8-0]!&E M4"R)9(9X5XG$UK,-)P-#*OCO<'$2(/"%V1BQ= MER2.'_%_4?'(:%#%^@\_-27;'.9PE+L:3MEM6;!F%VEG#B'[54A8&*NV/*A& MF*J:KH7)3#*J?FSG8=5R+->WZ,KLKRM#EHL=!JS>*Q7IN!GD^M2.W #J_T&[% MS:R'S9)E!EF780./30?T]%T+XBXV"V^9N>,9Q@>@:RU^0G$: ,NR2]/D5=\/ MOSA!K=1:A_XVBT 9,!V5N,%;4P>X&UG9JJ?-[T/)ECIA852NX MZ76Q6N7(2G\S'(&\EI5AZ;+^#YVXH1*PO[. MB=O?HG[;<(MZF*@824^WH7([QI8%/=X7.7R%?D[,?SF N>!PSK>L\RWK?,L* MYI95?.Y')"Z<^?33D9CTPQ]L2?/;Q7L7!0[=0 7RJF@WG6!9!1+C$SV;_G,0 MT:T6KS#RA.+?0#R:E%VL5M2*P$]'/)C-P.R/P*5&6VH^ MQY>(TM7Q#X9%J;%$FHR,/+40$2-(PY&.(V E#"31T-WDQ/ <4XE:&0A]\+)# MMT0/>0E=)/1ISHOP.B@)[#FF&R9+ M5L)<*VO!^>;1IA86TQE1\)P_V["RJ%?!1>#PZO]=S@/9&%,+IFF)'GC>WC( M_P_T&4PU$Q3":$9E C@%W^^:W6_BC8Q\.2"=DP@#5XV1!JKN&SZ6=C@ MDNH]]N2BA0SA#5Y(>*#:T2W>4G.H]YY,Y%%KS "RJQ/N\2M?*=?B%(-O6B-/?B./GB_&N.13%3<_"3LT6M:D >.TPG;D4' M&QC[7PFPEO4@BUV@UH2LBELS=X:+CVG!GS,G<#SG#CVA($'+-0K<(NNKJ[5_*FL1?(4I5J#C7B-(1#:(N< M.ISR>!MU>Y"U+<5$U\!FB.BF"#NW#HL%/:7%@M1XE;@I2A9(?SF(D[.9Y4>"C&+LZ/)"T!:DE MR9D@P<(J%]C-#"(X]!1G0Z7-^$>"IIM+>B14$(!!<.4!4&L%8]\72HN0T@/& MV-,YV,TS_>%;NE(#?Z1#P.T#;K3X!OQN%@-_K$/![ M0 :F/@&_'X6 /^@0\ = 1J(^ 7\8A8 _ZA#P1QL$_*XO 7\R MEA;C,'5)*0-]?@*EK%]J!KS/N<@3R46>\P9?7MY@ZYJ]4$KTF@BGZ561=X0P MC4J4S^HAC.E*CV*\=>)C6>C],HI"%[.O?L?QIA0=FA?[:!W(\7U#($<9-/:0 M ZLEP@%<'" \O-ZP7QQA7# @%P2S($3CA1SY<_F1^"I"%FT9Y(@FKCYWX M3-?A!0I2^%,K5Y&T8WKPJ27HF\(;O)CQTD)E^,TTM7W\0(D P39:>A],YKP)J-&W3D/&61L8/#4;&<9(% M/L[RM9H(799[(2F$'F=YRMC2Y8]A4ZF[)9A:<3M?%2C>*/T_,#Y<>G:<(#$4JS]C, M0GJ+Q61O$[*CE@'5,#Y3%B"/U^)3O"8_RK0 ;OBUQ?Y@L8U"F=&+3-XQ7"35 M/ N_32>\M *X'8(*UU?M5_N5.6O<+U%P+@WY(OT]2I:D506YODSM3K?NLFEH M.Q7G3 ,:<.QK<7$/44%(B:+69H"IN5/:X#9TT9O,6].632W[3L5?T1(M..OM M<^#A*";X,:'*V85# @II=+/* O/OD\<(>]@A\H>#V@PPM>J ;7"#P](7?#]A MHO#?R[J?>-@X\>]AXGM7VYWCQH<3XD%9]:_K8%,K_]<53SALOZ<;#4OF=((X MM^%EERK1'7(B"N.COZ>R'/$W(K?,2+]9I5TH73UU^9C!9IM:?<'!"&'M[H$I M(H0*^ZGCLY)F3/?G-P+T[YM''Z]3U609>'E#5M,J#WO2O9+XZ>V[ZI5$/MPB MG_C?%X6I%X6Y%T[@'9OSZ0>_JNB]/C.7UQUBDLC<:B*RYH]'/> M4P17]_3; M:.7P&RS1%8CIPB[V1D;F M?QMB@M$==L-1R:A 338$3 OS/H(%(JL1@/1 4L6U ,Y' 5 =B8 M02A29&(BH2),&NQ6?:C6_/ ,E0!")$6J29GH:V>=>E9EYYUZ5F7MGT6V=>E[],##GF%[(K#=QE^I_L/*%P39[?! MKN-?,Z'&+$O\+(GB<(M(JVR,=^_>GE0UZL.$BP(4I>\S2!:/^T41ED4.#,L+ MS\&!KUK?NQOD)3ZBPI!B>(=V[,U$]A;O ?_3??:C2H_N--+PP:Z'E]V+S))$ M$RO:@KEKZ,&PPSOV-/K:LVE MU@:S4G16%[UELIXQ7ALA\[:SVD^Y07 5N'[B4:39LY7T/Q:5IC9^VXT$P&O6 M54 ZX0O<6,W^>*"4;VN9UNYZ6EFF^9]LYMD(M6Z$WI*0%;^X(=E31A+[4]SL M)9F>8@Q'UX8R,-C%; 9()+4Z%6WM6YTJP:K07(2 91V) Z.TERIM+!NCC6)3 M4GC*H ^0SD?!6=&CD(^8PT-!XR_CRLLGZ/2R;)IJT5D;& 7VVN6:;:[:Y9IMK/)OK.@S6U_@)>0S$.!+?#[:UO=[KVEYL]M<^ MFWZ1SB^_%9R-,-M&V'P3.-\$SC>!\TW@?!/8A;+S3>!\$SC?!,Y6Z6R5:C+^ M6)(F-0TD3*XWF[ ]64?&GK&8/$;HGPD%Y8+:N'$[$_"](##T,-Z"#S@!@R[7 M0Y6V6J71R)MCF4GLME)1/T+:&HY))B1Y:?.3X6#WD*I#I7Q36M$>1D7M!L%J MX B,Z[$R7.IK,G%; $6L&R5+P0H0^MMI$M$3+XJ6[C\3G%:;4VQ1TM;6JU/K M;U%2',#Q@?U)D'JKTN@'8\MJ$+0F#E5P&J+UYCJ10E[3!BCA/SP5TZ^SYHSX/8;;QY5LB MBCZA^&9UYD2;[!=/PK=V0P#8]?5XVPXM. GO.9AGX?81!]PAEE:+7U-LZ%\1 M]K**\4M"6 U:CB5_JN1F=9/$K*)M])OC)^A7O-XTJ*RF)@%004%/*DPCWL'Y M^+OXT8'""9)M$& #8!Z]*>_>3+Q2)!((/', ]5&=+LD,?.\ M>,XOW^?\V_]ZV;GDB0:AXWO__LWY=S]\0ZAG^RO'V_S[-X=H??;G;_[7?_P_ M_^W?_M^SL[]?DW:?F61KIZJAZWB__P3_63)^A&GHA3^]A,Z_?[.-HOU/ MWW___/S\W?/'[_Q@P_K_0__'6MZV( MFT?J_K(,W(3 Q^]37LH6\-M9TNP,_G1V_N'LX_EW+^'JFUA$^%B#2=+\Y:1] MK-/YCS_^^#W_-&W*"*VBM*U,]X_?BP^_^8__1LB_!;Y+'^B:\-X_1:][^N_? MA,YN[P)7_K=M0-?%0KI!\#WT_]ZC&_@R0;A1ZOMCCE;6VT@GN2=&Q1@HT&:*23WK*B9"%_K>LI]R M^M&7B'HKNDHT!)8EE+E$/ B ,)#V[1P]%^+:#TX-%B8A$E+[NXW_]/V*.@ T M'^"',_B!VXG]\K>K& YOO+4?[#A,+*QE]BUP3?[]FXJF]6P$J@#9:9#7QPKL MA"W[L<(Z<8OO;9^AW3XZ<^.OBW=?!_ZN4FC!V2]O]S=W6=\)$@5SV@4T] ^! M36M]^[)2&E]%*BUK#.,?]F1>)/\&4Y7*I2PJ1\E'B3(M?:AM14N.9M#>+:QK+UP).I&8?*7 MS*/B/_SM,6)3!<#*2]<*P_GZ,?+MWPM@2Z<]3I_3UA2ZIUD_WRM!5>ARR1M2M/- B-T+LATI1&[LAIY@XH2!Z[(2=J!7)2_A!=0NW%A.X M06"MPLT+1,O''\[%MMI_A[_\[<'9;*-PX=\S$VP9HUAPSJ4P?O1[X8RFFEKS M&;!>%[.1ENP\\T5UL^^LM8\^T#TCQH0(2;2E9,>IDCT-(C8:.-Z&1#X)N!CP MTSX6A-BR:W_71[P6KAJ&,LJIP@E.<38JH.IMJ3I=K1C;D(;Q#PM&7[$A4MD! M:8QKZYI?X*I:XQM#:\C<SU1JE#CC20.< M_J<6LZG+Y1VLHT5$M8M='$+'8WPO?39\VE'QM*>D'5Y7*]4L<;?"1CA=KES4 MIFZ74"4QV0%'Y(*CEELFRTU$=T7C<45SO(ZHHV?)85G:%J=;:DG<[:$9T">< MP8!>"KA7Y21L[55 ;3@/>J ;)XP"[L3IQGB)KJKV M^'VL5--CIRMLC-L+RT5N[98R>9+2'\Y1IYYWL-P'NO>#,O\\:H;?+8OT.O9& MN0UN)RR4M+7O":I$D!W.Y>YIX/BKF;>Z8MY>HO1Q._Q.5ZC9L=?E&N%VNV)1 M6_N=($L870*$A]H/O'9<>G=0K'D+FN#U-Y4^^5V^['.<7J:4LN5.'E D@N10 MKI6,XEYT9^V*,$W1#+N+%>N5=[-\&\RNII"TI;ME5 F0'?\L[8+97?4$;^F].283L0(A?D!B5@1X]>_2 M\88DFQB$ON=15X&BBF9XG;9,K\1+B]K@=,M229O?]Q![T2G505$T/HF)_X'- MQO.J$\BCMGB=KU+#PD-AN2%.-ZP6MYNCX.P@F&]"SSV#7OFAAAT^C-(K/^AZ MY8=Q>>6'?KUR\>R;\\J/->SP<91>^5'7*S^.RRL_]NR5S,V&1LM+]N,\6/C/ MZM=)12U'XI.GVA5Z9-9L!/Y8(&Q7W@BD81D#Q ?V0[Z$F@?W@?_D>+9Z*:YL M/A*/5.A9Z)9';4?@FRJ)NW+0=*&= M2]H9/ JZ _OZ=:B]!E.#RN4L/%6(O-L&T"0<(J#'2L_4OL0,'<^_[!<.%%A(J&")GA= M2Z5/XEK'G^-T+:6435V+4X'WY.?X[7 MLPHU2=PJ]R%.GRH6L;%#"6I$D!L.IV8O]I9)3!4'MXIF>+VJ3*]CS)+;X/2Q M4DF;NEI"E"14!SJX%;=6I4B*\'_VO$LSW8L-[VS7_2.3:,+8G?4U#?US(KV2)U45^K& M_BH8)+?M4Q;9:X\F:4X:[<-)V5I$3H;Y(8)$QS!E4&[_5'3"Z[_Z.N?WY\IZ MX/3A&G*WW*^3,P]-DL0>$A_RSDD2G+P?S*L/0< ?:L$S%IA*L[@ZJ+-\*)NC M]^12/8]\N+ M:N\ME[BMWPKJ)"5/!/WA;FM'-+#LR'FB5U9DQ>(HC:%LCMU' MR_4\OIA=U!:SCU9(W/HJ=DH=WD59B=,.Y:.S'0TV+#0^!?YSM&5(O[<\]0&Q MJC5V#RW5,N^@A4TQ^V>YP"W=,R%.!'42DQ]HW>4'BJVE_*=XO:] B]S"27R$ MT[N*!&RU'/*#H3:+!+=K)]C=K-2:I9^C]Y^\)D<>)#Y$[4-'(K;U(B!';JX& MFML3KBA7: M'6>'.6J&TQ&KA&V=(49V1$YZ:"\4*6KT_##?=BR>6*!AL2]*#*B@3QRREBON&*N570\=_PY7L\KU"1=;,@?XO2P8A$;+S02:@3(#9G]*KAD M _K&+WGV<]P*KT^5:'6:!BMM@M._R@3M(!E60!*J0SG;+[Y[\"(K$#JISV)/ MVV%W.(5F>9<[:H39Z52BMG2[E*QPP,'.67^EKON?GO_L/5(K]#VZN@G#0TG" M/W5[[(Y8H6G>(16-,3MFE<@M'13(G_T.]$G"@ @.0[GJX\YRW20EO](,QZVP MNV6A5GEGS#7![(+%@K9T/$Z4)%0'<[8M\_>J(_VC1NA=K4"G(T^36J!VM"(Y MV_H9T.SJD+Y59=_Y.KWS>N^'#IRM3)>0,=,^O@!5LRM.!VVB?V'IWY)^^)RY MD?2-]ZOG=X_SVYNKZ6)V12ZFM].[RQEY_'DV6SR:\/1I&-(HK/#IDT:XO;=8 M)]E/\RWP>J1"SL:[-YP<^2TA:*;N:M=*/3X:C9WX $HKA$[;CB&2%!J>!M11 M0^QQI1*W,;1_>7B8W2U(H4<.&5N#*C9,Q7 KW$Z]%?PS^\?!>;)<>'LTC2ZM M('AUO,TOEGLXO@%0MR_N4*QE@5RU<9V.>$.UGOB-/9R1)Y:W(OP'B=&$6!%) M>!'.S$RQ\L',8&0DM6W(ZA4^4)LRW98NO:.5(VI%']SAK*5Q;H0MZX W?/7$ M;CSWBZF3("5/WGDT.GZ_-]#@BT)7!,CTH90YG[@.XM9S5[V5,OI&Q!QI7,[;HHK*'7$S?NU-!>!B"-;GB1 MJ([P3=TYYD%B)GPC0L"4X&,6G(:T !5,0FX"OP"Z!HGR&^^)*>4'KPRR%$8Y M:H([;HOTD0-4_AQO)!9*V=3A4F)\]#<25_WH8_P@3.=D GW$5(YI(QF]ND7I M(4:CRM5KIQHMYHOI+3%_OB4-J7?,.ZL7K@5M<4=4J88GR]7CAG@CK%S<=HO4 M)-XRPGV$W!,-EK[&^K1[)1<_SQ[([?SNT]EB]O#98/C=!_Z>!M'K/=,D8C-< M.&+;PTTP]02PH@ON8-31-[^"4[?'&YI:4C=?L0CB$\+)\P5+RL#\<*0G=N/!-*%../D)X0S._/498R%F M$J8F#[WJ_7#SZ>?%V?R:=9L9G$%5H5;?&&ZH:,C?.RQ"3)H(V8<2S>;ZQ&.U3X=GUC"VOK\C-W>7\\XPLIG^9 M&0G1&R]B&CA+EZ;*S5YL]P"YOS_Y_NK9<=5;=5I=<8=M'?WSN\/5_?"&JBQ^.E/EPG*MTX+9'2KR&%E!-'95-"8LW3G7?'[U MZ\WMK;ESL]*##O08E=?A](@,+SX=R=?N4,S@65A'AV#FULZWCK5T7"=R:#CU M5KP^S]9W5VQ2 QMZT6O%0Y :W7&'4ET[R,&FVQ=O.-;6H*F[2XS27?OHM>=7 MT1I#VG &N)E>W-S>+&YFCWPG__'GZSA\5N^K[_XJV$V3)DF^\3AKC#L9R'8O>=>5; MX@W""GE;O^6*Z>)XI]67DGM!UU#T!0>Z.H49M2F4[=''8+FF1V%8W!AU)%:( MW,)/@3*12!N/QYY5=3/2IIY0]J2AN?>3N5/Z1+/7Z! M%WTTY>[L\DG*P?"[RG[5YE2)OW2=#2^[U0L8U;YAT[F:'=5R;3'_2:\E:,Y_ M"MOCQJ)*30OF/Z>-\2)0M=(UUC("FR75)QP@W M-_1V-<:TG='#TG>P_8NJU7T?R_K<.U/#6_JWOK=9T&!W19=1Y6M396/D$5>J M8R[J"ELBCKQR>1M''R-[!G0)$)Z0[.IJ4F'ULQ4=@O[VW*K&\[[T3I^?7LTN MC-Q65:S>J]^!:_3#':3:FFMLP8TA=/5%[V,CKM]7Y$WWXKH,Y=GT<4;F%['8)J^,RHHNN -31]_R_?(QA*>6U-WNFAN.TEXUEM^?DOOI M7Z<7MT:"]>2MK;3?4..]^$DOW"&KJ77IR_%\%[R!JRMXEV_(<[MGB!Z2=ZTZ MEM?DDE[5VXCHH[- &\7.--ZH*Q*R@[UHTUO0'>T]&]YSOO1W.R>"W$SPN.72 M]V!]3#U;'3[E/7"'DX:VN1)=ZN9XPTU'Z,;'D!EM495+IFZF_E:?VLX_?[Y9 M0"JUQPFYG-\M;NX^S>XND^=9G[Y,'Z9WBYF9P*W]''/$#S#K/;D5-9&;1]:HODS23@DN]Q14MK8)XVPQV**KV.ATVY#=ZP4TK:9H#T/<(I M3D19R@FY"<,#71D;'OM0,-Q:3%YR1@Z>Z[ !F*UYXS]9AVCK!\X_Z>I_DD?Q M)X?K+TI''*(P8C_ 21B?;+.___D/DS]_^&%R_L,/4-/S?UO>P0I>R$>C^7IAO:CWS&M201[XS:QR M=-Q3AP1B2&BH2(M#H81?7( JQS'9;WX'3-^+'(?^&K:?39T6&;,.KTU%[)QU M7,;,!(X\T,AR/+J:68'')CRA).<573NVHUJJ:W7$C1;ZNLL 4=T++R;4D+VI MHR+UWR.?S>/[NJVAE1FU![7CQ*(30F$AOR:O+ @-)DSM4\,E MW3@> $R?>E8>-O:@H3ASQ+))6I59K_H05M4--\KJZETGD21>!-:6O-O$D:;O M!_2CZ\FE 529(J4](;'W.TUW@[\D&\75.]5E77$'=AW]%2>=RLT=+XYI$%T3F)00($X!=.U6-IZ9 &?U[(TQD73 M$87UD85.\.%TE/\]N;J^EB=D4>%^P? M?GV9S*\)E(@N?'X_T%DH?]][S;YAN*0-RO[J1-O+0Q@Q0P3,'B*K"93.8?]; MJ>]5-*.$V]5;6"=_?%J;#-X0::-,\_-%SI, 4Y)P)<"6)'Q)RI@DG(U=M#!A MHD_4WP36?NO8EFLXUYX1#Q')! R]U0JC^1HJ[/'-91H\.38-'WU7O:M2T@$W M(E;KFE^LJ5KCQ3<-F9O/8,.(S->\N&U(&'62D"= W]"4O3]UYX\+F.&8C,U/ M@1^&]X&_5E[JRK? '7T%VN1JW&8?XXVO(B$;#WI BPAB1LX5.U7F8?[X2#Y/ M'S[=W)D:Q@ #9B][ZK&1N6+Y6M(<=Q!5Z7D\@!6UQ1M>E1*W&;S$H)60-OU< ML3=59W^YG]T]&GH_3%T7YL;>ZK,5_$[AV72LG\(*I1UP1V*UKKG;C*-1 M0^;&MQT%:1Z1*?$D-LT\'^Y16K<@U<9?4(-AJL9E8TL JE' \MEBDY7 M.\=S8)H0.4^T/'"K>^$.74VM2]GA#5TOJI@Z;YWYJ>Y^VGRM1JK!CO=^4'D_)-7M9RO;[R(*>MK1,LJ6H0KB"=KB#5:E98:F8I!'>D%2+VGA@28>3A*29P;-SQ<33 M-)-[VJE.69*1*NUS+4<26J?:%097UFP$X54@;/L RZ7%,1ME'>H79UB_?IA_ M-GRIDPW6E)FM8F/ZM!7N.%-HE;]OG&N"-[Y4@C;VO9A>+^<_/PI]/+J!G#%E M8=6Y6G>+V*6V(/*J5V^< Z:88YN-3"-O?$ M7Y@?PJ7]N))& U=M\*UTLD@]>));'"0OV(Y\]\;2]?#-,_.&[/B9216'6 MK\H98:ZAV.X3M ?=!NE9RPQ.($_(?/'S[*$YL'3T< UFP>@RN^_O\%D@R%5!B=)\<<6+A@-8^ M?837"SO, M-",0PI9*U"K>^&.5$VM M2TL]CR56=05OZKQ%I9Y/QFB M0YR>%>T99S1W5+I73]R7PK%PN:-1Y9VIXS:XD:50(QE/<@WPHDBQF$U]#BJ# M]7\KJ@HP^M+)"#QTK,Q,<<)FYEW] MZ,BI8 BV*\<]J L,J5N/*^".M"P+N;CI>(+N6. .PRXFC2/PNM(SIF,B^'ZE MSF;+>$_9H&]MZ-UAMZ3!?'V2CK]BSMV #.YP;6H7.8[KTL ;X(TU:1H1"4,2 M'M\[LYM//4!I@^LOL8?II)I8"CV3^9?&XF-Y=L24" M>1=M_4/(&)NI;:%KD[*9=5T:;P-1E#/Q6@3&CR7=S&I50.(7 +UBU'<[-\T"7+:HLX8O#Z+?Z3_.#A/E@N7 ,<$J[V9S.#R-BW-!2F)X/QJ MZJTN_=T^H%OJA7OPZ:KOY^$*_B[RA#675)R-Z8C1=HVMM8%Y>:H'V74!MGTW;7]\G=VFAP;]\^/$'LO8#PO05 ME9VIMV)+E/]M>0"4?SR>$A?8Y>7?TEQ_(&7GW+^-SW_D'_WA M#^_-'+5]+5_=NW_YXY_?:WQW'T^^NP_\"_KXAS^??'?LBS[C/F%DY[_LFVLQ M +P).&\*SN.&VLZBKV2Z**Y!3\B=B+N^2OEJYC+OUPP\;7FP=81NO!>B%\D3,HVBP%D>(@OR?4<^N;<*GAP/ M$^&]VF,$&T!%DZ_CZ59W2[QBRKA1H4/KM5F\%9#%BS)=*M?C["*9_B>R$$D8 M,I6F_WW-/[I>-O5A1^TUTFF&#&F19/BTZ#'R[=^WOKMB%I_]X^!$K_IG1*5] M<6-7+0LHSH/4'?'B3SWQ>SC[X3?X?I[?7LT>'K\EL__Z+Q4UQ.NCY>)VY9OD-T'8B'-.5RL'YMZ6>V\YJQOOTMH[D>5^IG#M2V&6 MJCZXG55+XUREP;(.>)U73^S&U012Z@3(L[4PB1F0WP0+,S.?9I-<=A=C5LF("_&4+5(EAOBCD:U;H6;%FDKO%%8(FL' M>VM E'"J9J*O#^T.RY#^XP#JS9YZ.HK7>,G4Y_=F9JF>G(Z%"U^QSN'OLT!6 M_DR%S4+XP=H#/#H+G8@^TN#)L>D]#1Q_]4!M?^-Q*K]8[D&UGS\ 6]R(-I3= M\WL._?+$B[:#:=YXSG]_Y&;V0@/;"969R9K0P0V+C2V3GP?6)((7N)JKTBI>B&!)!$\BF$X(9\M@ MBC>).9.4M:&9IAD#^;'V\ B?OZTG!X9:(4.58FL8OT697!F]]P-^ 4NZW[KP MQ>U6A8G;4\6-.1U9K>[+BA*2>/&H*\4&>8\Q(;$H0][F;G-?+FY^N5G6.$&I3[MJ]R3[8@/7F#K M5=OF]Z]2H6!MD(I%3FI>P<>X0++>_BQ2BP>IQ3V:53'VB0VFWDNF]E,#6ZE0 M1I(475&V>K(=OI&L,/Q1$]QH5Z1/OIIO]CE>="F4LG$*28F8H7*\PV@SS%H^ MKAJ3/P)2+1%5C7$'4;F.N95[84N\@54A;^.=='[3/+-P=CJL='+MC%/6N(.T!+M3C;O\\WPAF:9L.VVB <(/KW-\EZT\WSO MC*M7-*=L$'JKY*M[X1WS:\C>U+'3BX;O$B;OB>-).UR7A2\4VZG^ MHU#=HQMX3%$V+QC @PB/(!EIK4T10A#&HE+/ZYC+1VW:+K0I1$65^Q/QS8WV(#^5[#>QGUB8\27!K:4 -X:E(>'2@UU:\GP$K%D0!K0C*)2":2 MZ9--) :]N?ME]HC@0DB\@0ZO<.Q_')R ,L,P;:/7>Z98-/56D"%HOU-?\ZY% M #=*U;>%C$3ZO?&B30,=F@9 P@I.[&-F).$V(9S?A*^84I:&%HT#VB1Y",>- MLH_9<"-0A1',8,3%(70\RA:UX:? #U6+(XUN(\,#A=ZE*'#49T2QKY*\RXC/ M>$P(YX(ER+M6GI,->73#5GYX6(;.RK$"/E&*7T[P@R5+\#?R$$Q_;M1ZPNQO MOKYD,S%'N?51TAXW!E5JFEO2J!KC18IJD1LO8F+*! Q*.&V8N@OJ1H)X*%V7 M?A#XSSQY(5O#P#4CF[,A:\N&$^U7,SE%]_'*;;Z^HDM5I!8TPQV@*KWR&43S M;?"&HU+2%E?DDLT$%GQ TM"^0>>:7>9CBF_^B6R^*T:>!"D_DQN!0E=(G\/F M"102BE7M 1;WP!V#&MH6[?P5-,<;F3I"M][OBT.4).1Y"CK3.WT]:BSNZC*% MG41ANT#AP:>TB:YL?N#O=K['7Y)H3"I4_9!'KZ[FJJEN82?$D:PM>C?3P328 M8?;+N8@$;\;GP/TH+ZMK"W5Y_K:0Y]2$G?LL 9+YJ!T'H'$ST$U;=%L[U_O.#20('Q 3R5>QU M:@ZSQX^S]9K:T7P]>['Y,YL'!KIS#P2'_\,]K"?+A<7= PVCP+$9),,'4V^5 M_X/4\L:SW<.*J7;EA'L_M-Q/@7_8LQ[L=X&4![K*SCP47Q,*P7##&PH3G<"F M>:GPPC$BVS3%-*$"S'H2)0AH 0<8EWS)QD%/$G!",MGC)K #>_3'?(]4*9)H M1;A:O*>LF'3R:V25_*:^4+;LILX&TI[$7VP 7ZP=/[_T/;XF-S%(M;*G2$-_ M^CHSMK+\S0E3*+[JP87 /?B8^4[D@698"? .*H;LT&92W,TH(60G!:^BY1$D M/TP))8PL/$;V/:5F=48*_-VL0_[OBJ,KT.]@;?%_5Q'&K& >[K$L"D0JJ)E7 MNC<]PN^(PKV8-7FE5M"?V1XC*XC>F.&6=.-X4(-88;YA\KH>]GN79^NT7! + MRGG<>&Q)M^.Z5I5KT>Z->X"J:85<*EB]KGB'A;H*-$Z7*O$1, V1(O_$BRNP<02G0.ZJ"@--6N$-=H54^M5RN M"=[050G:?.TFZ!$@R NQ&8K#KA7C<+-GQ.3=E1CHO=6]R/S+?YVOXV-^RTVKWU6]H>V*-NX0[]2"N1SN71#& M"R3=JM<\^W%H!\X^284!L9EDVS 1C@EO22QFC@LK=,+Y6K;*@KY$%Z[ZSGPC M0K@#K;EMY*BJ3P5O"+70I6F\)"R)'#BPCE1LP$3)( MF=HVY.R'LO(,8FV-6HEE'7!#1+6NN;J%RM9X0UY#YL:A713!1C9DG8WGK!T; M,MJ=J%LU\&EWQNW)]6R0VXW5ZHG7PVO*WWC_,6-#,CXD861^Y!K(#FBB/ADC M+_W=DDWXXY%Z"M4*I'QU%6-7;2*X4:"938JFNWH4\*)"0STZR)!H=!THJ7N5 MGI'HKOTJ.X_.^4ML4.'T!3U'Y>QE\K=>RTE\2,;(_! XD!U,!_NUY02_6.Z! M9LI5K=$JNN .;!U]Y7 N:X\WB+6D;IRECA$GG#KY3"V@;2P/3Y&>52-459_Q M^6_I>%3:85P>W!WJ2BXLT3<_Z RFM>G ?: V=9ZLI5LYVA2WQ!VD)=KE\]:= M-,,;D&7"-G7(16"M:+(#$I*,A0F7O/4M+[SS(Q9Q(!9;X?%*QY+>^JN@IK1P MNW4K"\F.WX@0WM!HIT[3X.%<)X3SG1 12G 8)NIS2\Q1+:O,V*I+H%%4*E>K MH1C@]'OA1(6:6J>5S:N[(*]T7D.!QEE9?*AQ[GBB3(KU9#DNL!JVD/D >IY@ M57_QJ!JR*QN/*/H*!]WREB.+M0Z'A"TEC#/47I)> ,"U2)%E.,B8F@V[[E0^ MG1D8FPX,K:F9N^5/S,'\X+5R*J#7 R<0U= V?^U2>\8:LO>HL$YEE%75598;->K3\0U20Q4E_7'*CJ]!]A!/2!ZD>UMO,Q@6IP M,V(6\QAQXT5,!80ZB;(C^(T!"\J?\EI'.!UVLJ)N79PP!:FA@Y3]6J M&C'+>^",Q1K:RB-D27.\(Z..T)W&H^F!< B%#;T0#PYTE=1\@@KKAR"HWM;4 MZ8<[3+4U/WHV7MX);\CJB][\+0WG0"06!I,>A/?6*YP]PU/!$]7U1Z+FU-"[ M?QLK%>12J$L*=:BT4JA% (D+DC%COO=7$%6H1D:#QL* -E"\6?N"B;(Q;JPH MUU&&@N*6>".]0M[F=\.]S=F"!CM>;]R\6U8-L4^YU4:X%W@!3R-G8W3@Y,VX6AI3&!1J\ MC1"D\HE<52?L;JBC<]XMRWI@=E,MN9N[+9"?D)0!$1S,CPN]*]XP7A5G39?^ M;N=$_$5W6EB=Y^CS5I\.5F!Y$=5]E=:<%,Z@[<(^Z1%60SK(S[?::M7XI=OW MTT%/N$SI*?&=D!QGOLF2\392L"\3CMDA)YW^&JXV$9Q8T&7UMZ)+",7 M3QXC%E!;WUVQ$!6Z058:_>ENG?ZX?;2V)7(9WW4[X_7L^BHT=GJ)T[=$\.() MG%!-:P>TAVD0F%D!5 .[VG 9:D*^K+VN(.\4M/(JT5NZJ0)9<)( M$^&QQD-T2&V-W!Y(P6:^9G/6/?5"OG/Y0%T+ZH?[811RX4#HU;WUJE,2L#51 MW!'>C60:Z1/*^N! M&TPTM"VLVHWMH+D,!'2$;OZ(-ZOC?9ROT92[5C_++^TR.H>M>(BO;C\JE^WR MX7GFLV:*,#Q1[T"OV?<*9P$0A[\ZT?;R$$9,KJ"R,(-N;]R.7-,*^0(.6EWQ MNG==!9J?.PGBY,)B%&Q(6']/@[4?[. W,E^ZSH9/-[(C?]Z<3WL0AD85LM?H M/NK@*$5\W;ZC#8\NSV5;Q(>1Z0[/L"P&,,A$]@(+ALJG!I6=< >#GLYR")3W MP.OXFG*W2\]]R9:S&T.S];R"_+=82_WI>UT:8W)N38NH?;V"P%A<7U>-3B+! MR#6(PW[O\CTPR[VTPNVUZS_/Q!^JT%RS*VZWKZ-_[MZ#1C^\3EY+^L9;BA(3 M EP(L"$W'I_7F"KUGJ@K2U>C>FB-[K@=OZX=V2=^/R&Y M>$!5=G0P:^"$A$>Z 9$>Z-X/X$9LU;BG;HX[Y*OTS(UOBK9X0[I2XL9.*PC3 ME>RG1E8MQRK6N*VJU7-<[JM[0[6ZVWB?/"2$":>,P44K<;>D_;B*+KB# M7$??_/-Q=7N\ :TE=8N3]HPXN@#N5?4T;&V9BXFXO?8#ZFP\D?^;J1A87LA6 M"'"_8>JM^*^NN.Z@%]1MZ.&.^-:6DN&@,3&\6-%>I:;1%',F"6LB\^:W=&3N MV(#&O-WLQ&Y1QLP$%GT)Z7P]"R-G9T4T5)CKI!%NU"C628:"? N\\:V0LZGS M,7(P *8$T4T ^M&7)@1-';A#>BSV#V03>+).C OA;&!(2QD1B1.ZB!_(,JDMG(RV MF55XF^-:]'5N&?3#"3D(]&?=''YTSP8Q]/2H;.,03F4B,$&)I8)%&J^ MQ@4C0H )264CF7#IA]A #[FQU\0% [O%#&7ZO?$B5 ,=FL9"PHJOH/##B2G+.)EES($$6XCM:1"]0CJY"'(*_./@ M[ '&]""B1G?< %'7#C(\Z/;%"PZU-6BQ[N>,)CQ_8<3C(&6&#AD&-PNW!TVX MF*L9*FH@ZD% >0_<4:^A[6FIT,+F>&-;1^BF?IL4"4U*@R*)VWY5M@QM4E9D MO=*+UMI$< =P,YO4R(8VFC!OJ$?S\Q+.CL#7D>4]>V8<2<(2#1P8,DU ;7_C M.:8N4#[0D+)(VEXQ<5R?3RAX-<3=_L L]NBOHV\T1Y]OK2"R7-*.$&G!;6R;WJKD\&+]BT4:9=U8D+==4))*ABQ#:\ MX(2HR&'+!2?VI@I.7!Q"QV,K.F:#I>/)KU\49BOM@!LAJG7-/1%7ML8;[QHR M-WY(&9,F,FUL,X4A]+IU(VQQVM57H6UMD8S3*@4N+V]370S>/[ MUCDR55/DN#*E7F16]\(=H)I:E]58'4VXZ@K>U(-/*Y"BB][!3+!G)@A-%6&] MH\]2)IG ]]B/-I4>KNC%=@,RN(.]J5WDZ*]+ R\<--:D:7 PAE(.)I)GB0XJ M!C5.&%X@'N!F:GV.?8-(&45;EX )S[^^#PR8JN'7%21JPGRW&!P7$FY]X0TZ3F$24?R!E!D[F-*U@U@W( M1?G+@^/KPZ71U!%)G+'7I;VR ;<=/>QC;T?:-8T91N[@6@%9I:GL84"RXCO[ M]"5Y'[1.LQJ(S_CA\R:^V#XAEB0\$#B$%)Y%N\YZZ!'=L#T3_CPWK6P4(4+\ M_NKD>03YCE7<< ;S.QV=^ASLA*DA ^VZ>O-?;I:XWT=8(Y9#=M MR*LC,Y4^:B%"# )RH,!VT]:3L;V6PQFYSY8.A,GA^M1F\H1\KR*\>)5^JUHU M-R2%$_Z[L$_N2EL#.GC7Z:VTZ2*NTIL@,M\)6;[*?S"-1FBLQ3#(=79L61.\ MDCU3;\M:L#\Z-IMANAQ7DD1%RUA RE8](%5 5V91:1I+43(UOWC];/W=#RY= M-EO6QZ@6A,>"6&UM5XQ?3:F. "2,1-9TH047ADP M(W%V#)',%CU-@?J*!LZ3!>\L!"I/HS1]L-9Q:3-*N-&EA76*ITW:9/"B3!ME MNAC+,Z[)%,B*B)2=&PG2F#;3NB@K-]E1"W9$5V"S-=CL260T]^ 9]R$(8!ZT MA%L:1E/XWSK6TG$96-+P^/M#Q'[F,4SZZ4U M#>J)%6XTZ].^A?4$.N2#%P][U;9]M8()D>0BB6 0\:EHXE[6A,C2$2X>R)DN17F'%OBZ4ZF:S+*E&P/DSS ,)^+E:*H-4U0 +CF$Q7R0* M023E'X*4G0F4*B_4(&HH0 D%K45I8V*XL:F=C618:D8)+R*UU*=I-&F43I&J M?V#!'T/&4LR4]KEB*;8PE]NT6(KB[ANO!2/7B*F\VE;9 R=4U- VO9A6WASY MO3--X;N]5N;SPDG9@!D.>T6L9YU%62B)OFG@&D)I&9U.OEY4N^CS18.GK;K>8L=/QY2.SZ)(4:=%'D:(>8T$+I;;%J'#2 M? S1KQ:Z"^]-B_H@F2 ,I7?RYM/XB4UPH"OIP*OF%$"#P%AB6=<6RN.7TMYC MB'1M'3HZ7 %FN7-D=!@PJ$6LV")NQLU,$2,FV:4?1EI0H&Z-.^XKM,P7+BIL MBC>BJP1N5;UG0H REE#M2]7<88*_V_L>O^@&FW=L06_QS&,N\";T!;)\&SG3 M%)6:YHE W!8)5+U^MJ)#P/[5C.(FE+!'>&/KG)8MJT4&,S(T5Z8Y:H@R9RE7 M$N-(RGA"$M9X8&5X.\F0LQ,L8$X$IY;'F--NAJ XPPR3)&YGV4^>']&S\S^> M\72M9[:U=R++/8OXH471(4H#&CA!I)5%TI//N@3P 4<[-5JE]CO_(SD3J9+) MI2!O=JW,:WMJAJ =.=Z^A;?'R]Z0Y/E>N(W07&,ZIPT-:^0GM M\7 VB ]S 6)U;QV/WK 8/H;OJK:X_;940]EC"QOB]=5R<9MZJ7#(U$5_ \J$ MDS8SV^I'2T1#QZ6_V_D>UV]^B-@@ZD$RP ??=:_]X-D*5C5W7>O3PQV^K2U5 M/"C5)(87!MJKU,6 )GC'H"%Q)\">Q/RQK.!PF,P6)N.39(:X&7NS>'1 M--E3;W7EN(>(UD6CNM3&@D6-K%2,1+5(C0&'FBG414@55=+AW/D=JY@_/A0R M9S";U]%-LP0N4UNM8EM1%(5Y)%/M]J[_2NDC#9XWZC0;A^+*W P&Z9C0(E>U*YU9(H+D];4+IW0F;B,&LE M"H>+I1-(,X$DW <\UW@1FUA"WBS+5ZBJ"QR?'L)C@%@J>+/$@G@EO@?V4^B[ MSBJF$N^^2N>0AHJ42IMHJ<5CCYK"G%I,MWFMY1#>U(NO(0P/._&WFE/,CIB, M!9>[M*EBO[8##F- X$[U[&17N B"0:9)LK#>Q_EF4\&()!D^ $9GX6?J;+8, M+L^L)X:0&WXK.F&+!2KEP4DVU=2.G"?=2QN=$!X?)#:S714,UJ,Z+NAKJ%MO MLTS!GLTI8_Z806UHVTE QB>-;)XG*OO%_% B&-_>G!ZBK1_ %/8+F[T&DK'@ ML5UX\3I[H8'MA/0>DH,_@#NT1K@N&(\< 3NS?2V$;,UUQ C:G>Z](VPB!.%2 M$"[&:- 6@9T/NQW4-8"7O#3@&74A[PK?(R4'SX$LH2AP^<[WGFC()KW<: UG MD9I$QH*7=6Q2C'TZ%,: 8[7TZ&+FDC*,[^_AG>B9, V);2-@Q"B % +O?09U M,0;#BEXZ.Z^'+QWS0 X_?5@TATY=,D ,7KVHV=M\2Q),0%XXR=V000> N,PK M9TQ!/<_B9ED>V^V!X3F;?<(H M/3J;)Y(8N" M;M@,H)BL-%\3$(+$4N1 GML'!.$Y!]$ /3H;'GM:H8_QLM$]@+OZ^>B?SQS/ M]G?T++)>:-CH7;&*!&+8;F@/C5?%A?WQS4!;:='N3?&?R1FYX=3) JB;74X* M22XH6_%2\3,3ZHK]$T;\-W7B"2^P.I:L2[& MG3C:EEP$*?8F)!%#%%01@I@>N<=O0>,O7>-<28GEF*#QK?(+ZM&UHY=6K!W% ML2!98VLIW[O6(S<&!&NN5$=O7J7<7UGL)2\ER+M8AO?XD,NLY6QMRYDN4+RF M00 O\%[B0JI>BWRH=:F-!:D:64E5K+@&J3$@5#.%NHBQA#./JZ1LL8<\IZHY M!3"ZTZ>;"?L)F'X:45!*]KD56E^@%^/1+(,:F!/7(85*,_8LQIHD4'E[.EU+)0!S/'$ VL M#&H;"4:DY+%@'%OF:':Z\\7+GKTS<(W7@V'SO&@-""*'E=:V*I[HU*6&&'+: MZ]1%D,G,^00G88\\.9I1HQUDH\'D9ID8+0"CQ2!E)&.J[T6!94>_.M'V\A!& M;/85\,6JM%;5N\C9C!)N5&IAG5PNUOID\.)0&V4:YW&->9)GQI0D7*% 1_QW M+H#TNY1Q7UR73"K0FDG[:L!D,OQ$6RH7"N>_)I:*=X>6E@LWT2H@7 M"A8"3'B^]$0&?-,EH\8[JD/$3?'PW[O\INCEGOEA+;KAX>@]I%]76ICP9U&5E)<+*I# M:@SXTTRA3BX4P35\8#TA,G,B<<>'0.;,Q5\MK!EK&8^R'6V^3,-UAO] GZAW MH-Y2:+VW :18&SY/F^_?BZYB6DU0V8U!>OGZB_":S]UK&G ;7J M3)JZYS@6D.O-VJI)6,?LQ@"6_2G=S:2.2T? 0T@B7[H9%I),0A+YZ37S5$B8 M_F5B$I 3'_[B_@963FAM-@'=\"350?Q].![/X\!O=C ;;S(;NW$N;H[OL1H< MP^.NAE,\T T,< ]T[PER\QA_6R-Y0D]I8<+>1E10Y%^J0&@->-E.H MD^32@CA)61.)-]];2UJ@@SAS1@MCDP2IT9PCH\4M#-\-]2(G>OW56=%LYCWW M\O@>WOK>YM9YHBMQL_;&N_%6SI.S.ECNZ=@@?GRM<9=T"!'&@H##?1^*NZJ] M\Q\#U@YHA4XN[*="$C;_.9IWAA,"DIYQ49/K_&RYFTE;/'V-)<:'Z2/[:L%KBRW'ARW'YEV.E7XZ3?3GK^,NQY2]'_-)A-@5XQ\YF^HYG>;9CN8_) MX_DK&EF.R^\0,F&.OIMZ/7%"< /MTY0)>MWP 5X3X5LE2%BP)7+"B*2<2,R* MQ+Q,S(286$Y$.5+<>!%3T6%@)S#CXO6S]7<_X&6$IR^.JK1U/0HX@Z"%->1I M1(WN^(*BC1)-@T/PBH?FC%LR2C.@YPR36N_ TTBI]Q*;9!:YLW;TRM]9SG&& MK.941ALM95;1C)@B$J.,FE)%^HF<22YN@"WY33 V$C[)KNH#=45MO:VS#S_3 MW9(&"G.6]\ =%AK:YN[KJIOC=7<=H1O?OTTVKW/$R6^"O)G5UR#Z6IN \HEA M&._;2[RZ6^G,V" *^W$+:F\]W_4WKX616-469PQJ:9BN7U0-D2?;K!2[J2<^ MT#T3F#N@?,YD+?U#1&C,E40IVV&S9_:F=D*89)3);SL#:#.0FMD7:&(RL BL M%84I2?D,H* 93LBITDL>ZX_;X!W@E9(V]3Y.D$]%#0_E/6GF 443\73G>[SV M=42GZ?RA-+)*.^".L6I=Y6A3M\8;=QHR-]^)3$B3C+;96.Q7V[-$7=M_HI[% M:'<6GV$02;')?LOBDOWR-UXPKV#/]/@SG-%6J $$5NX#?#%4+%[C,RR8@$,: M4,LEGZD%!UCBCD>WNY ZGE0(YZ>?(O>F4Z ^^@BQ1W4$2DJ?ZGISKL*K/CN> MLSOLE'YU_#E>SRK4)/&MW(>(HZ)( MDS0JY ^11D6AB(W=2% S&!5]J&-BK7D?P".AZ!6*J_ WVO\X.'L8P<3#R9); M GH]<494 ^WE9:A&-WQ1V$3XI@XM7<];Y,XQ#9[X*_4&K4M/^?5ZCM333[77 M\O2LVP@]O4#X'CS=Y/&\O]L?V "6:EQ^-*]LC=NG*[3,I] J;(K7=ZL$;IX* M2] E*6'#Q_!]ZTE3/>$$/O37T;,5&'DZ=WT(/" -60N?%-L(2T*%<4$S<;IX.INXZ)FXA0O>%R;,.DQO XFF&Q MZV&B3_?B MN)2Z5#,^O'C-VL0UY;GDF3&\%:RI*J_']\0*M^OW:=_<"]<>^. -Q%ZU[2*> M#:[V9[N]Z[]2^ACY]N_S/1BF? )3TAYW;%5JFIO4J!KC]?)JD1N?4T-LG,'/ M*Q)'!Y&B9T($-[.+C![5!XK$YR2-+"WN:<"O7S,7YU]%^/Q2ZJY5?7 [K9;&LNN6 M=L#KP'IB-W]IDE G FPY??*.<0C?M_%HQ:.GI#HF#QG@!7,[];NG\N8X'517 MS_3U4TE;Y ^@="1O/$OGF9A%[8^TLFD(C,@!?'38-T]]:IJ6N>7$>002(-]# M^$&FVY!&D4M7$JX V_(XU.R'."#K:)Y&IDXGY"%:2X7FL0J)C,]B/B*ANAA4 M1,#R2+96;"+/_K1\)>PWRI,G#1O$@]@"F)P]QI:0AU=NB;9QW>@^Y<*)(%]5 MEGE*\2)"U0YG6%=JEMRS+&R$;\)7+6KCAW% %5* 2:G6AGT]<:(7%,62W_ O M?)%-K7!CNAF%$7FMGC64_ES>?22>KJE$IS'0?/=7M;QQ FJSQN'46\W7:\>F M0?&6475KG.ZKJ66VME$V13YOTA"\E2OR(E=9=L7P6Q+*FYT#KV[Z4S8ES:^) M),3-GMNO_GX((W[Z=.T'=_1Y:O,TEHZWN0]\C_UHB[.ILG/]FC1P1G,KB^3N M!=0A@&] :J=&XU532AQ247HK7L[]RWYE128O&L"YZ'P]7?G5)Y**IKA]O4R_ M7(J0@G9X/;=4VEX297*I:0ZL,/YW_XX<=2G]7MB]N):UD@!]0Z'?&Z M>3WQ^_![8'3VPX\][,TNMK1,O3^=_TF]DJC1%Z=C-[) NLK0[8A\S5%;C>:G M?JX55XR"LN 5_OZGL_,_#;L>&_;H(+"^T;,#03VP">NN'X06%VA0+ MZT5AQWH4<,=" VODWFSI=\<;%TV4:!H=#7CV,50^T6#I5[SU&M J2:$>.V9& M GJVD_(HN8R;":SXY/NK9\=U;W9[RPE %-!;83!E8]P(4*ZC'.S%+?'&=86\ M;4.XF+RA:.U)UX0L<5*ZQH)178KA2TC7!_?665,5ENEUQ1VH=?37J\61]<,; MQ+6D[Z7JQH0(3@18F7EV/80-IO8_#@Y<&W0R_>/";32,G!U?X1^$):"L6TC> M_95:P7M467PJD4"O)VX@J*&]5A:?,';#NP:O R-\D-8(>'!#]BSO"EI MY*]I\\!772/VPRA<^/-EQ%86TTO?BP*VTH ;/-.DB,H]#1Q_-5]?4(^NG>C& ML]W#RO$V#^SW9\L]GI-W2!8G%G1MM^R.);DU/_+G!O@]/)RK0" MI5D%?J&\_(XP^+EBY.Z8!RN('-O96WQ8YPNL4.7T\"!ZV!5\+X924C:QQNY%PXN\ M&TP2/^@V)<-CX:-TGHHE-WTMW%JHUQ\Q1C6Q1"Y5@VYGY)C62)46>:Q@)'W> M.O:6YV6(D[E]&Y+ V6PCV#"B+\SI'1X(\>+%"8GG$]=G W? MY&80#!2,V@# MA O7XN(1;"!1)]I"3742TN#)L:$(I+=RX-,)V5G![S3*_D)\:+B74FM)C1FB M?GOO_=7[[%TMO)_9/X_?$E$;>\*1F+Y83'86HM_>G__UCY_//UY]RZ ZMVW+ M?O4#V(T%^?A.JT?)*YM#, K.$R4[ILD6]FV]%6OOL*;4(ROK=>#GF(,Z0&V. M1O9/A[0(,"/*7"8\^= $T?+=WM+5 =[27QQ"QZ-AR"\&A#QJPHM7Z;>%M715 MY^P-R. <2MK:);?FKDD#\=*ZJ2:-UWLQ0T#9A"61>4Y@M2?]@?S&&1NY8EY@ MDY*WW^K6N".B0DO9\15-\?IWE<"-Y_\%KFOP<7:1FN(:6'E*=YU^XW/>0LVK MW#C7:5P.72QZEZX](0F3'I+C++:4_?%<'@1*7[0J&^/T5#T=Y3>KQ2V1KTZK MY>[H52IP(9;$9O WJ#WIN4B4DVGW\*!<)@\CB3K8E"T11UJY=FF8%3=#'F,5 M0G<78!\,!EA/2N:"BJO8?63]XH0'RX4C-=>!;2IU9"E;(HZL<%&ZP,@X/RS"RO,BQ7/>5L/_ ']-;HF'RVS*> MJM&0! 2;Y38+R8UG?T[V.R'&PMAH=("/P)"E3(G,E=_^' MQ'S)NV\NYP^S;]X/?<-]((-H6J&'20MEK9WH];/EN"43EJ)6B -9K54V43EI M@CPX2P3N=8*2\"7 >$)N;R\''E&[USNG4@]!=>]X][ZC*#U/Y#&=+<-.1I?;Y:UKJP/HM GB M"%+HDX;0T>?(8T@E;>L@XNO7'2=:$DZ,/;G\^<+ 2-2UXK(F9HIU]JY6=YAP M[;]$@5\RI!XW0(P'A;JD:)#[%#D6%,LZ$!+$S(<%@6XUCJD9C/Y>].DN[/^R M#]/%\&OIC$#9$C$0E&N7(D)Q,^304"%T1SD7*D'B+VS2G-COW==?G%!5OT+="C& J+5*P>.T"7+@*!%X*- (N0CD MB]>6D5[Q "BHVFV,BEIC!Q4M$0? M"EZ$,' /Y6/NNM? *YD^3:)2T>1*QX2^W6'2?QUH&%G/=*F&H=,FB)%'H4\* M-D>?(\<7E;0#;84(]K_2Y; 0TK76J1H&8:(WG3H\7_2#*'!>2HX7CQH@AH%" M7;+#1?E3Y!!0+.M ! S'_A$L5.-8VH&0[\7?;H+^T]PX7'GN"4WBT^;( Y] MA3YI\!]]CCS\5=(.! "<_6?&?E@(Z%KK5 V#,-";3AW. *B_=^F37S8'.&F" M& H4^F3S@/SGR*% )>U 4$!2_@-/!SI6.Z5GP'/MKL6.M4#9-GFGWIA"21S"W[PPV\ M(CU27K,+3D2IHV]%YIBT_:B2QIQ*W6TJ)*!/.(-A0W(0E26B1JKFB?S7X<*/ ML_)#85,L;!IW#7/J[I>/Q MV>]EFHJ8_11" HOC@@?A _PT7\\/D>WO:/B+Y1[HS\YF6S&^=,8$-\3V8].B MF54W'/#"=$]ZMIZ]2?),2"81R8E$9)DFA$L%,9_(-2% :I/ M))(OK&!#H\)RMSWRPCG(#&+AK)I-3XR0;SCVKG9'5Z>3Q/EKWW7]9U[L-IMS MOB<^0["X*H4JZJ$*1>23):-E.:LD*YJH\0#T $:B5^*LL\QK4+4G_O..0H(U M6^R6YFI.1$+A@>OS8/W:6DT%2BL36]4<%Q?JRYQ.2G/L2(2?\(%()($1(B !Y^& MLYJPA2W9PN*$>2IMGI,ZD"R'[/BBP$S7EA/P3;96QI:IO 5@.K%*?2Q*28P= M?DX5Z78F6 Y$P),Q1D :I#ISC9))F%D0,Y^E=?O*0& M@+H<9$N2;P%CRNU5'W"*Z8T=?2JTZG_RDPI L_0\WF"(IF4#NN K2$ LM< EQ3(+&JC,L57?KAR?E9(P+C!"6U+70@Z+3W M^ "G1(<>9CKQCD92*XOS0S;'Z<$@$MVS(%;=+E#=%"SPOHV=S.]4&T/J^Q8VD+C;N=+!9BZH0D\A$_(" AH$1: M4SLLA-?)&/#5@-TSF(47!XR/O\."M)+",_93]'KC113J5H8W87B@JWD _\)J M_^X CT7GZ\>MQ3X7GU9\$:V)CP-%N[%AQ:/-!I3Q(V1'^G6P5@S).\2J&:-(!G$JYT!I(/YR_SAX+8SN2D.8K7>!L<3%8DO9'W_02UE?UAAQN%?J MF(:_LB5R.*B6NX.W%N7UZ(&_?)./#3\G!<@G! HR3\CC8G;/YN 37GO]@HUG M:17C@6LU]V>W16(2G43V;>/W_,<:\:MHC#U^RW3,QV]1RS'$;ZG< \3O^8]' M\3MU_TY?)L?%G"%FDSJN)L*U%S,M$@L,$:X?/M09;HL;8P_7,AV/AMN"EF,( MUU*YFX>K.#'-!M4/N: T,3SVH>"M^X9"],. 3CS4- KJZMUZMTVML MS:D@CM#F5JEX$UU& GE,MU"H_;:T&S^O<2@,T_8!N"3/D.,;H@&Q0K*W@BB^ ME26]E-T+>> *:2(BHT(LLDSVDNQ,*0R/D7NUZF61;; \##:NN<'GJH6ZWV:> M?Q,[OO[I4CVB. &Y6YM5OV?5I8C_\**E7F-XP]GP$2LV6W0P@9/FB7!/,3TV M7LUX$HY?_>!W)LBEM74X$@F?JW5 M:WWBEW\''4:Y]T%QLIEG(0:QA1S$R@0Q,[,S;S;Y%@R((%U#7!$A!8G%(+$< M1!+$W-30F.GN:%3F2.F"XEWV'*W)"?*0\\CS]@/D.5I<;V./AC/"\S?J4E,>P%3'P6GQU- ML;Y#Z7PQ=EOHZ']&;?S0J&S;4#"#8-0QJ%"<1. M/7E"S#YCDX05P\7I,N3OW?1-W1&WT2%/EU:N *DN6(T*SSI5N%OHRT0CLFQ$ M")=-O."84)*/Q )."$P^?DN$-%OJ 9O%IR['2'[^\]/8P?02MAB\2+0KCPRN M$X'93R"RN%:72CUZ^.[O^T@H5.F,VD@.N7E7O( ,"D#[SUV>'D,83M>STRXJRNU#Q4<^*+92-7V;" M8\C"=!VZP]2T>)@B#_)W8F!E@=_L#Z=>._95Q)Q%6G#GBSLB V[@J/CB',(& MMWQ?*X="IE_'JJ%<]::0P*D2U_(M%.F#X7:!\DR_'CQ0V[SG MW5WI@Z\#"4KT1C4A2S8RI<\ZG9#]*,SNT0T<0PV\V=NE]1-#N4I#O0$$OJ+B M5D>,SXIO9#BX/A+@:T5OE1FP@SE)!$]R:KY)=._ZVTF-%A0: M;7Q(+^[DWE*FW7SI.INBO;U!&7]%F%YJ^]Z O)#K5X+>Y;H/!]G%B/V:XO5\ MS^^Y>AO"9269L&\!I?OY%H2E_)3@Z&?AR5BSL%Z&W0M1,OYZL+G<]GUAV0=+3UY!:+$Z)'#'#)1LFQT5YD5RIR';KI<]N?6^S MH,'NAJLA&>FX"C8"<7"B-0+#]'=?HZ8L7]%UCJ:6Z2#CC0^IY^!XK A[B!5% M@;,\1"*OC0^?BA_I;N\'5O!*5LZ:@1=E'AW""1L? =[<+9&AOY^^GORD:LB? M3\AM>D8J=,F-W-U6A:\>MT?_Y676S$**ALCR #6VYC4CX-D.6Z$.NNI2L,4Y MB@]M][Y67$4\OX[U5JGFJ%9;J:1O;*G5RS=P19T-YN 0UPN"VB\I$&Z=!GXJZDU@"6R:8]D3,)!T[:@ M-C5D9SCVXW>28[Y//'/LZXD;+U%SB&5$GAO.L6\@*_>U:)!8?1UKA2*%FX8] MF_4Z$3USG2<^7*E&LM&_2S5O,\Q ^.ZO5[O+Z&%_\F "!2RO<)OI?,V>5DJLKC%O> W< :F@KAT])<[S.KR-T MXZ$+TOZE.\-@6[F,@)'Y=^_J8MB0D)0*[P/_&@J2ZKU>+>^).UIK:%\TZ)5T MPQN]=83OL@0(3ZU'.)M>WE#&JC_18.GK+:C[M$!,Q^BKFB+]V,)?W'"[]<.J M*;1.__'&=Z$E=*,\UWF7\5W2=\#PN&P-AMCOUB*@L9A_(\& M1,V9%4!]\?">!H^P0W!AA8ZM;ZXJ,J-#!"V[5 !#*8U1X8.>)GW!1,*5,+:$ M\YT0SAD/7/1L(*!"WCD>6?FN:P4AV3-+\)T\HY6^- QPY;B'J+)*;"U";P9+ MCFS3$$UB*F\"3XYU&1)18M[X,:4K(\5T$.'*M>4$OUCN(=D@S6V,?J96> CH M:@Z;JH<@8"9A#>Y\+TA^!9@,H;\X6Z'VUG/^P99;BY(3O9Y9XL:J(>PMHUJ? M_/#BWR!:-[X6Q80C7#H2BP+7P=FJ;'^ 6U'>BJ2L2<:;_,:Y']<#&P0DQ&KL M,;(B+NHM,&'235\0_<(:JAK1QA)2(F3A#KY#>AC M\N K?VRI%]+/=+>D@<)>NGUQ>WKM41K[?7$[_QC4+!A<]%\GQ( MS(C\)EB9*4\ZO!6LO!6H8-1+K0^-E:MI_4U@GC15YC/E!>-5,@$M:8X;V:KT ME,%,U18O?E5*W-193U92!$@;G'$6:5HZW2SM,#Z?54\TU:W'Y;<=33%5GFMP M?GFL;9*3)[Y,\2GPGZ/M YL2E\XTZU,9EY=K6J7,]2M(C"<>=!7I+$CDW%@Q M4R*X$F!K=GXZM'42 VR$ =@D#<44[P=1GW"!6&4]V" 5%M3(=W30$BF('(D1JVR6UQ12JZ*QHX3WS3[,8+HX!G_N)72L+Y6CP/?8Q\ M^_>?J7M\8:M!=YR8UM0.:1JX&GV1IW9KHDE3UUYL*?$., V!I&KQ&^0MHTR6 MK\2F063!):14(.*D$H6$\C?1/&F+#\TA#9OM[_:6]SILPK4A#9;Q(AFSB;BK MQA/3Q<^Y.4<"+(,E%PHGD4';N;3OW*[C5)GYOS.A E<3 M-!46!(Z3[&XP#F0=P"23(T]ZILYF"U>$K2<:6!OF?(%CT^XN#%>B["?FOW,O M^_UXB:[1?!08JM2S #)/VHX&(=62MZ]0XGAVP(O7,=\$)%O#6NJ)KZ78I]*T M04X9'+>-$V*$R;TJ4_#7O7TDM /B9.X1B;R)DAW#:#L1ZOIEZK8 J/AJ"VPA M0((7!HX.#14YV4O:(H:F*@U37%(U1 Y*E6*W1Z3D6A9Y%P@.K^\9]K@0'5 C MR4_+DZ8-8SB*/X%AV PB]6:29ZU2]\#C^.322D+ M75K4Z/@02;&1V@UEG.C7@_6JLQ[6(HOWY*)+Y;K-^)J)07)R3++Z99/3PPPL MB5T'-^(LC)P='ZBD:;0M\X9UGPT#[,;(27#1^AAP_&>ZVL#)C@;>CAQK'6EI+1JS$QO)C57J5.=Z+$U"AF3C+N1&)O\O%E+-D5#9V- M5_7N4MD8=\B4ZRC'0W%+O,Y>(6]33T[<5:)K\*[[J9*E-]U+FH_-3=6WW%5M MQ^2J'=UP+W16@]?;$SGH:AK&LF7#0>E%5;V>N)VXAO;YB4AE-[RN74?XYI.+ MA ?4Q4M\/F.CNJPZB,O?^=XJE:_4Q8M;XG;I$NUD%RYHAM=ERX1MG K1CPAJ M-TWO"UZ\IC_^[+ %<&!O7V_I$W,I]=Q7NS-N9ZYG@\(+O*4]\;I\3?D[N/.9 M4N=KP+OI+P8GT:G*\D744SN4SJSKTAA))-2Q2&% Z! 805S44J.?\# X;4\U M%M?>.2"4+>EB3O".[%8VW/V6_POF[M1R\!Y M^ZWAE\MF#=?=L^0.L:FTW&M!L[$@B+JHZG&;,<1Y9Z5+T]"=%E0L'3H(.]+J MY$DK7+&+ LLV$UM'Z1$*$B+P# A?/'\9TN )KB#QB0_".Z!ZL69(>I0UYO#C2AY)=K$*$.,E@N()G1JE$O# 56Z'(0L69%/-BF;S% MUXUAJR;]W7/Y&D*^=&'0,8NW'OI]S($["W_3BPJ4)A9/#7;2,@->Q27;/?[Z M^&VOP[=>L)R0_^I$VQ-[A7F#A7GSIH\X.*T:9ZY=\!H)GO9AX:J3^=:,1H"M MO:C;!<+*+[&>F60%X>GD%(-3 079/D!VS]9N_FKF%;YWQVWO"XMUM"FQ M(HZIU.LE@90PT&-D!='H3;2D&\>#2HQC&FX4!KIG7^26*5DY=^^>W=L<='3M MW,6X4\7K[0T]VAHC''TF)!73[#P?F\UODI0]$('$R@K?CFH^KS#3(XTB5ZQ@ MAOE>\@R_*I ML'6/,"MQ^VJ MDAGE% K"?H6P+9+NU]:X9;LK5=CA[<=VP8R M?-WZ8PHJL;+RF4/LQW4\K_J\+?ZF^B1SA6,_]JT%G#!"C!FN?H>P>2 MOR>)[+#=FTC_%A"\Q^_F2]'DDK ML) EJ$P@0=J&'.3!AQ\#,BG$.>'[8=-ECON;'&R$!WV(4(C,UR15B=$EL5(D MT6KX9*#C_A)G>C%G8M4WM7G1.# ;=;@9/P7,,)?,:DQ,Q22LLA/.(;B>SO*B MJ+P'WI6,IMR-AYF8/,GH3\B2@E^3J>OZS_Q\COU*+MG0P2:_$',3$K,WLG[H MV2*+P%I18B5V"5(N1F([^0H8GEWYAV6T/KBG^E>$>DT:R"._B45R0%"' &)< M:*1&IS Q,#Y4US\P8YM;&H8_D?O ?W)"N'<(QK"%,6#2WL^AI-:]F&'M$%_F M,'C)!8.^@PP+7SPV"7;I*E.J8KI7V@$WX%?K*J.[NC5>*->0N:F/)J0EW.YW M]O9$@Z5?/G\;0MULUM;A-NU]FI%]OHYA)=.A:,E;U0%GX.GKFFY#EK9&ODVH M)WM3CWR@>R8U%3MY64I_XD1T-^@>VD!JAOPBIZ0H4[M@+=7+_F'Y_E._!K@O MTMCPXC&=DA9,AQ387-$%)V#5T5>>*Y2UQSM;T)*ZTW6>M+(C:>6E!\J&^M!R MCRLO#;,'U*L1XMD($:L../655G902\R&=+J%:SM$FT*_!FR,F:_7JE"O3P5W M]#>T2OVMH90$7HQHJLA0VT.H]X?ZLX\G-(9TS"=&JQ=$W4EB#R95-GZK5?64$, M9:7:Q>V($'X\N1%A\Y'=?DT/<7-Q:"4*#'N[P;@E"]!;#=[Q!0-NWR$N%91L M*.&P7G\W Q38?D>C7_W@=\?;7%I[)[+KOAS#BG#,KP+V(J?3BI\AVC2DA MQO%VUDG1NQD9Y)C=4JF.-H<\=5$_VPEJM2EKA8M+]X'&1\Q;*R!$]DR5G"?FG)FK)7+ M:ZM%OL')R;"6$??3&RYAR#..&I-UFQ+;>QT6B1 MT0:9CCS:6[HZN'2^O@_\/0VBUWMFF&CJK2!][A[T*TLY6Z,[3FAM:@=Y0J/; M%^\TI[8&C0_*8_(3PAGP[/ I"Y,I6V\A4\K69T"Q@PUYL9-36C.EO =N;]?0 M5G;PDN9X?5I'Z.:7?F/:1"9NMES*,/HZ$O'NYO8I!$#]!0ON\,';L$LVP/H[ MIG=A'-;JB#,SNJU>B&?T]?3H:/]QQVGRB9=:S_8B53!,")9#B0-@)D\ M38#2 MY\5I;/#9TIE)11><6%A'W]RMG9+V>" UU6U'10:LC[O#5U_WH+FY%+[RA7$/VGE;-MX8K'0QH@;SJJ(*; M/T.O:Z&DTTB#.J>S5D#S'B,,YKS(!]F MQ#1SX&(L7R+I'>9I$, -6/5M47R@5]4;+^@TT*%I$"2L^*5PSNR,"IM;Y0LBE7?"ZO*[@3?T\ MI4\R!D1P,+NUUK?BLQHP0"6>Z^@I[QZ"6^_%2L *>]$5].P),-RG$;M@>XL!VXLP1YM:%ON7ZFEVH?LAO)H M :ZN]72G2)ID1PF5M97K!4\G/&F@?3R!@KHVL2SBV "D(2 ._KB]HR_1XIFZ M3_2S[T7;!EL2>D3?4K2J;-8\4(\IOI485>K5-#R[$0/=BF< RS&<^ -^. +0 M7#S[G9@PH_66P.?(0LTQ)R;T5J#F6)UA)P# G3#V(T"6K@S%(OV/(P$4QEEU M3Z@YM3<'*K*56L(*D'I3P))3R 2T@ !C 9=.C,7B_D_C@)=K9O3.C!<3>VO@ M(MNH';8 I;<$+3E]#" +\!\)L'1B*A;P_]IAO7NE$HG-95VF:V85!61T0 XG M:'1EIZQ2?'-:R)-(=*%9RV1Q4/)'/A2%G-F60!'Z8KN'%5R=7#N>Y=D.9 [C MS[/A$<7&]U?/CNM.B&O9/(/I?OL:.K 3&AZ68<0S7&SC.?^$L@*@'6-_"'@7OJ7Z"H"U]B$K-D^1&E9 M'+FW@C7%2@U[Z):3802@TZW-%EL:4#[#,?M\]E,\+==[*WO<&C=N5&A9_ HV MUQ1OO%<)W,7[UH2RR9>LB0RW%8_>BMKA]DZE9K)?GC3"ZY%J49OZ8N9_MX:? MI/6GF\F8XK5I KJZ.@2.M[GG^QP5!E!T&4>DE>E;%'1%[?''7ZG4;=UU0A+R M1- G@H'1J.Q%8ZEP$XR%&P3QN@@L+W2M..G+/;/GEHD:EP5DFDM%J"HL5H_2 M.**[@76*@KX&&?Q8T$29]A A<>6[ZPE?DC&6:[L9Q8XA+237LP/3""9%Y5M- MH,QLMW?]5TH?1*&?6\=:.B[#/UI1NTVG'VX$T=9UGLY'Z1E+>N -:$VYVWJT3)\ [.A/)#6>UGK-6U4YK%U_(KRE4(B M[9&YLA/N^-73^;3:JJH'WOC5E+NI)\=56&-_1C,4#Z*U%6OM9@S,)&1<\H(N MP:&JRF!Q2]R16J)=/MGB23.\,5DF;!>'*[>^MSEC,;(CP(EDK(PF#KT,Z,J) MKBT;8N5U^N*H=I(*&^+V4K5NLI.>ML+KHR6R-LY>STF2A";Y#:@B<,4K'U[0 M:]DA;3HF=\SKIW9(T6XL+GDD;6=.*>@V<4O%/?T'^N2[3XZWF>]I8,'&7UX1 M=55&[9XXO;&!]NE%>[UNR._4UU2BJ0M+E1G5Y1@M$B32$#\1A]C"^]>)]\.5 M^PWUV,C\[60_L(/ OXB M(USXCX<]/*&X%@<>L_B\8^K!#3S*#!H],&?^F:XVK+D:=#NECAB8N[=B"M[= MD48.\#THVNL@X,)=)P;6<6@N4Y'APU (?7)@R,';B04G?$#8"M&'17%$QKZ- M[1BC^T7.CK$\)!:(S&0[)C(1$(K$4JE&A188^4@]QP\>J7U@(NK.-W4Z(48T M;9U3H*KL@1Q_].7O%59@,AAR4=@_7);CP7]8I.C?+((#B5D@FN4-IKKBBS:_ M 5ZRL5C8$">@5>NFWOW&O;%8(FOS@D*Y76Z#&XMYY>ZL'2W=7"QI/B:W/-53 M[9Q9V[&X:('$'3GJA #M-EN.K1WV%RMPX$0(IJ,ER%G0#+>#JO22'?.X#5Z' M5$K:U!$3@F(98@XO9<5*D;*PX7A<4(V.IZW&X88=(>*1(W9^^')I>=;*F@=? MPOO V7')+]BOM\[2#]0+8:U>.+VOIM;I4KBZ"_*U< T%>E\,"UD(6R9]>21[ M$(?OFTW(A>7]SM9OW\*-*?8%\L1$[RZF[Z'IK>^M^0[1D[[VYF+^,'!BGP%LFC,5Y\+U9:::3KA50&V#"^HA3' U?S"_6+FM> 6M;HT3 M"#6U5*]4;O&_BZX2N+,%]:WA1])]*?1*]*HQ3DP3N<&UB#SF&Z_3'&]B-M.CH-"OA-R$QQ^Q\BR0\C8" $:.@ MV]\&M-)"R;@A[G!7ZU9RNYNUPANZ);)VMFT(5!&,PYTH]]F*#@$]9J[LG['N=:EBGM/J:(K+:#.D[5?<<2O1H:=!;3G!<1 MS. )?VYG#$&P]VB+&_ER44@.O)H=[*,475F%NS6GE8.-S=6_>(>0KI)IQZ6_ MVSD\#<,UI?>4?2->9&U4[[':T,,-(JTM536EUR*&%V;:J]3Y9%^P3V?X$Y)) M ^R228#FLG_,!;+2('=&#@%UK,'F>H/L!'\SN$;P'$+(S.7(M.(JJ ,+]ML M(I02&1\ 5=ND"G74%,8%-1IZ=(XO*4_,VPD]&F;Z9#DNG]#!(QL&7*:A0L,L MHPKSJB >1XAVN*6=#T7C,=:-9GR7P,UOSLDCLI&HHA%8(E%T?HB@Y@R\DQ.5 M;53&J>Z&//HT]]AT*$NN4MX#>R!7:IN/865SS.%;+71S]P7:$\*I3XA$ MWV3"E6*-;RON>53W&J,OGVA=[<]IE['Y]*G@??CUK>$K(?WKSOXQDM!+:)8^ MT^>"I M3_EO)&;!VYS%$L:X-3H.YJB?VF-:6OVUH9ZDJXB#/]FGX'\R=-0]D MB,P +M?+;,.S1-;V?AE'(E UDR>W M3^5$T-FGN@U3AW#K!_R&6E64%3;$'65JW7*%!T]:X8VR$ED;)ZH DO%)B.$P MZTT[<1IB-,ZJPFL\454:3".(H>Z60II!\F._>D04'X/T5_' 6RXY,*#L]E&\_674)3TGB_A_3=4^DYR_5W[ M0=Z021$*U?6[=A1Q(T('UI)AHP4YO-C2A5*-TQH [S-_??8%ZB@">Y+PAP!, M\U?"O;4CL$HKOIBYPF?2:G?TF3S,OQ +.(?$ERQ&98L)P/*7KK/AZ2+,U'C* M&>%7"G:CJ^D3^^NF8%-=]'B"WW M/C.\VQUVR?I3P.R*!O/U-1/;Q[T;;\_FPCC_ V:0 5A=//LMS991>1N0]_6'+F- MK/F^OP(O&VY'5,V9]GTV-DY$M23[:%?=K9#4GN-P;$Q0)$K%<159 [+4K?GU MBPNO500)DK@D2GZQ6Q*0-R(_)!) CQ:Q,\Z(HR"S!FA1<,ND]&"TC@3M&AJ M8A#1(N0_@G2K8PM& L;= M$S#1:RGJZG_C3U+G&TPPMX.^9[=Z57I(WV%F_5J?TT7)="HPT6*F5:IGNL:3 M /YLUPR%)E=BY#6KQ&%RQOPK7G*Z. V!H\99S<8!SKWP0_Z;X^LDT0$70+*. MU_F&_I?OZ;(#6K3]=BN*788'0CB%^J]_88=KV4EW=N2=]H]WW".#)#G0%I1+ MG$89^KS!2?7W\I?"6#%L*C$_15_2SZBQJ^/RZS@)DC!FU-(LYCI%],]V MGQ%S\(WGS .VEZ"N;,1BRODS@+40<^;L"79JF&J'*;&C_^&B961P=/W1DBW$ M[FXE6E\*?&W$RG2]ITH*KJ-%H>@\.0A9210D;(4]@85,V*]C:T[N; G7 M#P?DG5[?GTZ1+;HSJB=+$I,7*<'_E[)@=W5)=K^)]SD)PC]^(1@GNWB+/^ \ MW#RNDNB_]YEXWKMKL3Z)"LS1.M,J56)R/ G@BI MTIAIG9*=R$?2F2$OKH+2->K%Q[NK!:J%7" FY@,3'_7[[\FN\I1QCUKH!A M9:3^%98H]@,.(&.UT(0:[L#A_:)RFC*BB:?(30I0>&[B<(OJ=T73R3G5#KP_!CO[S@00T2 K93'*9L@J!,M.H= 0^ M>I5U;PWCP5Z Q[.Z[)H&MJ"J<5__?H.WZUN29GL>@4/;[P M3BQ=$"26(TLSYF#@CMXQS3E]5#/0YWX/&TQ_^5?&1=D3%?H =DI5C2O_'.H MW%65Q=?DM8Q9]ZBUZY/&]7[H5=;^VLVXPLK*SL"C#V'\*$>>UE\!8\RI%A6: MU'\"CAL=@FI""'9Q*>&99QI7/AY>V)&ZQX!&EXWY^ZL,I9\3]K9=E@=)Q)J4 M629V/Y\?Z0W('SBWC"H:K?+AXOJ=?90PJX"^A< MK\V@$&Q5#0'C0:]NLH6 M: 4<)?IEGG64Y$""$B3$:J =_3N-\#7I>3R/(D$7O>$5VAWD?R&HJ3&9$'QA M[VYT7G%7:>\/HG1J*LTP-!O[A2_=HL^!F9V@B )1R(@Y8^=)^._DZ5[>]K#Q"IE35L9>5ECP(GX M09&GCUN^ZA&D%X@39_.GV"YV?#UH,L"R1J-BX*]18?K"10%GSUFN90YW@^K^ZZ%-'?LE!9#N%'Q1,4,7%S1N7('6W M-^G?X7WQRB>5\XD$N_)@G "_U2'?I(0=&69U1NO&,N>?2Q,V,&BQV$GD,)4@ M7$#1H]:\:;:FB K^S3.J161>"U'4]6S(X2X2<6:YVCY%8":,4C'@1Z)#%L/1 M14L^K0J )-599"^*%\V#)UQJVX\[8_O"Q)=)%JC2H:H=@:=&1ZNAJY12D3?; M5XP;#E!LUNP/C]LX1.MM&N2%4Y!:(KM95&MV*A.*MRW#W#>1P157@KG. MC=J^!%*QV&/UFJJ[G[(DRGQJ@-UNOI7J+>#)I(!'01H4TWXMLICIBL1E=6 - M%YQY$[[F2HNT!JLZU+@$;WF7V9T%[_NL4-DK!G1?;(.LMOCR%#DQXFFV95E)G+!%X\_Q\52:[4,&1@4K)L]XR M72#.=\%NQQ03/.>]0-<)>RR+3>\/GU/Q2_0>YYLTFE$H>K:GK9(\CN+M(8^? M\3T.*1SE,R[IF.<+V7@O6;OJY079P$<&& MTE.QHTD:U;0=7E_N5I;=;>V]O*S0S4=//-5[V)WJ/K[Y1(?DF@?V C$>)BXQ M-S9"'P@.L@-YX;\3,VK/I6;%CC!'[WC=V^O1H5X^+#V5=="TRLP+1F(%Z6"E M:%SAUH[_ I6,BI, 98SJK+"X'2,\M#XSVG':^@#K]OX36].S>F5R<.IJ!!B( MI#I5H'/2 CC R.75+H[HUZNEC$-P,*)9J9B+@+PSC7$S\(S M8">8*#).YV8HWM\#;B"N*/?4L:LK'W7C^"D"ZV:"L_163E3TOB.LBS9LW-!J M08V),P@7/0VFR#1=$-0JC1.8@F''5NXEJY.*N)!#[(>&M21LYP*7$%A=ZUJ4 M-W(=[_W1>8GP(QN\XG15^G25YR1^I!H\;O%#6LX*."I>E%\10JW'^\F")"V$ M80.B/MLUT7 ^5;A0J%&WR35Y2]_%ZS4.<^Z=N_TV?<'XZ-0"F%WYVB#-HO!- MJ[Q[.37:YX!$:KOU\^G#]E/MENS>W9])'*[7ZE=1QVD SF?YR(_8MMY[:(K# M%F+-AH5(B,OD\B3 +;4 VZWIV;H_:@+;Q[KT:5V';/P=[DCOE')R:HOV*W;D MG&TXEPKU;B^?-/)CJ,FWCMLMX \W3=O"C0%GH(XU!=%-NHTP6>WW)'W&47.G MB+'NJVVMWAGFV)MF@T:%*L6>P'=LQNNA85OXHBJ9F=7L45#P;P7M:$_9V2YB M9UXK+EXV8/P9=5EN$\H_\H?W?UA2F$6]9-HGLXS[K-SUZ=E'PO M0ZQ@N[5)^S8=W00?N*YO5-NYFZ4FA'.R=PK2RM4+DE08),1:\']7?RA$6[01 MF9T7*\5;R// '<:V M&[;.LFFA#!=/->LW+YQZUPZ3ZDAJ4;LV<_A"&#>GWV 8C)GA4;! ! =;7H0L M9D_")PGF+QZBSW&^.=JCQBX+!DZP7'FWOGC5L-W$ MSPKT!E2<&SEJD\@73#1DS\[E=GL>J:N."*9]4PKLW%EAM$9Q(E&!47?6I(P512M/OQ( M,9;_SIP%[_. Y&=NPW?X*4X20V94>],$E %GY]L7]1WJAG1E4>=RT*)WP98_ M,N'Z-._4#W!4Z_DYB+?LT.+/*?F%]I4EZ VR.],(0='.6@*% 5YG&"^H:NPL M;!@0T"_0-FUM#=A]6GJ_E)+72^9RNL9LI57PAS1YQEF.(ZY8]I"*NRVMG9(/ M:?X;SN]PF#XE+*\W9]4]D1]LU#9NZ='YL"G,X.*V>96MY,NF2 @W?^;$WH/Y MM$JJ$JF9&/2W.7K!.:HE610/BRX0%_RL\%E4"*;39?$KUNZM[4\M$^*5(GGO M-[$"[YT2O$+,[[<#V(F@4^SSFAW,?!F-4X80D$?X#1'1F]]P0-RE91Z'EUB/ MDKS8KUSOZZ2P?!"37X/M ;E&K@''HBC=;@/2*.)X#I.F>:N;G5!+^=M?$AU_2:7O MY\6T4AYXKKX@3PU>)SF)DRP.3P(98W^=LX8*W_.=*D9I[_KPL8JP M7DX=5KZ"SOFB$K@Y953R>IC.NOK7(!]2MAPC^CJW&Z93ALVJ& ML%HPK8GP]FC#A-@#5FQJQ+: M3-)P UG="NJJ=S93'JZ*_=P;O03R+^Y#)5-(Q+JMBO,]Y[$KML;$TCKO>[CO0T MFZ SNBDVIJ[+=1RT( ^8#;2"V!V.,$73B.)X45#[.F'EM=4LT]/;*V ;LD(/ MQ,FZ>@=V@XIH>(XB'T9 4HC!)_*LJ/'.:OE145R#H3$3=4+"7=,2][4E&$=H M$.F%9;0"YW#9V5$=O8++@7*QZKV\ TDCU4LI*'9"8=AY/0^?@0%//TUCI4M%';3^^/Z/MCBK/,9N+YV,#%T4+/F!L5)([A;#7)1 M)X]3=LN?%?!B-(V^U#:8^S>G','/.#G@XS+<=@X)XBTE]T37H^\#\@?.Z;\+ M5^_U-85NL%U/5>_6$;F!/G =4UGRR8>9! .>:*A8E).&6[\UKSO')J;YKF3@ MPI/I+(ZI VRHHI<44+;IGH6K*LZLUA.V/X_0ONG2"MW@>O48X:K@Y,QK_[->RIUA>_HX&S2=7:TG7'\?*?_D^8P5 MFR^.D71E#IQXNB7=K]9K'-*@/$$)SE&<4/W]NKM3G4]?9=EA5]ZHVF.VNK^, MG^,()]$=M:,L6++ %S:\6+.\ELLWJDSA@IH]U2=C0D$41055]!+C;83>_$^_ M[G;W&>S7=$O)L!."ML'AA/,KA(=NZQL'B#;;5P81$N5G@\1S1?Y+7B0\'U%X-!G>6/0T,7TE0!#K^J3DP>4Z')-J2+"BL6X1(3' M83L]C@'0!TQVVFL0JS#T .,VEI+'>)!;L"]WJS.LZ, \78VVL9KZO0O."#9 MUZXKD$_!R=.7^8Y*>96U3VY)'&J/"T9S]P 9['T%0\_-]K$&CAD6#>"Z.I2B MO.?P8*W1[U$5<2PK_U5/@7/ZDI)_Y_6:+4@#RYZZA1U/#QKW#N^"F*EUD28Y M"<+\$&Q9:/*-[EAHEB0>S+-NOH[.)T(FB %\_G5D#&W05+%"#5[HAL?X7;&] MI?--K]&TOBV;K)3.[>/G 62;M+2AQ=!KJ8P[K/)4)%@]/1'\Q'*C_153O5R: M.+(5#'#,YI2(UY)7TBJ!YP"J_VN,@E1][#T&60-&F/U*Q>A)FX13/^QZ,"[<>EO&81 @ZODVW3 M0LG15 "#W71=YA5,YLZM4#!9M!M1LU\KIOU-6##AX5I_N&G?D!4E;UY!&T+V MDS\\A7O-WT!ENJ_+V&-)U6V JQA3/[*6$%\K@UT#R%#W3WRK$D$!P^RQL M>2;@[."JS6RA7CN0V[Z8,T^BUPSZ1L/-/O@ZIS#_E7\%+RZ;C/X(LF/?VB][ MFQ#0@PD(BJFZ)R,0T@&?F R H\DNJ"1MBXH+'U_.[+:_D:9[(BJ@[ 6[E. M,T<>#Z8AEU_*[A)((@SP2<:I24R@6%!=7XFKZRO/IJ[Z %C;0+:Q%Q-"L1H, M'K?8Z$9%%Y_S!G"I974"\PF3\P5S>^#:2KZ!GH,- '7NKP8@ M;:?T%5F_"C"U<89:@,_HB6J/FH8ZMXRBT3CC8H@ LU-K#XBZ?E[QNP@]Y<"OD )5CY;[/5 M(=^D)/XWCCXE$2:-\BE>,$W?5[PC3]> M<"RJ-B_XQH$7:%-&:&#*"[X=\()OO?&";_N\X%M_O.!85&U>\*T#+]"FC-# ME!=\-^ %WWGC!=_U><%W_GC!L:C3O6 ;%,>L\PU&:RINOCD^P<+]PX%W:%.2 M>\=W<[P#5AK@)OV,B?A7O(MS&^NX4Y8P7=VFO8UE"([XO9)4@4SK>6Z?KH\> M7LP6B'-"G NTXWFZC/EIO[<-$:8$'%R M>&.B,1O[H<56:-^AZ>I9VG.//+E3$0/( B.L;HA"XA\P"$.FI7F/F"* MNI^M7G0>IP"&D+JF&W&7[^/Z])O8F.QZN7N :_:^@K$H2\X:.!I9-,#D$UR< M- N^N!CU"U8R@'%]]=4:P@\^QNYT_NF3S@-4 F$GQX'6\//G,%$-D(&TA5?R M]^$E2 CL]M#$3] X=*L0YEI9;(X7Z17!W<3O90SC1LKS2H!MJE6,+Q9;9^S/ M>[%X^@UL!NJ=W#W *7M?P?AB\90UO=YP')S]A^U2:.U[/5T4KC%TH@OPQR_',0D\%BUK8$>"5S MFO*W,#+-#7)_!3.?N@W 3(:#(OL_/YK_*B6'9942X4R6C MB;!#GPQ,?7&9) M.N2<9E6?K.[U7/RKO66CA-5YSZ]]]M7_W-!K62WV:NMZ=NP23BLF_TT8..&U MKHS.@D;L7#S9X'G*[5>G*QAU[J\!7IVL7119GSL(FX_4!)\%TA6Q>5E#\4R, M[06T5ZN0XN>?4[+&L?7=E4'NYPWM([^"D;14/^OSA?:Q!G =ZB5K[ R;>0YR'&L/,,J2_;6\?C:"+W#.5G8+='O_"?C1IS^_Q-G&$XWX2?'F M][A+?.YD?*T1QHPO:B?4F"#@:XPYYIA)&U!VUF0H@-+Q([E_&MV/S:M!FZ_* M]RW;KV@V/H7N'0 ](GDPP3C^7EJVL#3( WSZ<&V5J]L MZOG:@Z_"LNODEG]5ZW/]"7L/ -WB=["S&&CS!@[4-BTP?X.$XD4F,AU CCY9 M,!^\79'Q\OT)0Z.^I N<^G.31*.)IB)=$]\:!ZE:.5Z*?,<" #3I=U]B^HI1*O<@;^UZ,86&IXT98\Y?BZ+LP9%;/#$ M]W\C%AFL663PS",#NF9JP4MT("P)SRB(Q)/=EQ_],KD,I!>5]9Q 5>("$R:LB,N- 4_8.D+K);%/F@0"5$=WGUTH ]"ZR!S)&.:<8M_V\Y-+8[B>:U)ID@VFHL##!J.DVE47N0W<>&0CK0$[ MXV7.WZ2$-_L:I5P:M&>OA* W:_I[_"78[;=X@?:T?9[NBBY%#]YRR^A4;M!8GGQ/61L(8N]C=8= MV6N? M%2SN26@5Z\]Y98R1YDP\)UL7[?V*YCP4, TR1"<)S-4H5AQB\L%?PNV!WY(W M/"<1_(P3)AQ!>Y*N6=MP$]-?\F6/H,(E%5,58@)\WL3AAN^S8"I(^D*A.5H,Y:G862BTI(NB>NU$:>7T.V1K2B'(,LSV?U)$)^:" M+K7G)D6;($-)FJ,7.E^RH9&M8THWP^0Y#H7@C7DU)#%=\<0!2G"(LRP@+XSD M4T!GC#S.J=GI3U31$&-J>X8?7(\LV/+OP_XMM.66BS#9OK"/(":;TIS9&4[8 MUE9G8D9GEV/L;S0!FOEE]Y.@#( >^?Z, D9]2:>Q@$RX/R."\:::_=9LB7.D MNC 8-E[.IM/6CD^OXIH]VJ>$2\SCAHZYLU[&IL4[76FCN []'PH/A(CIN+7^ M)8PM%26/.1139]] MS?5MV-QY*]; C>GI+^B*+WWI:JM8?-(Y@Z]ABUGN7*8,"Y^B-46&"C(KF>;5_&JTIK+L0VLO]T7QM#UCJ.ZS+",P0:CD7BXB=>=2_41 M?;W ;C4+= !Y?T=O4%U1#:T;K-W)U"WE=S0/N,)^PT912_TAQJL$!,T)P%K5 MW@I!0VV]\'!Y[9W>AMYXL.;J-AU!&=_DS=BN@XM+FL8T/9Z'JT(7 [&8%K^K MUH#W.,^W[,CU19!M^O67]O'"#_LU[O#'[@[>^.6 ^/H73<4F),N^9H(E<]F0 M,G7EL(9,<.RXOTH5-[RN&KY.Z)U!M(!;]?J:6ES1U=P+2)/JV8%F)VV] 3*Y MY-.+1VS+@X9- %M7SX@Z#S7TZWSLHXT7"F%A%"35=:!1]0J&0@[ZM*T/."31 M\!2$CAKZ@D RL?6$4$E)'4#F0;>FE-Y2$+3K:C/RBNHTO'+-J7E&10+>N3*\ MO"-('#!LIB8^N,]*9G0 \?WS9?VO),WQ\NU/RS@)TQU>YL$7G)4_;-,L6SYB M&C;B]M^I6 E5Y/&%_;S\YX'$612'?.]]&>$\B+?'3RRYX \8OUQ\B0K[;#*' M=\C$G0FF@TB.T=N?T!)=<];H@;&N?WQS0Z7[&KWCXK7;7''Q6 4/^C/Z/TWQ MT)M+(9]&@!&\*:O+. NIS0Z$_B YD]S3%K#C#FE8.9FL(?! 8E#LR8/X/U96 MIWICBM3^A6K2Z'=._/^Y.#-::;HZY)N4Q/G+ZDLL>^)0VABFSZGIV#P]V=T2 MWC2D**^&45H11K\STD#&Z&7*@E]EHU3-?1NG;3W[1ZIHZ]-8/9)8[V@5Q&>/ MUPR'?WE*G^GG.]!5UHL8KL4/]4@M?O&/B]61\JT_P!Q]I[*S<5;_%MZ(ZI!M MZMBY")(@"JR6B3,MO>$ASB7LTF>4Z&Z&>"U['KN+N MV5(U:D45_2[H'D=&9J' M'K5!S.:CKJ)$WR=XUUG?GJ@/6"L M4-&T+S55-0:.'4JB>YRBTJ>,)$W%&"#.P0%Z6%)8)X2,W2A@NP#L+FB2X27! M8?J,:01._\;*SO!M F.;99,Y X8UN]:?O$$VC2V\)8L+Y4UMBC'@NQ)BH3=W MA5Q?L[]RP=B6F/'M,&53L@(@:<*BUV6ZIB9:8VZ\AH5%*[QO3<*IW%R11 SEX[>2Z%&2$HT/(2S^"<->/>TP"5C>: MG>NY" AY6:>$GY94-74O!<^<;M@:O7XE[^Z1ZR@H,<,[#KN#N"Z48%92KF"% MV)DWG4OI$ZTN4K)/*3/\/D[BW6''9]VN2$*Y)\RA/4'[*HA4ZP8\:S=2B<=2R$@S8Z5;&VCP!,?)ENB]Z94]K;HXES6(>I/G!9 0 % MG/PSJ][-(80N!(.0[V6Q.92VC3G.[ M!> -<2@'"8^@_+NC/<=X*+%AL3L?> M<<6,Z50\\QTUJPPMZ7I(>.1%BHI,W[L7A+AO1/@9;U/N';RH9D+9'MA#,[Q0 M/O6PD$L"8[+YA= 86=6*96//'*&E8^]XYRT]&M9M>:>.WG[R1C99TSS8=FVR M&M;T@?&M(V:1GZT#9]=XNZ4S_C5=ER1/+'H7ICC^>=B$D^EZ MX^CS+"?!A&E$O8"/F:II1)IIDEBN?P+'@B.#]KCB#P[A9BQS%:GXB%Y3%[PJ M)'Q#)G-+WXE\0:'.GXD!1:#AAW-'F;;LX2. M+0=!@O>W#=@: MM!@0X#U . MKT?KAXX-@/JY8KHV(O%SD,?/3C>2JV.VZFC&#ZJ9#"/*R_,96ZGV.O>_/^!_W]8?KN9$O( M=\1[.ONV+ZZBBMO=<=<;VB8M5)WO;!SLI/Q045BIXH@JEO:OT%@U"%.^ QZ! M[/0/HN:XGC#Q.D9?>4#3;N];#".1?E[8LD#!FDZ,"F'+0G*J[TT9T[]\W7?"KWFN MCV7DPN:)AP7Z'.>;])"CYITVNH9(<)Y;?TK1M.6[PJ'F'1?&Q.KVMA6MI3'/ M0AR/[AQU#JX,[DGZ'&=4BOK2)1VF[38,E);Y!B_+UVD;O8*<_X5Q.5#A7I;L M/*>>"X7&10,,_G",U)YD@,@%+]@$:1WM%QEO2PF:=Z&IY.UV_" [E0^5[V8W M^@4Y_\M]*3FZ8Y(;N.B8D;RQ'*0_U4M!^L,_[LL/=!_B)"!QVE'LM*\=3.P8 MU(PYLK01/*\:%G7J$"^)Z2YF.C3L"K:?DHRZ1KR.<=19P72H+>#A-Z1A-01E M#8$.PT%QYP_%Z95*)6'@*OKG( MML#7R"J2:RA\%]!9NN*$=D&$^11/"H;LT3LXGP9ONGG !CHC%NU\7$ ' [C@9T;-N3"H52HG@ C+KM?U MR:RBTB #20J5J8AH@\?T&8.#QP]I4F\L%09;[5*2Q__N6BG,I^8EY*E:20'< MADAY!V/*"AD"K"'^D*#)N*UN,=D%K!9@:X\X3L+M@:^N@P8S,)?'),:B2W < M/R4ME"[OK>1Q,-+T"M2\A"95*RE TQ I[Z!)62%#T#3$'Q(T&;>56+[R@R\- M:"IOGU4K27:>92UDX;$4M(#I8D/5ITOPJR1@FX^3UHM2&EXB4+]%%'"GFX!W M:#.@AB&,Z>8*"5D,V:7&$U[D+>1<,K;:*FJFHA<<$)3'.Q;X-# '$)C@4BO$H8@I(LG) Q8I-Z.RY#!&]%-=D\ M17N"G^/TD*$]IFPCC5?K5/+W]$\$4_DNL?C_=5+6G*;QV2?J6"0/XH1VO4VS MF#\)T;6-:8P33%BQ8-UJ?]\,&^!' PPK/?.R((T ^(F!TY(6!.]3DK=OS9:Y MV3>/(BW\M:AI49XE[&W)WH XY.)=EF"_W[YPS."G%78XR^,0K46*N;$?UB#( MES(%QK"?BS^]836LORX+]++*&P=&MZAQ30VU.+D+$!?&1F^BPMQ?LX,306%Q M?L#@4-J<\]Z75D=V3U0 '3H&9;-_W1*HC:^G#U) (7JY>IE^LU,+89@SKW[; MC4@7>'UM5*-NAA,+MB^=:LHV^',CU>;6[OTF(/@=VY9FKT;1WPB;I9FL))\N MVE[BUS0+3MP$EA/V#L4FJF=Q@U@N#20LLVS'^SP-_R@.K80-XH PC1=(:Z1N MQMFSH[>7N"2S@@+R''?U#END"AA"CV-^D/!!NRTXP47CO$BY$XN_B/T5MV]6 MLT3)LE7L@%U?C46:9!EINQL^F25,-+%I[UG/4X_@!P^WK&JM_>YU_2-BS_>A MUB,J[*IU(0^Z-'2C>DILL#KDFY3$^R6:#NB*^0(R\[HO9LT=OYSUMQ2X^CN#36]LJ[7T;Q9KN-X^FWNF>/ M9'YF+[C#SS@YX-433L*7SMO?*NUAC^%!39L#6-H8[N@=%GGRA4%.&16DG2R> M3"OG9A*A:B?!MM#J'I/G.,37=_>]#CC<"[8;*FK=GDUZN\!U257!IX[=3TG, M3C+P^C=FZB4K9#4LJJCQ'-<.!Z?3O;SNR4![F"ZGK&E],JJG,?3S32JB:ZA] MTC@+%)1<^#&(J_=7*\OG-DE9W5AE$]^Q#4SL,CQ0ET%>>3M87M?;T:MIX3Z6H(U__ZQ9U<%[^\D0#( M PUKZMP'V>EY?FFL9RORN ULG^O4J.EKK09P?:Q;S*DCCKF4(.=P&[%2J7?G M\+25)P-.OC]XU,2#0:=I%[ Y[+37_MK_*-Z/&="2__7L7+O_?+R[\?]/+O M/?/R8WDU>_GWKKQ MZ5Y>9?F;7OZ#*R_7I1HQS%::?'R'U6\_$>_O/S'02__T3,O/Y97 M\Q;?7M11**H8D6XH^-$5%.A2GJV!?RN5<9/--*19!\AI 8>?5,#A)[_ X:=! M.V"O52HL$:4O ,-&O77V> MJ+,9<, 8$%K#PD&\8.YP^6!(Q8<-)I@KY^#LCV65K.P_?13EZ9(G=EVT=5M4 MLAW2VP$FGJCKVMR@DK>&NU>E(//DF@(E:<0N.J/616;956>CU]4 MKUX(UU-EP8)P,&$%G)G:D1$8R>#!)5#[:*\&T2XS4U;8?6"2HZM23H[U1R5!44Y^^825J>-3PB;SIR3^-Z\H6SPIFI4EKK,[ MG!VV;$WQ,\78"R&G.*OW('^K03MQV!..7ALVYR(]E.%.4YKUF^JMOQ"VIBW? M'F!Q8OG2DL!50(YY)\JF4JU;MKD)]AG^N%[M]]LX9(\IB+> Z:]NXETL\JXC MO70F)R]=5H=U%?QW#AOOG%F+LG-KH!J036L,\S=AW@0_L;5F7Q0#T0RA*+I:QE&5+^RT91W5)@UI5M=+4* M!\H.$LX 8<'Z'6:O*_#TYBVFG_!DUVFH+6"X&]*PPBA90^# ,BBVAA,DY?NC M]/]4!_8H3Y"A@.7:&*> #GVZ<"PJ>#UR21#?=[:+&:8M(2@7.],%;?M'^(QI M>=OS->OJ;&X>K>]^5_2B>J+V8_5"K22*'D4 )II-MT5S):3>&^Z2:((.DZML MEJR:DS3C=G0P9>$$$!P8I(T2Y:[+Z5O5^D*48A=IK.>/[0O3Z2=9H II5#L" M#W%&JV%ZW&2];,6C Z@=":&:JYV8^HP TO-[O7 M49SE)'X\T/7F54#8.,T^KHNJDO>'QRR.XH#$6+XI/8( 3+"=;HOV%K)J;[@1 MU@0=ICI%BQ4J>3$'*2N:-MDY":]\L8;+8RX/FR#_>WK81M>[?1#F541:X.FX MO?%A8M !9(Z-%,ZC#%""#"RS])GN5C5;'G^4C%%..2/.&@G>J%[RE8&*(]!Q M;RD6DSRV+/696RH6EL*5I5A#.Y9/$/R M.8%5J+9NR%7LN+(MP(,4C>,,D4H\M"_D6Z" 2\@"QD,E8]G+R4$ENI F=+)@ ME_$N#EE.E[JDNFLA._(RT BC?/S*KYKKI@UJVI>VPJ#FC<5?@[Q4Y=1#Q& M+ZE-E.'LA(*G^";78_KA*TZJO.6^)_@Y3@\9G=RK[07B\NEB3ZPQ9Z.Q3\7R MAAN[HR$.<07;C^M"\,=^7+,3E!Q,_;^)PP[8JLS@J=L$0 M&PIUJTV0T=4%9N\ZACA^QIP<79M$![H6X4VC0D4F4N&REKQJ"SU9UQ'K:X=\\1_K%@02>*BD>V0 EVD^$[+YN9CF<;ABAVF*^^ MB/SCY+FDER1,'--IKW'AK9S>.<2X"MII#'3?1 6[KQW'O+OTF1?CX]=XUL7! M#5QH#C#Z-?B9Q 8U^TR]1@$:%H,SC/MX>; RH7IOF'/!1"LH1ZD^5",.1TT7=.$4YXC5,0>U,:O-)J#W9;5IJ6-;=L1JM%IZ,_G% ME59^<9[&W!_7J_N+'_[Z@VKHID8*)G3IL$_OJE.!CH>KS3%::7C%BI5CJ$]7 MA25&!HQ[=>N=M2ED8*VH%(B*X7[)9\-6Z'KW)@[9?=;L=*FI@1Q,+-%E MI]YX3I&6AS'=6,V,[1ZP2.XHQHL.A%_>IW\1H87P-I;80=M"-M0XKQ]DY:&' MTZY\JX^Q%Q%E5NU/D.(UU&//=A]"VOHT]4XI+S)%>'5D9JH(;^-GS UDQ>0P M]B1>N]DM35<3-[_5R9W)=#5ETUN1UAE-5W8WNYD7J4Q702XJ"S W*SMAM6U( MN-./;E//%0#VK/&*=K&K2PD[477I%A/^##W%PH_5T9"K+WM163;>L5H_ZWOZ MVVP=\(<9'GJ2']J(PYP6S-BPF2;10QEN[D2S?M/SUUP,ECHI!$$-25 MR@*5 MPB A#?/IICSH=RZ1D]<.9AN3)X$O@[SOU1#M3,[GQ%_8R]_51']YZ.?F=2 M(2X67!^?\T7.PS,G.YWG_F33542NQ_-14(UN3/ M 'U&V%'KBJ&@[3E>C=%P;C5'70+!Q3@;UE0"/[;I]N9]FN2;KYV<] SV<1YL MV19]N4=TD69]%W_Z.L &J6%=6XZ&B-Y_._>JC-*/;WTX"[M%5RYVR#7WXK#=Q2:N> /#SW15=-%LP3%BA!VCH(?L*A>!"^*44NZ M5#>990L8>]QA X_EK] $+TNLX0*@;0-,OJ]5UFMJ"+I -5_48HR:PB[*YZ'9 M:]#5.3Y95\,5K@<1V900YOPH M)C42>9*^GR9I"ALZ^_1KIWE.V\$%I5YIIR<,&D01'9Y[2LC->V86].M2SHK' M'9]YI9@4AOSBP>"%5L6NL#URC/Y-#U7I!]=C1TD_]X8,>G/9O"E63E4MDU^SCGTW!P MO?/V' _7;@&A*EC_OB5X'\319?$*Q)5X,7F51%QN?NU%W><5B?F& V-LU(\- M*I1\PHM1^FC&D((W*ICRY:EPME57F0:=D/(PM")P9*G2),6[YQFW2'QOT(T>C@$Q!TB:W9WQLLP$0+>M46M([SE(Z7^;?! MRZ0U?MW/-Y^5:*ZVNB\Z^>2[,M%-K>L+/B92=<^8/*9CIV;=^E>*[CL5=>?/ MY$#QK=@R&#,%=W;UT*LE^@\Z]E$_SWQ;)KU^]V:<4(.5DV2\%1N4RFZERCJ+ ML,-TAQ^"+Z,B[&8?W_RZ0^.A"+OJX),G=XFM/<)F+!#G 69VUJPW4S!GQ&;, MSI+R6!W)Q#W?14^>;MC/\JEW0G>8;CK5#E6YJQ%]@9>WFJ+)Y#VD5BEMV?M- M)7NTY7]MS%UVJU'9M(QL_Z&R!>=H.FCI 3[K%OG8'@9 XI8R+]K] /28?C"! M<;3F_3',42>?XAB9Z%/'\R6$U]R=JVG%;>_##8X.6_QQ?8^?V.1WA_?LP'?R M=)WP*UML+GSW4ORQK]S;-$JP77N&=9K./H$,7/>?H\Q43REY\IHL@C"JV*(& MWP5Z?*E:Z*[&EI&\X5+TI]J=Z __N*>!(S_J^PM.GTBPW\1AL.THIC;4%J9+ M*&G(!GUO0WC#6DW;"AX2B\H"G!9/>(B626:36 .03ENC3G_OJO\ 9;CXR3BQT? M2+K'"_0^CJ(M7EX%6P*T\FFZ-]:P2KT M@^>2DZ2?O$;M6Y?V%0^U,PO:M &.FKK;FA9O21H=POPCNH1B@PO<[&GHI>/+16K\'VF.1%0=(\13%;\2 Z0O%3 M2LHG.IO"E7-V5E]#M'NHRH*E6OIF37V=73'\0'WF0 C]>KTWE3N:P73T(;V: M<\EQ&[C3B512+5M3VS1Y6K(G=:/N]]GMI$S=#&D7?:4);4RF;=RMI95AT> M,_RO V5_Q2X4/U!6/:\TREO#=M !+5N+KNZF<%US2.#)"[&*+N*$$:/L\"'" M#CT[\Z J[;T;K:?YT,'&7HU837E1R9AUF!D]TK4_?25IZ]5H[4EG=37T9I3J M2F\=C5 CZ_[A+5LKNNG+X?T:Y\$E_G*?;@\LWY+=W%S(4W=]C6&ZDIJ.5:). MVA)X?FY8[NEIN2TKQ\.2;P435'%9(,K';GK-G*+=VNESM+_'210_I3?I4YSE M<9C)O4S:$K"+]6M7^5=W,^#.-2#T[(0WRC<8[3C1GM3W9R$%VI9BV'4\0T8H MR***+OI=4+9[X,JDBK^0])!$%]OT$#5T^M__4?._H?_ZS_]1_J;H^)__'U!+ M P04 " "]BF%6\,+#"#-^ "6G D %0 &1S9W@M,C R,S Q,S%?<')E M+GAM;.R]:7/K.)8V^'TBYC]P2T)VSG/@_W@G/_\7Q]+SWH'800# M_^\_G?Q\_),%?"=PH3__^T])=&1'#H0__:__]__\/_[S_SHZ^I^+ISO+#9QD M"?S83L[^=G%J/WS<)OZ/V MS6!C2@_Z?_P-_^<-56DA0?WH;Q\1_/M/BSA>_>V77W[\^/'SC[.?@W"."C@^ M^>5_OM\].PNPM(^@'\6V[X"?+)3^;Q'Y\BYP[)AHJ9#]XRWT\@+.?MG414V! M/QWER8[P5TD/2[O\7K%?C[3Q%NTCW'B*:X)9>!'P4>=#%K+VP/:_EY 4 <<!:67J).MEL%R%8 '\"+Z#6S05+($\ MH6L+UUQZF8P7K$HGS3PO4.,6@>>BM<+UGPD:?N6IHJYLG62_M*/%C1?\D(G^ MML@!);V"D>,%41*"*]3F$*[P /0PNT@BZ(.(7[S& (.@._VF\<_27*4I$2N!S3QA-M6M(&I6H0226[]=\2/(.2?H6KS*FG[ M8QB@A6&\QIL#/7T"XO )O;?I&.;L:"= TU@J# M/*.25J,=RQ+&9.Y%R]H8^G/@.X@&:)#YEMBA[<>@E5"V>T<2:+\T?/;K4\9I:F M:*;$AP O]D>K7E3*K6A\\./0=N+L7 _3A1S0HK\?WCPX3X^[4*_.$UX&4:OU M0-N*U*VK+U&WF;=?4V^RJ^EWR0JEQ^.S[>7G%JT.\OE+5",GF.,F ;>C<+7% M*$+N+0)_)J@UU^_M-A*5$G0YV7D,/.BT6\@R2]-%OI>VFW!&6( M/B=:K<5BEJ;3Z59K"1O*T^*DJ[5PM(*T.3EJ+1FK,"U.D5I+1BM(Z8E2:VEV M"]#D=*G#.$\K2N$Y36MIRMF5GU^TEJ.N$"W.,EI+1"M(MW.-]I UEZGZC*/# M$%XI8T3G':W%[E:=\K./;JNLG4)T/ =IWU?YRM7F3*2]H(S"=-EW7X'8A@)V M7GR%*=]YMQ>KMA3E\B M>W )?3M.&KI6/E;ME>T3E>J2TA3EFLW;M[O-?(W +/'NX#N0I#>1BI1KY3$,;O" M_P2BQ"M;/\MB47,%^IP7MI>979Q.$H;P'>D?6S9'<4C>;433>)-6N@8XJ]-' M0VA!ZZ,%[:T_!$,X*]/IQ+F]!IH*U$E*\G7A!%FZU-0*=-("&KW?891.]9=H M3H/Q78 G>^G::*Q(B_N(]F)32])"KJGKDMG:]@K[/WG"LHO7YDZFO<#,TK2X ME6DO&[4D+>22S%RQXI7>3+47LE*")G=3738=7 M* .^B%2C4PG<[3D+23W8;*:4[MJE$7[OY]GH0 M*U[Y+71[06M+42X/5G_@DV^BAR3&SC:P]Q0Y8C85KL4M?'M1J25I(1<>9)/T M(N=AAF]W'-2EKJ"7Q,#M3P>M:M7-;D'R@KEU3;KIY25 G?HZBN$R=0A0E[#S M$D%R_;KI$.V9DB7Q.( O.]Q;_\*SG3^>G06J-OH>N,"["<)KVUE\PW-?/Z1K MUP3=-/F<+)=VN,8+)_S=U(GA.XS7O:BLJ2[==),VLSCIHF$X^_+Z X0.C+H= M4TNL6S?=;;"^#_QW$.&1IML3]:HYP0.Q%_]!N/%*UHQA4@ 'Q6QH8 <#?;1'M4ZEGYMREGRB%Z#;"RS M\C'[";P#/P&%=%VOUH=JV(BTGK5Y.&UN*QR?EH96D@9OE4K7JX7O.QHK\9:N MX^NF_*O-N+"Y;"7#@*P5;2^MT.;EU.:[;#"]6'\#P3RT5PO\C"&/,(#VSDD4 MHZDN[*!'F;5KK+_LCQ=41=_*JJM*&\U@*Q[\Z,--)^5Z:.5J2*Q*;30E^VI2 MN H=/$%U&:#K"Q*6BC0\%ZVN&<7\D[09/IB3W9#]!KR?&O515Y87AJ6B< R6 M"8[!FOH P OVWMUB-A$;CO>< C2Y4TZG1L9RVQM5VQN7FK0IO M>^]0N5GI.']C#^*+8E.0 'S$P'>!N_D6QKB:8]3&8^O(R@LJ_HD*M=)2K7;. MYXB8&(? *;6%O,4,PJHZ(U0>*2L"SL_SX/T7%T #%4?[-%H[LB]^W 4P\.\(A6O"-7TW':$Q?EO)T,CG_ MK&\W:2=-AMEI!3,D77IV=I2$^H#;3M8*O"SBDB MM8^. N_4HAB+^!TLWT!(@WLWG79H_/\'Y(HY>@MQ1 M1M$ZO!9,SESCA[:+H-H,W[P+I:GKAJDSE/0/?")%6;.R,VB#.^\2MH4X&;IG M(T"W( YU+5Q)HPV&+?$I \PGGC83<#.FN>27 M:D20U@Q6=TC*6[3TK!N"6P"H( M6<@7DY7U<(;T<#)ZP!OED[L^'A[G1X"J=*]]%YN7,H NI3,1Z68!1S07IQN) M&^B!^X2R8MY-8A*F7+)E<'X:6\]-AR/QT MY=@4W,\$<#_;!]SKA<]+@*??H2^F\0D8+EDR\$=W9G:,W"PU^OUR>G;"WX65 /N M;A*3P.62+0=W= =I.'@-].?/Z^5;X-4@6_K=)%B;!:6+S<_&=VQ6&IP45 /CDM89\A;E\XDJ/D%S+$>W5'8 M-'%A#-Q4TAOHV[X#;6]C5U5G#=J4Q2@&M)$U)\-(3\D*;XLJ41NH>VA6)I,( MT5+:G!)C>,.1B8@=E&)K2VQVAU>7,\=\/,9JMWX,L"LS M^ ZN[-C.9&68N]0E+^OBL]KG[9+L7+CES#&7='8V .;72Q#.$9&_A<&/>('] MNMD^_62\-K5YB/.+F0,^!M,VLI@)0LJ^K?"K28 VB94#.+KSLTRP&Q@N;UTZ MGNGO!B+*$"S'='3'9IEHN>-MTD%!,9"&N3=#FJD@ZR,N?NO^QZ=^_L\WWKCS;PH\"# M+O9ZG\5$0D*"K85(@\?WDV/L\7U3'/K[\N'^^>'N]FKZ7U];S M/ZZO7YY_&L+=>R>?T@^SC37(8Q"14!G3MX@$@MJA/%^6@5WH9M$TZUM&[DU8;F 5@HV'-(UH/D,NZ56CE&]N. M%C@H'?KG^L\$OML>-E.;QB2@*?3GO]I>LGLJ+9174W[P0%VE27N)#1@I' >_ M_\-16P&2_,T#]Z!QQ&#E*>L)+8[PXF:LS!"75)*W05T&DEH%U%N$\631CQS" M '.2A"7P^$<-$NQS*V_42 IZ!B,I(2AN#X/&P(1X#,'*ABZ.*N]'.+0RT4!I MZ*4P@R.GD11I*[T5H' M*Y,V/+#RF$$+<1$EK07T&2ZNLF9CU\%+\&)_9*,FE1;T#&9P0E ^24L&?0AQ MBS#RYQ"ML#:"7W\X7H)?TGX+ O<']';]AXAD-8,DK265Y'==EWFE@1#UJCB; M3$X5/9?H!#I3&DF.U/49!U(5,3>+9L#*D$62U_3B?E EI'?0?H,>C"&(T!J8 M.$M8!!X2,<+KX7C=<-?$FUT;6K2U2^@D:"\;2G5$X3-0=_T5CUA,VARJ<@T0UO7E\$!-U_)>1 M^0';$W@'?M*P8JA/7-8,=N.J*(JN-!((R"GKDE*3(R3N=4/3+&H"#3AEE'6* MJ.Z>^B[PYR\@7%Z!M[CQHKH^L<[H2]E9\DMMF*4K9874;-#0E,]TRK13@&%W MW3M3:2-KJ.E-9XN8X#TL/!6?6^VLNAN)PLIB.E>$93=LE5JQ"BCH5\!6HIS+ M=-*T$5_2TE:? _*"S,T;F[)*L-MJQ=81_=V6U(HJZ19=EPM7[)4>QB0N 7[4 M&/AX;09\A\X%1@[3N2$JNJS+>4UF&.'K>%Z%F\<40D% /Y(T$!X[^M M?0*Q#7W@7MNACQ9A44$K:$\''4A;DS1G-(\R+67NY26)\C4K]UJUK)//Z@)1 M2>,!IXSC?V/:M)IO:3ZL'2/Z._O@ES]?OG8-N=!P(J+$3^$C06 !8NC8'K_7 MPD_\7@NM?RO7\>\_'=P8#K8Y3>,P3I-X@=CV%W!??0\N<>S.Y@TK-:LV8T3; MIP6MA1S_/K8B.O&=S,V&-+5Y!&#(-?Y=J4#D6IXLYJ'?)%QO>\FA9OQM9.:' M66:>@G[EG.Q/V2Z*GU_0/]^O[]%$_W!C/3Q>/TU?;E$";6?Y] !A(P]E8J>F M&OP4@-B%W"#&X]L8W(;?8+RX3*(8M2]$S4P?/.,'E.A_+OU8J45)Y=[P93(Y M/U;3U1LP*Y\$R!&SET=B@X_\$1H<\9-ILML!X3MT0/0<>/0)GY9AC%00E&;\ M,_VW,(BBQS"84<\&"RG&B&A3\V7-U.K.=3!G,5LS/XA-SNAIR<<(KI LXW^" M\PP\#\]#OOO=#O\ V- BDYQV?DO-H W:K:"L.<45DW3\V_(GA!#2+O:Z?H76 M+UY _**QZ<#,8QHCQ(4U8#8'/MJJ>4CDJ;N$/L0*B^$[8-.B(9=IQ&@C[OCO MAK-K\2C>*F[S[(3V+H>1Q312",MJVKN*91#&\"^"V,-LUT\:S>R$F:FLM@D2 M65&$9DD4:2%M#Z\I5+WIRY5&&RMVTYF&/I^ XW_ANY%S:S75!/DVI;&@-XC8 MP_N'X=V' @1/PP9B)Y5IE M>:#SB2CI.8+7!G$WFG]@&,^.3\Y.TB"QZ)M"T_/@)ZD(.V RTYH"I[B0TFRT M-%G";^>H_"8+^@F:N[;7MQ=@%H2@\!CX^@.I%ND!^G:X)H%Y\?-@? <6D..T M?$"DC@Z]U6@*+56I*B=WYQ-.39YD;O22Z?\"^& &XSI%-MQ_M"A)&S(*7(W( M$G/\6]C,(Q-%(;1;,F8F;0@A&^V:*S9Q19A@!U'Q@<#%FH9<>T2;-IHPP06W M&%_XM#.9G"D^7.^/)R(:&+^I!MI;-AZKE=+L$1.:Y99UY:(.__RMX2,(B1UQ MPU*5EEP;5@BL1X5DZ2'+18(T'GI]*"%-?#YZ)O!Z\?/C^^'3]C^O[Y]M?KZW;>_3Y^B== MWQ$6GI^F&B$.$RMZ:G8'EKCPG5[L].\1;VM8GK5PP&7V4I8S MMTFDZ"+R^+= +.EO@A!-F7YZN>2L7T+;CY F,*J^2SYY*<;NOY+4H*/! UX_ ME6E#1AF,$N.G9*69/?IU(.>!:FP5R!H'5;[/K4C=P!=&#L-I(BIY;U>"FFR9 M6OE:.V/[6FO>0(W2_YJ!.RK1^7EW1I:W7*HI69N1J.>%>A=U]+;J43$\D6.L M6H^A#>/1NKB[NGYZ_G^LZ_]^O7WYYQB&'^XX$)QY!G<)G+7J M!4<^IXP:Y41EQI],)F?J!X!F%,JN?QOED=2#6[WZD =JJ@H\P 4^[LS3#T@[ MH6/FT09R 009L'.+.&H6%)P7?@?X8H*^ZRBGTQ=M;N!J=Q@<4H[_N((248/) M &8>(]D@+O'XSV4Y8F6P6<*;WTS&=))^_'YD=L-F,*E2G]A(7@B(.GY'=#MZ MN@J62'::>6-=6B,IP"^II$=UBG<5=XCOY%UJTU9BDU!?V%OM']ARF?"<25:D M(*VP9L-6AS>7;)+V#"L0P@ ?O(6QJIU#?JP9O024!3(Y"\0';N2D%2U^")!/ M &DG@C'('"<_$E&>@!/,?5(**_!EW]66,3L=,1^5:&K\^Q[2C=.P'5=)B-9H MJ?1$9/+; Y$INOX H0,CZGL-X7+,89X_">*Q9GC$W@(1I'$,]224R?_V'=W#W\IF^,I<(E[D85S3?H-4F''Y5Q M(Q[#X!TBG"[6KQ'V>K+Q'#IU8OB>1@]EV\>+%Z1-I^?!;F =1N!Q(. M4(A93*(=H0;#O4JY1KT88*;2<]R)LS.D*<5>]A0RJ(6F##CHS?P+E<^^:7OI MVL0'#K72D*237:4+,G+XB#TM(V6RHR'4I#SP1EP]AD52ZM]S[)[SJHVJE'NQ MID1PR&5!4ERB879>B:]$277@@YAJQN]0$NDQ!&@2O@+IOP7-95?^E)&E.>.! M3)VUU=7]G Y1@?A/3CJ?8!\8)TUK7>-1J?>/0%% &LNGI( 6T3[D%*X-7R7= MM,@0?_SG!(_V.C>B<_Y,8 B0FI#L\?K1LTD$*7S_3*)&4\C%7X V!!J &%46 M=M13UU-.'2;7B@HND@CZ((I ]"VD7_TU93OP2E@[7<>M6C:I/'#@5WGG.7*_ MZ=913T:$+ZE3P WT;;1>[F>E)EAX6?/GD\GI^:A7:C+$'[^]-=** X!+8B=B M@T)L+X>:33U-I:;7AAX#P%XS7PJI9?R7RT]@E:T0'F97X(W&EMUD^TT2+FWT MLHA2M"1/Q<2O6I V 8GSVK :K\FQWYP154S7&4D+^A0&TUQBXL,Q=R_#,3?5 MYMMS*K52S_A?]V1=Z"8(4R7.L[<"2.-A]N# ?H,>VF/6Z)T]7K4K<\]I*%UU M7:^@=1CS^"'HO,G;;_IUU).LZVZ%D3)G,^"@O?/UA[.P4>][0J1_\+%.\/_C M\^)WV\-+CB> % L=U"7P#U/?+7]12'GK.UZ"P^]O&D%D6BXBEZ))Z27#-F*T/4(# M-]Z;GVT M0D=="KM)0]MKJK5T*94V:,M L<[:N5E:$Q[9;YZ*@*@)_MV$QC. 2^#>C#U[ M<+6#9T$OB)(0[8DB)X2K]/%K;AOV4PDDBG^=DV/T?]:1M2T+?]@69P4S*UX MJU"HGFYU'L*Y[6NAR")XOA8T/'#+#M;M+VM5R+*C"FIS(''@!RJ HJH MO3CH>_0P*S;[!7'BPJ-?X(D75.Y2G]69S4EE0W$8D:23,<7+V@X--6)R#C*G MU4&&%(:'EYWB]!Q>IHX3).1^[!%QR:'[H&$E''J; .<^G$$'FYY76M74^?DR M:]/AF_$I;1':"S?.GDO,QB-8.L]HZ+)GU2Z[4XJ>/34?H2^#Y1L:V[,1FO@! M*;2?TGM%,RN:V@O-VP+$.YVS,VO3H]OA6#=7MQ"XAUY>_L6%(_%5_ M!S;^3)8VG'W_O-KW<7$6*<_:*5#/86 C_E8*VI3-3CIP%Z]K3%//9N8I\_L+ MXK>B.T,>1(K=5UPJ WKM2VB[(%N31$_ ?"]&*>TH=]^JO9;4J"5EVB5BM2S MYVZ;2.NPM2D&[J=W@>U']P&",87,3Z.D%9K&/S.W*DN;?LW J]B=Y0EI0#?? M%9VS?W^N]F]2DE4NJI=^37'L0P>1=JC&D4&*RZ'=BFB]D)U8FV[&K^B-SR Q MH0SH5OB%JH_XP1>P_>3X2[4_%8O0J)G%Q]';,BUK) M:D!GS]7#U\E/CJN=O%#"D!O7O-K&530KX<"]L=J4IE[(R*%-[VM&HMC71"4R MH(]-'2=,4#NSE[B0][SHI,:V*RO+*A>FYZ1:E?LR"4/ZVIDC_=!1/[)S]T=[ MC4]@\ 5FI8W\G;EE:=IT=&X\2Y$]) IMP%AP%_CS%Q NBVY^&D:!&N,K7,H1 M$F-I9>7H.0#@QC7.S[1$@X=#>!/8$5-2EUA[?JQN\\O6?#E* ;\D)O0__/:4 M=_ZML:':Y->SQZ7-H_2TW1^'OG+%#D_!QE]XVIK&NU5F)FWZ6[W>2_>GXH(8 MT-VP/R28^JO?^*C=*#EDXRC?--R[4=^F@HPNZ!2*?B[),U M-G1Y218JRLK+TK1C[@A-ZZ+49$.[M]MI2%/GI*;7IS,V(%!R!"*?2(E&H5B[7RN;AE=GJ/5T?$JP]V@/_FP7GF2#H]PL()2Z$J&CIPC15A7HR55_@?5J%* MJU G.?3=),^KU;/'/X%WX"< AP_(6_P;C!>7210C,H74IW.;0SYE;>*?Z(7**'/]3-VI.Q]JQ>[<7'9]R>6VU M_BTO^-^U[;QC=.":(;C3HG7ZWT9WCUR9M>G28@Y<.PAGG(ECP;LU'S-864;* M!V&1AK%'',YK9! "./?3YW1(]M#V(Z2J[!Z%?/32*PX^BK0N;Z3\D2MOUZC? MFI'K-0(/L^LHAF@G30UX6TXT4AIP"&%@$$U\T[H3<9%O'N')6U;B)W5V>X(3 M2FO99,69U(0@&R^\A5 9MSY27++<:H0VB_#D'2E!VLLF*V:U)@0I^I>E[P YMXEGB;5[WLW@DLXJ1TJUW%4@*DZ@+*S=^%OFF,EKR MD;)%2!Q),0^U07ZY0D,SB1<9YG%#'V;8X<4=? =I (EM9-%=SUTB)RP]U#16 MO@VDB8RJ$T.HNG$MY[OU.N'U[M51!=M#] ND+[!?*LEWD@U**DD;))EJ0YETPYEJZ)[L0*OMBAC<'US6R)=BI-R*T[=B(FVZ;A>, MRO[?&L63^]JD \81<'Z>!^^_N "F\*(_MJBB#[_?@;GM72,5Q.OI!]RU.*M) MH0V> GAL0>05:$0(II)&,K -8JB#6J=QE8TRX);]"?- M_+.:4!M<6_5)0;DDF9.K 9GHHVEU7$Y45@(.('RJ";ALG*H <\BEUXL1VFK/ M60 W\<##;+K$SU#_(MJ_@3Z, 3'"V+T_9Z(NHTCM.,+1O,+8WI<&1L&F*X!: MX\#TL'E&O5A_C< L\>[@##2SJ6.1!K"I#PT8X%=]ZB#)(T@.L(4VX&?5#7BQ MK-[WW7U<8N#P9G@D*0A"V9N+9AYZY;@9.O.&%K&Y6!<^-;Y';U&4-L-%.XQ+ M2U!9XNLU\TAD&-$ :CYC8KY8?[?_%827GATU^S_H7+"1[).J#,/>W];T3#2_ MWV#G0P4?1(U/]L5*,8AE,B0?YM5MKTNAS:.R[\#&GU,OW2)KHO/JF@@7:I%2 MK6*Q^B^/-MHHN$*C+(;8295-3%<@A.\VML])Q\=IO&DHUZ%+BY+*7>,KZAI? MU0P*/.C53S3=9#5LE;,1O1#N..O&[H/_!)PD#*$_)S>/KW[P%H&0/ .\]5=) MC'X.? ?EXII^^JAJM'0<3!D&[.#3%ZF5EZA"$]>GZL1%BK7RX.BVP.1V>1S=39)O?X7"E1EE[4K M6&/$'IX,4FY]:E7.O-1AYRA3_@M08+O)U[ M4NW\@? N4C1:YPD1&B9/CZBB1EZ-JR9W7W[C49B54UITW*'!W MVTH.;;IG,Q+UG9%/(@,FZ*GCA EJY_;46:CSG=391)$2K4*1^D_2536DOIEI MBV^.]"H/5^L@%3I+91:@3>_F1HUZD"HNIP%]/O50)-3/:VP?TU+T[]II.RG] M>/?'P;UFH>IQW%^N'DI)7:;IB;ISYWI-ESUD\4M@V 5%ZASL805"&[^U))K( M1Y[U=SM.<,,X:2!%2WL%8UML2U1SN4W*LK+"5.V+HOS5 MU-'V+S^(P=')IZ,(-_#(21MX%)?$S3J >'9E:[#G&/'R8IU:IK+>B=-S:--G MVZ)6O^CBDY,Z^&O\$%PE1FWU7+B%XI1.#3)M'WBKQ(17HV4,&D7I X!6H5PP MLS*>W34\UZY-JPU0W3N/N)P]+$^437:7P7(9^$3HAR1&DX2/3[^? L^["<(? M=N@*GC\(EJ<=C_A9P)HH96C!@,.*78]C0@OA&KN4P M@YY,V="PVR1LO^Q,??<*>DD,1 <&H=+*'>(4=8B)FF&A";WZ[M]=5@,Z?SH/ M[[JC)TH@P+JB/KPXOU]0<('1B!QQ#-:4^V/^_.W M8>&WMUJ\#_QW$"$LTBUINS&8IY"R6L\FDW-%@5#ZY&1K11@6O;N^;Z)5//&I MXF>+_XBLF@J'FF+TDUF'R>SL74^&11;?F6+>=E7WA'HXFC9P+\?SRM1W=[YY M]6'<:3DKM4J3J3VTVO2*5M[HDO?2CA;/((X]4!0L1).T[BG'[1*W6*+F537NIKB\ M6B!L(;Q"_T0QN7JZ0=_#N2\XL[4J59LQHR7V];.5/%7T<-ZMTGQD%?AXJ,TU MA+1R_8&'9Z0K'\P@GWE\AQ+-I)L<-9ADJ725M1CI(?/UYW=X)R54FID4ZZZ" M'DZ7U=U&SV8 +_2V@_L3TO".=SY!DQ?A(LTDFB0]]'">.S3;DN72#MY>SBM5396O?KAQLP"]:9L/1"UM]H5+;"L MX?/)Y$Q1P"ZIXY04+?1PL#K KO\R\,E!R87MX>/EJ'#4_/#FP;F=7CS[;IXP MM>L1.2"H\0B4%V;EU?Z'5:C8*M1,'()MDI/*]3?S>P+OP$_ #6)JWO3?8+RX M3*(8$3.D>GOES#7TFY&ZQA"__=ME(]_)>8N2M!EP!#$M/3"1)+8!ML'$8^+E MP@[G8J>,IS4.@U)GG5EA^@\*I+GI0AA[DTMW]#3;WJ;$RE8@I&&;I1@>C[?M MNUAO#B_X5R"B!6HS(/#A6;_@D"*TL>:SY#HF<;#7 .P:&WO-1UIY077CX[%( M@%S<)1G!JF[2FN![(5FM/+(7L#U\O7?C!3^*H8%$)IP:)UG%XBU@3ZD=G:D8-$50IUPZ= MY39@=?H,YEAR[,NSW:!Q6C-HY&6.;)Q(F_T$5CBFL3^GC0W49 I7#YN-VC7" M*40VJL%=*8AL$56&9)KU&=< M:6 !;1TRA#Z,7?[N*KTP;ERLLQ\%;!1%2ALY\;K+:NR3KM1#S6_0+<0V>_#+ M_2VZ"_PY\66=7@O?^K>^"]^AF]A>M:^F?ZX%;D5[;T(9TL_J=G'MZ*M(00;$ M1"41]AYFCX6RKD!L0X]OX79^?'I\LKMP(V5:PF7-P0@G&+-2'^3--/2HE+>#Z62OE$B;GBV&0ZF?-PLD:4GC*;FE MY@SY7>.CKT4)VO!! -TJ);H*K(M7.88<6RGN[26H]078LA3M*- 532%^<&M$ M%X[D.T#R;@/?["_@*OH.EF\@I/"!D6-,V',C57-Q+*@!25A3EB#7B+AX,?L" MG(4?>,%\70L?,ZWAP(G+3MUP#MP]21QE+">[3^XF,QQ/(;&I^ZB!H;P/\/7A M"L1@.@]!>@G !)6>84_@%50 U1Y9!M!1&!= 1I^V *,/OQ/W%S5KZ-)OVL$F MM#IN%J7709,'@-KNM/.K-B TZ[-&]_VO,EII_SOJ_\MD2=5_Z?=RZ[]H@ !# MJV4,FN50BH+]P4:A^/N846B40Y?E&S58;6K_PSATX MCQA5RCQ8X@:#D1446I>YF*^C[D\'%>B8RB=9XEBM8<54 M2J,=;JW61LTB]7KF(7)W7.^(/ SQPIX2)3_90-;7%(_%),W:#Y/*4NJ79P=D>F MBC:WX-KTZHW,SS@T"?;.^+IR$<]/CT_.CR=,E+GR:@<[-T0U?;FUP/W.O"\+ MP&K:YY//]'F8-Z\).'876)<#+:8$QZ>MN^TFKPEP=Q>XCUO."#@_SX/W7UP M4Z31'UN T8??[\#<]M)59L-S:/GNJRTA >*MM*./Y0,U5*RD2(<.52 JFW<,LC/O9U/>Q_T, D 0.DJMN6JU+-W[T MQ423=(33QUJ*&8T[*@V;-&,\WOR&H-Y9Y(P-DQ[8T*NWSZF#M@X1)"8S8FX^ MSZIN/HN%]>_=L_/$>I%$B"-1A,;X-^BG)/537[ %22C>VD4S*_-6G#>T",[% MNO")Z3E4L)ARW_B,^IJB-UGML*WW)=Q!]%%[(:V1FV% 1DFM#2.DXEJEBXCX MNMS6U;49_QD"]FO.QGS:@2Z"#A^VS?+V;EB$OCPI!1 -:NZ:DTI&?ZND*C<5/ZB;& 4IYR2WI)1('F$_F, *;YY:E*8"06'C)*>B=#" MF8#X_I[OU(25WDR$A27.L989.50*UO^=@"BV?X W.KP[2XWQL)XF9$/((F8/8U317 M?A\$P22,L>QJ]FH_/W( JZPP<(?C,U(.8F9*/((F8.H[JRGC_OYNX9WM:PLVG%A M.%,,M@YZB%0_]+NIU 8Y>@FRSI3K $3W('Z88?O&[!>:&;A($=HQ21CR*FLZ MRV_"^]P:LSG\5 CZ^#^RK+I-(.;RB M)+UC'LE(>@?M-^C!>-UYN-R49!+]9*M!TAMH#;8%1=OV;&'R!!P W_%:.?H6 M!CA)^LX7.[-=8D];_!SC+G)/R-9-'R8\D^93RHT-0[+TZ$2U32EE;4ZT-+3K MAUUL%9CPLIE/#]=1#)=V#-Q7WPD\#S@QI#]8ZE+D_E)-0!_*+:AZ8UVJ8.) M'+_[CBH[!O$"]HE1G-)K\&RZ#P8]AL$-WMG<^F2#DZJ"['D>9OGY]C-$^YZ" MKJZ0IJ9DXU!2C^^[-:/MM1WZ:%,5/838&UWO[!6O;G])+$E7 ML@STRF1>A3 (T::;G("KORC#+M'B]:V/%AH S46W490 ]R'$_^(ESWV"+PX? M9FF--.?8>%@[C0>0^#!)>K-X?HQ"9V%'8''$**.ZI%. M@)*@_KV]9,J7Y:)>.$Z97CB.K$(SK+P=%FF(M6V)A<88:]L6*V_,P8M'.?,> M>O'XSH;S>9SS5-1HTMGG)O\GT^RC0& M0TXYE5L]]/-.SQ@8>8249$.@TS,]8_!K%E'2A;UNK_2,09!'2.67W_T\TC,& M0QXA=74BTOF-WI>3R>3LS 4N:34UF5(MR=ZQH#((Z2VGD)Z<*YJ#+!BXM+O M\?3SQ&D,1 *RTGU_C-,5IS$8=I*>[A)$XO!X+#(\UB0V$SEN/_1QFFH, M-)QRTKUXJ/>::@P6'#+2O7#(&\1.)@*#6%UB,]$1$Y?N:4/B;',J,MO4)#88 M*&YQ&A8YND!C^K^"\-*SD3[IQBT")93U=SJ9G"JF2T\&+UU50KW6 MU8<<6RGN[27;)$:P%.U(TA5-(7YP:T070ZD\SC%YHX1[S0)2+O\YVZD MJOB+:D!7(YUK1'GL*V#KD9J^AJ"E-1QR<=F5V_1T'A)>0ML%6$/L<6 WF>%, M$!);N9E09Q+(^O8/)?JP"1AR*NL MZ2R_KINVFN=_)4=OY'XT;2#208^_ OX-ZZ M" ,X@_;FV"CO,TY0"L+M6G+:^'(&6_7:)9SSWLBTWI%(]AL )AO'[T;*1"W\5^OU9XK35 M!Z'670;Q'(%XPT%!AX[#?[K46CU/<+Y VY'7"-1.$[W7=V ^\["K M7SWW<#1ARC3Q$"] B&^+!UY#U=9[Z"2]30_\^I9TZN*9U4^RM6CAA^$V&H4? M#CVD[]U&D[*['B=-TN[A@SEVPV_8;%+5X56FE,R]NY).L].&0Q\:L _QZ+[K MT9;972J]*[D#=@0>WCPX)\4-T8]J*SYTGOXZ#[_"N[HY,KK'Y$/.B_TQ['*M MON)#C^FMQP@HO*M3*=D]9H CK^UNK_#;78"?CH3+6VP?#@J*VPUNJKHY910_ M[6NWT1*&KJZ]C)Y^;E !O@/11#[HY%-7[:$/]3;U<*N[LPLUW6:>E](;I2:( M.LTJ8E4=V-YBQI"@8FF1H H65J9,!MLG?4/, 87:M.T,FIA;-:E*N2-A533^ M%@3N#^AYG -ZS[4=:-Q-53WX4M9L:*89 ]?&.42ZRP,==C>W;JIA3[@K53V2 MG$:K#>0F^6AK,)N,2IUEB#[K8]NJR2*"3V&RG&B72*U[D-1'@N4"Q-"QO4@T M9.I9KR%34?Y2ZPXQ5,N9]S&&JL+!K1VV\F*H[@Q3HYYZBPKK&$-5@^E."J[T M*9!'?(W]E92=L0I S7#BJ@'H(NCP8=LL;[\Q5.7&@- 4HF8E[QS1"LC:+SS# MAX P!<).TDMRS-MK8 %3@.*44Y)WM%[B"GR93,X^&0 %AXS4%PA:1/0V!0@> M(74-:-HEHK\EO'7B-ZFX(AIYRZQC'M&M';%!AY MA-0UB&F7B-ZFX-82D1S$=?5!O4V#D MDI(>MU3U"K5C5.^O2+[/!J#((R0]IJF9X1XTP%;R31ZOR'T$?^LQW(-"H'@U M6L:@412-KT_OH*QP#^;UK]8Z4.X$NWL,OD(L@ANDXX+H%*(PWV V#F0#FTN[&IWJ-P"SQ<.@J80._\P8#OXVMWK9.*ZW42FNU2+4'R[V# MY=YD,CE7%"-*M>5>)OJH+?<4!HU6R!RI^%=IU54ENBQ;-0@:K0%)NJ(IQ ]N MC>C"D1Z#1NN-/3=2-6M800WH&G],?M!HXR 7EWW\0<2D!(TVC@E"8H__(*.W MH-'&$D-0 >:$YY+X:D@#80T]]70UQ-#8.22TM170\:@R"/DGKT:T@%;R3=YO")+.M < MZ-602J!X-5K&H%$474SK^GPU9&#_:JV#\5M2T U2\D ?A6Z"1T=Y&]GL0IR$L M[X)(8(52GW_/>-,LNR3#<*7LN;9#'_KSZ!&$SPND\89QDY;<0&X(B2K)/%RW M@23O"[NZN+ CZ/"/)\QBM*..$/!<8XJX_(9.3#1%7$$OB;?KV?:,R@K:8TZQ M--#CA-7K7NG&AN&OMI> [\#&G\E+#+&=T?GQR>[.")=JD6*M8KDCV )M]+&5 M)VJ8N-E9ACX=R1N3Q10KQ1++L' ?AE;.J#TTI+N"9X0H&3#NLO!JC)=2C!SZ*():)P4="]H,K*IXMY=L9$85Q@"_JT90KZ\/N3[<]! MS?Q1^DT[I!7.%,V*D;35D3@G\'"@=CS8^54;'C2#4 -8_WUW.,B^HZ%IF2RI MH)5^UP\V1KO*P#7+,9)<&W M,/@1+Y[0!H>Y?1,L912$$=K%R5" I@N+#F3"1[)!XL?"_*EF-)\RG#*/?_G2 MTS1_UV"=W'>UVC%4@^64$ITKMZBF/#BZ B%\)V=[MWX4APGN^>0:.WJ870;+ M9> _QX'SQS^ MVL<()I]7ZC(YL&6CE+TU\/TO IA$,)X34KMC6.9<$14+%UN M/<%+,EK^LI;.)Y/3XP/+.BNPA_F]3YI]0PN>!W_[N?+4KB'Y@41,$O'IJ^M! MQ"3EC _F:.WI]L::[$H+ZQ2I+WA'4H'H'NR:\3#3'OA2PQ MR%P&/G9X3D9>/X)N]N GQV6]N_/B?S8PR(]7*?+0>>=_]!W#GN'\Z MZ"?2>0N-9=F&MBY/FZ%,U.!3KL2C/NS/1+X"$9S[38:<]8FUH4$_\%;I(Z & M70SQJDUF7NS1DFL'M0 4/#@RI-0%R;RUP)U&F0!;EC-O5#AREB7_I/Z44 BB MNH&^G <> M*XHE5V;M(.Y[ZNV@%OU,8MMPJ;@5JVJ '?=2I SMF-4!>0:-6JMBU(O^C:3D MV"0BVCMA3B^,'/HRI36X#,)PRC]^PYTZB4^%.7*ZYQQAR6^0V4Y!XC-ACISM M.4=8\H\_[F:;%>%=@]U6IS*UXUG?:V;YVC*)E>FM5R/1TF1&<(>-+8L_#"6, M?\'3X@)2WBWQ7A)+EIZ&L8\:_HKWZ2V.] M!&EUO;MCCU%C@4%,+E[]X"T"X3M>")#%)#;S\1W42U)##'YG0%UJ*/?'SV@) M\G4<5\!]Z\",\Z&A3JX5$F-&G0*7Q@C?H/QHJ*6J*R7J*S% MS1Z;E"4P[W:NRU"FLWG'-Y'WHUM)(_H*A#!PGV,[C#5X]=%6?13M/29H8K6C MRNNUOJL[=(;AU:O7 TO=>L(SB&,O77D.TQ<*%1YZ@PH%]W"_9U!_P ]P<5"< M6]_Q$A>':\N#$ S3/>CUE\'\HITW[7'V%D%]Z_68EO+NNB<5W2#TKVSK$W/HW00C@W+_^<,C%TDXW4=^@/>\WF@(PS,M=[6]=+AM=M MU@$^2]FF7_M5+QZG@]@VO(2V"Z8.\62'E0 @T9&8_<*G:@ C4JZ5%VQM2QZ! M<<*VL4V1BVI2_GXV^.!5A>];B$;W2T1HQ ]*T]F9M!M.*)JNC@ MY-++4UAW M.GA>\,/V'8#F\:L@>8MGB5?52@,[1,H8,5DZB]GU=$JV*Z<>!I-[$(L.)=LL M(^:&J%2R#F:"V/8463I25@/DZX+B1%<'%?6\Z!&$#E;R'#S,LCZUE:GN M/(>987R MI2I-^,"%4/T8QB\PP@5C%8REZCI,,8'/.)#=<40G354;RJU9D%H M.:1:RR/U&C]HG^[;NE[3D:#V\4IW,7NSPAB8-,5Q85<3%(ZPLHR7$L)2C=_V MC*\7_(8V&&C.G-'H(%A*69>3R>3\?"0,D2%H+YZ=I2P2JY(4Y=TN&=+[H.AA MQG$OV+7,\7&E/[$EW4QWV5Z,?84R!@+)$U/2#2S] FJ8(Z>'> '"UF=+GZLW M3Z3 PCYE@*T(9@9C"$!OW0&W![M2CQU79A*<>O/@G"9>I45G-\K=T?5^?W( MVM9DP6U5QDW\XC=%M,W@,E]HXN S^2QUD_@N"7AUZU]'J&?\J-WS\64M<7QR MC#BNR!FY@&IWMWD=)!UF/N^U-S^& =H;Q.NI[UZCU[<=%E5!Z-$?Z@:?G9VQOK@'L7-;&%I+X!=5E$L7!$M55BSQ_1@,)T%'X'MXD#WWOBX^Z7WTD!G8, M'(>)@T5@#A&L+&4MG4PF9XK]2L@;(X3%[N&=K2Y[B[L&EVW-&;4CRE#;2K8& MQK_DH I.WO*)\H5DTHXK+<$58 E=[O'O5::.DRP3#UO)70'4:@=FMTLK#Q 0 M?7>Z#,(8_D6^I^J(-CU)*MYYUE2 -@-!&RSK;]I:B3SJNS:&Q!?K[_:_@O#2 MLZ.(%<>!OP1M&",)^9H3V8[*T.4VAB''5HI[>\F^D1,L13MZ=$53B!_<&M&% M(_F!XA/P4L=5"[AB'\8S+AFN;AEQ[PI8V6AC_?I4\\\>Z8E-D-]F><()+;.7W>9U) MIRF;=IQI#;$06^BRCW_]RA"[<.]0O%\0YPZEH#UEDX@VC!Z)Z/\%XN--1-42U?7NIH68&GC/['554I@SKS]6 MP(_ $\#[2"0UWCJ@,ST!8DK!G>[E1R"%9UE9>THOEO1&GQ[2=(%JI@92 M:E?:/C.+*O_XWQF(:^,F2.0LR/+"]IA95/$EQ>CLF!=3_ M3D 4VS_ &QV[G21F0L0CI/*[(UJ42<2J$'[0$2PE,!._9A&5W]'0MD1(3G\) M/<9TMY/$3 1YA%1^%T(/V'*Y>+OS'#J&.TG,Q)!'2&VO'8*/. SJ_:Q6$Y1% M^X1$^VP ?LTB2CK\EX[>_U#>VI9_-!,UMGC*C]8IB#TGJY6W_I5$_J1#5TUE M)H:<?/*:^^YB$SL*.0!8X M%2FA$(&Q@2$")1E'G*ZR*S^B4CA?G(P;^GJ)))U:[<82'L!H 9$V3%#SH/T& M/;0J%@P@?')2-5_(BK0*98[@'5Y5$5FT28KI W<^\:"#G66Y7JZ\8 T <=A4 MUS:*+(WYRNS_C-A_JK8[I# M)&$VH*0J63?D MU*9+LC5>=E3*)\6H+:8O4?-@?&,[9!W*,):N)M0&4E' JE!S"J>+>72YN4R+ MZ+JDV@''J?XFW!C2]6M3^P3> ^\=;? >5F1GY\_+#:-?C//EU!PPAMYW[L<[ MB*O\<(6"/3XH?IBE8EP$81C\0%)%+P$V!0C"^"8( 9S[UQ_.PO;G.*;MK8_: M *+XR8[!/X [1\GI_)!7>EFI7\;+H9Y5TJ^A]C/P81 ^ P>M/5S>0:(QDS'8 MMI-T_"JADD%KC!M#2ZXY@%08FO!KD+#?%=E@ MXZSBZVHAE4L8;$\T6(C5=]PHC N=%GW:=ECTX?,7Z,X_-4.(1[.\::4L=[?3:8-JMU7^URB42\U%<+% M7.57$VH'&9?BV7@I6]=?VK[MV@_A:_08PB5IRP7Z> ??@I#AMZ Q5UF4KY/) MZ1=]0.)?TK<45-/IL/5>_*[A51(EM78DD'64PI90^7/LSN@7CX0W6]AT$;@Y M(;ZT5^@7JKVB2!%%+9ZCMIP>*PY%(X)VE2N=13=M^,#F*'R6#2CAKD:^?E'\ M>*4;&3@%'/\"O"SHA1W!Z!DUWG8?_.+<>\)%!'IVH^DA*/;X[VGJALI7'TGC MY@/D9;!<0O*TZP: 1Q Z&-XYS5"J=7F&T4JN'L9O"5NGCS02#YJ+NRQIZ(7L M :,$A>]A7:SR]451(QR,,9@/++35.33J#C"(<>VYE ])',6VCWUT3Y?XX3$- M](9L.]J:3$X4>2&71(0VXO;F+ZE?TWI@1Z+O=<]JC.I),2,PID\;2C&BW_UQ M\,X912!%Y IA%D)"(981/2.'-EVR7N/E[B8FA7[&]+(-"[080T5AX3 P&#F$ MHE8)2F%L!H'+*F&\D+4V9= #-D:[.$T9-(:N\ZS8='W3D$L;N+L/METD'O\1 M;2KUYJD($7^SAR>?&"?U?)E'PA4VTC2^M!*^A\LM9KPP0_;$R;/)M=> ML88M=0^C3 U=!M@FX] <@8\*BQYF915D8$-+59\'-\U?WE]$X1E[32Y#.Q0XH@8(UM*PVZIRZ+_ M!K"V@#M]1]_.:[:P-/,LT6)&1" IHO5PVZTM:_ F#-_L8L.TS'*H#6MJBC&% M-;RB]7 -KF:S_]V.DY XU-O=[+=V='UV?$;=\&^KJ]OP>Z/R@ZWSIC_WM/_P MYL$YX%^?(L'201E1]F-P@OV\/!YBE#0I\!I^2!+1N$,./MW@ MWO7R(^A(HJP4 [G#DJR'QP:CH0RJDVU5)E".J;2ARF;8.8V(4FZ"A+8.$BW& M4-I013/L&$9()_!=QFB#BS&5-331##N&X=7)=(9:+(DZI;(,Y$^S?,.R5B>BEJ6,@!$R)>LA3/08!I2.8\@(2")%)%EQIS6Y:F;J MXM5WLU-MX%Y_.#BR-_L57(NR3.&-D'SYR=YQ6Q9-4A;Y8$YBZZGGD=@U-=?E MK-9<$)$@1[OS0:XF8P9%]H:88\Q,XT>>)4A.@*YGK_J$(:0HX3[PG38LV.8K MZ^_39'*JZ,E\:R(TR))SH>NA:B,7>KT"WKH2B39Q.1V(].6[WQ([M-$L*'KY M>UY]-5VHY3^L4CV6[;O6MJ;^[WQIOA2Y]- 4G*QU*4,O%H.HW$#FV^O:Q-KT M[X[(E=:%_)*.^J5A'I1WZOR9P @2D.AN=RFIM2% "_2JT(L(:1SV^,\0L'WY M-N;3C@\BD/(1HEE>E=2@SFPA^"_4+;!E;1@]+^ *CW]_?$."^$OH@7L0.XLW M-%K^SRIB> T6+F44?&A&=.=H4I(>-.3)C@BH_4@*'$?,6_\*<11N.CDXLYK) MB"["&_ L?7?2O6OR5T#-H!T].BTH!.54S@3*J'"5U?Z\0.IZ]6$_;O0R5*4.<"%\1W*]@ZT;1:(% M[!4Q6"X#_SD.G#_^ 3S*6,:=O:RCS^J.QF4-6]TDU\LFE7?ZVYX.)WA5MQ&5 M",XUV3%+,(XCG84WS (UWW(@N=^@GXVGF7IC]%<$77(9@0$.\0O8]*D)_NMA M]I#$3K $T:^VEX!_P/FBX:Q&3B7F<') _>AE DL9W=KIX1$-_(%[$X1/X!WX M"7XD.0O"I>T[X,4.YZ#BX*#7NLQAY_!J,LSBEE]W368M+4HRAX>RE6# 0VFR M/KFT5Q!MA<0NPS]5+\-)8596V@@>.5__F2!54VZ\=W\6S\D;&FN@':Z?[8W(C MK:GIM &X+ M8PT1A&0=-PVV M[;2_3G"UH 1:B#(!F85]?-&?4CAA"L-;1H)[*&UY+/"^#- M'L,@6@$G3A@WU+4)RU+B.+&*G=.V!&9GE\ OJX:(OBP ^O+X JUDN,%MRF,H MSJW$UO4J\=Z!;W2$M[\:BF6#@../!TG6+IF>FJP :M/J!WSGY1F_G+KVVIUQ M)SUIXIA_TX3:0DD#:U2^RJP,;VQ(#=+J=<5MP1GXO@> M[C:*$N ^AM#!!\GD.]K.BI;>"$JTDU*O>^WNE, :2V6_2D+HS].1+]7)/?A! M?J*>Q'!E-HLL[44V[*H;C:,. &YT@W1+M/) !(JN/T#HP*ABL<6=SRB^M)-6 MK^ME.8/,$UAECC>13N:AOP:-&A 3DY*C[5]^$(.CDT]'$6[FD9.V_L@A;4^_C(Z";=N/ MW+*:LFXEM>3!IZ>LQXU83: =]J8.>42](QOQJ0 M"^_S*KM?5+ M.YOO6%I9=9/)Y/QT9 3I0P&C7A8.?B\X1M9(D'?4\TS-RBM]VW#KQP")'F>W MZ@\A_A=/TN5;B?17_@U&B\+-(5F/^I!T,VW@8F?,A!&64M*M<[K8N?;=TE*G MU]N=:SO$@8"CW')'["KG<_417UZ@A4K,[G5&\))O1PNT-WW49,I>]^TVZ<*. MH'.Q3ADL\.:/LQQM^G@38O5O KM(.>K#BZD?0Q=Z"?9*\PR<+,[P]8?C):A? M8Q,;?("3I-#5Z&E=7P#CC+O'&K4AH5R"58D[M X-I#A^E\(\C6_*IAW9AB8% M+RT;5*;+3=WU0=\ MV^,F.$"I92M'?U:T$3ZUH:AFF%> MF0YZ*%=2!5$W&LJOL/: V_4 KV*+77. 1PRR\Q98P,\0JF M6$2?%&8(E6$F<[JKP# G7J@?A61J+CLRF,9H-GU+8CP6OP35.;LPI5/(UKU@ M,QG8DU[D6GYK.-)EAZJ\1KF"I9C)-1E*,,S/6*U>11;99C*%7U1)9MT:##25 M6Z*T6W"2(4N]'W1@"2O)O1>=$/UZ/+/ 11#1U79C*:@#ZXPB-2HU6LTB)UH@3;:BVXK7<$-X=;,4FDQHUD3\"S8ZS?*(X(F]X* M"YN(*+K/DL(42YJ@''8WZZBL_4F5< M>1:3:$.28:"M4JE1&4:P@7F%R3J%UX 1C0C1065().FJB.I&'XFU"#Q4QW2U M"H/W[+(BLR_&[6-%+.+,K"U4#+UOP9(@JX9>DBJAK=E8,Y(;@*ZH=)(NZBC0 M7-K1XAG$:,'N%NX0\Z;1,>+)9P!8K<4L'\$&7A;WI,)1;Z[R_?^+ M_3&-(A!'Z(_\N^L/K"104I;O7@ ?S&!V'U#1)KXJH#"XCZKTXW0_'*N2>3!M MZA445=XZ'H3O,%MO5)2!=)EI*W_HF_^2J;9IT=^I\/TE=8_Z,\Q4M(6F'I/KRS^0N1\5FA:LMBTJF8X*EI.I9:7L932MGOWE]S"J-,SDM;72 M=H)^OMO0PUN?FR#\AO+2UMQ]57=@_2 :-2Q8,->,>!_X[R#"AO)8:]%+D#[. M*&U4[H/XGR!^ DXP]W'DVRZ+F#;U[2_]AU6I7M&*]>5_&I0"#2795SC=R="= MHK81AYZB4,_#!'<>=NWTU@S=&V7!^2O1]*V?*="&X:^VEP!:1^FKNOWM$H-J M-"/_5Y/(WV&W11:94:Z[;R'=9T$/-94!.I],3E4[Q-=^NR"HS(SMDP/;:]2V M\_26_'AEQV S@@S2$QI;<>@E*A6=WW,='[H0T6E^%KU1*UFW7+E2)?GN;:SHUYM"+ M--!WWJ\TN9OF?3;5>.?&FVW_2-A),SE=3+GZS?50U/7V&*!H!'@'[3?HH69> M)B'&<.J[]X'OI!\:K,XZEKY_'!U"@3F5-;G=Y1[YROL-OF&OG&?_^-1>+3E+ M-+D&Y6;)$W !4IV+ \NGKS9O??R$DX\OM-QE%7V:H/_L)W.$%)1S2).K1&X. M-=N>\F<\,$=0-SEI-+E :_5HGI=!XJ7L*9TD*2KG5L_W4ZK\M9%M[W44PZ6= MO^*J),S4(^K%K1(0JM&+&VF,M6E-EN&MFB%KT<&_V\&_F_QW:0I'R-'X=]L9 M'$?YI"[UAO^,@"7BW^%*L$;HWDL8.OPAGM$^$B!%+W#07/ .O&"%-22WA^6@U>-Q=#E M;F"G-!JP;>C]34\J'+6#QZE'RLV.56GGAA1.\F76CW?]\*!*N [Z&<85C+(0 M(U&4+%,3KM<(7R9>>+;S!QH/ KQ%"5S@W03AM>TL4H-BP5/K,_'8(]OV6+A! M%O0MTB2<.6V519IES8+0P@VS2,L.I]=ZGUZW[>@;(\(",7!OQ?=/5_ =NHAZ M3TABV7,U;[WE(>.+NG=M/9QV*]&=W*/,45I:L_3W:X#@)/9F0[.^7/.!]]*U M)W?U:@SSGV#TQTT(P*V/EE @BH?B?5V]!]9+UITY06-;/_-FC1HO(%Q*?ZG? M6*'I+!].:9+.T?2+3/F<+)=VN'Z8I<]_IDZ,UG7Q6G1_>"Z\/\PJMH*9E59M MY74?=H!F[@"KCO-VGCKG3SL?0^CT]3B7L_;R(# Y/CY7%(M7H_6!! U*VA.N MR&N+YQ@->)6#N-,Q=PB5SC\/)!?6E:2-GH9T;K.R:AP?G@"^\T3?7P8^02ZQ M/;SD.I6],&[?$M.[A ;:/+A^IJEU$.\DU/I,I_Y@.I.T5TQGA6O?U65.D.;A M2*G[M@.Q6VA+DB?GLAF1UJ,VU3J&QV>7E(VLO!;L*3)IZ(*D<973UASQ)N>:#.99# M![9U[;P57W JQF&A1IC,F2])65Z_( MY@WX-9I3,>0+-F.?N\(0JCSX/M;S0FFOB"Y%5[)\%-//#D?-YM'8"QR8+T># MLGP+F]0?4@?-4]_=6*T%^*NA!GW>Z@\]HA\5FN8_N7]E*I@UNC7JT'6&5*QF M7IR5V^\(JYAF_M%O9#H9#2SQX?18W3-J_:Q]>E:R9DZQ1S"+3>?SD!SD#6(E MU+H]IG]S^5>@Z,[Z@KS?R4Z\1D!5L7SMH/K.]% M@P/Y51_-9H2NRZ%W'2U:8GH?T4";>7\Q*G*P'+V6UY #=(N="@_LEZ6T_)E9 MS_?;JIZ@5^^)T!ZIJBG1)^F?ZI^D$TSJGZ1G=5J%EECHG\WWA<;T_T:=$BXG MRAV)'FW_\H,8')U\0=\@ 8E\1TY!OJ,5EN\H90WZ=RO=$?IG\SW82G?DEG6= MC1D#USVX[7,F$S.X1BE1N;>>H-ZJ*$*&$E:439P;]3+JT ;U>X+4@GN:Q LT MEOX%W%Y@=@CE;="VI7$6\JZ@]1^4NN?O?*[2> +0; %GT\G T!V MV@#9Z0&R"F0LG5!=?LB#[*P!LK,#9!7(6#JA.IR0!]EY V3G!\@JD+%T0G6A MT&$-%@'GYWGP_HL+8+K\0G]L5UWHP^]W8&Y[UWX,XW7- KTF1:GM9_BT9C*B MA36O0)*&/$$PTD;5KEMW?]8&!EZ-EC%H%$6;'Q3+L <^O@B_L)&Q3F"-\AJFFA8-]%9JX=% M3J[=U+3Q85;5\A 3!;UVPSJ#(H7)]?QO]/0AQ[_OX*TSK)]HJE!)+B0-Z$<% M,R*.V7B099=@DPX]ICRBE-A79U9 MUO%<>0RE^\!_)X_\B Y%#58_=XFAM*G:(G4?8BCI'4-)5IAVVE#82QAXE8-= M#T;\O>IHU(?G>'RYMY*F=T/TWB/ MR_I1J+FQ0F4H<.=DD82QN4([H4UXZ[Z[1&,##KU$D8[-C4K:P2F+/A'H]J\K M#*#,0U!1_JAF8G/%<*TX]!*5BI9KYZ*\\W28?G\=;H-15]6>=X,AM-G5%D7/ MP$J=-:=J3\%9^Z%CJ%"P:1%.9>W-LL]9_*JA#Z38M1]ZB@H%FQF?M0]E*C^\ M$F[0H4=IHG-)(5X-V*;H>A6BI4L+G3L&CT:[AH+5-0[:WEZ%''K),$J6%1N6 MH^O'^7XX M*)'L7;5KKIEV&VU6E1@O0/BRL'VIIY:*FW;H9MII_V#T+:1M\3CFTA=J?;3Q MT#'UA<%$$_4V%SN-"J=$02_@(/M"3T*3]KSGZ:1U29;L]!L_DR;"\M.!P>>X MJW>>OT!.C0TW2!0*[[QU%VQ?3L_S:* M$N#V-2_5U7'H$OVI4:ZWQPZT9KE::J,!8M945H#HW#!\ _:/Z9KHV##C]5YF MT?2MFK(-2;GZ_>LI6FBXJ[6[GB^I!M"F?OL2P?8=.IR>$,@RH]?J]'I?[" . MW6@ [>8]1(XAA$9/M YF$(?)2G\SB)U>*,<.8N2]L#3_3WWW^F,%'/3G2X"_ MZGV^$JS^T)N4:#CO,4;9)?2J3%90)V5]B-6H0\_22.]Y?^MJGJ!5?VMC_M%6 MQ32K*[% >2H:6.;#)T3:XWWJA_IBD/?)KA806O7)7H<]BFF6LNF/TIX][W': MJ#SO8)IX$91]"]RXJRT$191Z^RM2\?[U!<6ZS4EOGM6#B&J&-8>0VK)#C]%- M^7F74F]!H5&7HJUU=>E8M/8=NI>>$.2=K*NSP1%V,LJ:5MGRK;D]ATZDA\KS M][==#23HG4:Y>\$GM/\+H9.'-^_D7?!K%^^"VX8G L.Y%SP\V1RIFAH M'8USP4Q'H_8EU]&YH$*:# -NE4S-VA@U(=HK44/G@AK0LYDN+4ZS92E&%[]R MA;467AB1!<[3\RO3Q2 SCW8T& S2*IO$%:4++;IOKF3?T%%V;3H0;.!IL"<5 M'MP-CL7,7@?.]\-!'#9K@;W+M.I$K#!W>#>^YN\,NAIVD"P<'=X*@=4ATZ MTD :[NJ_\."02IN9JY,WI$.'TP4"2:X4M3K>V)>+LD,O&D"[77THFN0(9Q^O MR0Z=3 /MRW*;:$0O9+\L+SRP4.&.JE+]H3IXW*-7._>/!$=?;5/)\%E;Z@ M6+>R_!N.T*.'B9ZH#CU&O?)E>30TJDN9X8GJT+UT@6"//2B.W1/5H1.I4GG_ M/A*5>Z*Z#*,$?]/6^]2DB_>IRZ?G5_+]P>'4( ZG*$,OAH'THT9#EZ;DI5YT M?GSRY>MD['Z>6HFLX]/J1O!WEA>%5<4=G-7.D;QYS:=%"_GE>J.0OR#;"L=\ M:<1,6Q;\Y/CX_)-AP'/(*^GYZ ! ;\Z'GT&,9GCWUK^THP4;\/H\Y@,O('?7 M9XVR3=X;>7 3A#, Z4\UFI*;CSZ?R%V?YPT.O-SUGXG \XDLZ3&81%O%)N@W MUID&*+/:1F!QK'FW_\H,8')U\/8*D\4LZJP[#UNUE %L0ZLM$>I$&&.H93\?K$._)-)F=G:M 71Z%J"B8@HKX0 M,CUXTY)K V,+*'AP9$C9!Y(1<'Z>!^^_.$&"%BWK%,CLPQ;#[(O?+Z<[:&U_ M& $N#-5ND6F02-+1?M'H<3#T7I\IZ+T^FX8>12))A^[MT:.L;LB%]25I.P11 MK6]Z:CI3H!,3L >GC!+ZH0M@V@?1']O^AS[\?@?FMG?MQ_4KEYH4VL#:9;G" M*Q>U7_:*2=JHVE7([L_ZH,&IT3(&C:)(6EKP;][N*&$4&M/K@T27?M%*2KW& MO/9[ 'Q.*AI M\UL?R0.B7UM/*#4/0G?EWE1^ ).,$[0%KQG03+ MHGYW,HXCSVYP"QYV9GK1]Z2LXV&G0MS%46AWV*D]A!(..Q7" MV **MH>=/2+9TV&GEK@P5-M\V-F$@4F'G>-'CR*1^8>=XX5.3$"]-OZ]'W:. M=+G"*]?(#CM5HL&I4=[#3KE+B\$/.\?:+UI)J=>8UV8/<(GWJGZ\>RYT 7PP M@[3S2G8F[?G QK2Z)6@AKJ1%J9HPOE=9$\5(T9#+.%:TD5?Y:E?>F0$7)_:% M"RTX('_.&.H. 5NG!SYQ83"K=()I%($XFOKN';3?H =CM&D0O44X:[A%V#8 M/]#/FU"\7$A;8=F^:Q7:H?\U@K.1["B8';F99,7C9IM(=H0D._*VDG6]2>A> MKZ:7"6>3R:GN]M.R0!>\3\A4T^<19F^;;X6PBFM88/.M%)/6FV^5:'!JE'?S M+1> P3??8^T7K:0<_V(Z7[ILUDU8^NR[C8%&!,)W@%=44\<)$]N+R+^@N,!J MV)%U+5Y[CK%Y0M^Z]:(8([;^&\UD9E7^'%M<7=IAN)X%(7EESDLZ>@GF\TI0 M=KGN=J3,5161+H-P%2"AP'?HPV6R))NRNEF++Z O&.&M0"C"&,)-&[.N[1BS?HCTOT&<:EP1)/Q@B072]/ M+4LQGT$MY._J!D@O>+T7S+RQ:2N*R4\\GD[(MAI*"+*P) MO\3D[^JV2%\V$6,\(>:0''O"$KJL7:-CZ\2(C?KX#P#KLAC+"6YA.T=K+K/B MI?7RA_?HY1[$Z=M&'!@@A<;S@A^V7PG_*IS?&#;(D5Q66&)=XC)6%-+(((&< MQG"GJ\R=(^Q*F&9XQY)\< 2X;^Q&L.7)8@SJK865%KRU,G$,9@LM]ZR\?85\=DQ^V333(NW4W_AKE4NP?4N,Y"ZGP7(?(>G(LV,L=R&7'9-? MHESN(WSOT-DTK.]6:6HX]@D-$XH"@&@#32NSLDQQHS0K4PBZN(8%S,J48M+: MK$PE&IP:Y34KZQ& S78@"N/"5@!]VL* /OS^G(\ESP[P;;07J>D@U'3Z -.A MFXA)I](6HQW F42O?H1&>CB#P*WM=,RTV@ M!M8.R$+2J;37HBQGINZ_DBC& MDJ,%^5.0D% >]#?HC.1ZX2F$R\[J0U1(#6'MS^YWI"-R.RFIEE('/X&R?-]I MR"$/K:A@_@8.1^WHV SC>[58_^!0%G\CX#O1@RH3X!B"A;6]SU%)* M3"&QA)*-(VM?.AG_$XFMC"5E4![]8&-8 MV;-*NEJ :TO"NMT0B1-]@>-$7Q8B2>,0TMUWG/2R]X6*$K32V?1<6SJ2-QC; MNSK!!=YN[GVA%)?1V_^L:RT5&]./!%,&)%54Q835*Y)5NVZ.*D=- MSB1^!N$[=,#MTS.3$@VY3"1&&Y&5&_/0#O:7P*ZJA&ZNS$IO$M;MA%5N#$.S M28^@_6ACJVU'!&R.;,9AWE9F@VQ49 6%-6ZUWK12EQIP39N@L%IVZDZK\Q&L MS#,;IC1V(WM17I=T! @*+;FX91S_,ASI!40Q='B@KTUK&O;\0BI?9'<&']MC M@! &+F/J+:4IZ^$KTL/G\W#Z; MB!M+*%T/?;:M_\*#VQ<3<6,)I?S$IA&WKSRX?341-Y90RE_JT Y99ZA(KL&R M/J4)" I(IM=3F=[=DXUT:\8K%W4PU=,]V60R.3O3U#U9M6?QB#+6J)C2 M+UI)J7SJZGSP(1Q2D#>*GH8\8&-9/1H1%+6W??I0QL [9O SXD3_.HKADGC MSIPPKZ=1%#@0?_4;C!>EIV>Y-U-A<^'/#>;"Y:;A2//8JS!IH+5IX2:\_-K: MMM'"C;0VK206Q]MVZF]8')8DQT')L9M8XJ;Z".22;R*1KW%X\DSRHQ](\J,D MEYR8KF[\S78V0>Z_79H:*RL.1%WGZE"TJ-' MAKL0N84;Q[T>U:*?>_7N7'Q*O0(@D4N*N;-7$7B8355'-I-71>F[;[U M9T&X3)_L"QZ_?6DX?MM68L%M+?T?GLDSH-]*-WV+XM!V=KL4,Z6>1U$JYPL. MQ8H=#DE>(@\7ZN4)^\*BQ._9_*8-;N* ;,%LEFB2Q?%4)E:$.#+OU8GN2CWC@R M!&8[36C*IPU)Y %=)4\[+?1[ROUKX*&FV.$Z;=RU1X)LO@13%U54;"K20NZ[ M,GOT7PRV^YB$JR#"SK%>?8@*(*'/(KKYWP#5:D>I=O#O+ Q5*6Z?PI%].D$R MGX]ODFHGI:ZV^ZD@:9 KLJE^!*%3/==AIM4>5C8TM=!R2KD7\;SJPJ)1EB#\ M!1A#&DFB]W"#VX%)E-$BN[T198=07F.(T5WJ'B8-E:/+J^_"* [A6X+60M=V MZ",-1 ^SS.7"<_(601?:(:0&_. OP!@221*]AR=H*IFD\(+* "YUE;V'QP5J MAZ7:F^&7A1W_%B2>>[MYVM=AKZ".K+#Q>L/ARR'6X]_]"+' M3++>Y#?L>&V(M;HBFY,!%^LGT@["=E\%;+EQ.C@W=@X"+IE']O6)QSR$M)!, MTN'1.PC? OV'A\9K',[<)I"DBZ@]!%?7C3/D).X>B! ESV(J.YCR20IUSCK[ M$9Y/!-:MI0/CU%B+&&<2_U#3Y\O/QY]YUZL<1>UH4-U]A\QU:ENY984EU__8 MD&CF"3B>'45P!K$%,/H$X'O-Z[C6Y8R96W*%[ARZO/;M]##[:")MS8;O!83+ M.^C@@-U1=7;J6MR8N=.+['T$/E=+H):',)S%[16!>&3/"63R.;2\I?*H^-): MOIP3LOTQC,-J(S-MX+?&.)5KC6&J;85@[M^'/YW;W/IBWX#X(5T=7ZX_5NGC M.+C$!NVS9_1M-+.)3YTZ+Q)R"]=F/&J!9G5DZE$GHWY-WUDO9)-YA38%C.?V MYMM5PY&6I9RH)P,A8W?&W5GM:<.;D_ZFIZSX@]T[563 MO3GMT/>8A_N4Y^QPRM/#*<_PY\/V"L:VAVWZBW1@G Y3,^@Z&+4Z(Q:3TC W M,!3II\L@C.%?3%/TYIQ[0)-&<8=Y*=/K+/,0+P#VV!?. ;:.7P4^]N+W,"M^ M+S2G(+$J[SA)8596&IEC\HIPI+7RK_K/(*2]Z6-E-/OB10F^RJ9,'$V)!QX2 M:AY"D%<2J<>()^!ABPLRE5-&!OX"RCWFD[HP/GQX%<>#CD)*FD;T,>ZMTV&= .& 6[J=@6\VFBR[F.@2HI,P+ \R4\J012A!KE@J+F$>G.DU_WY\G-QJSPJU?XW:M&>_#DN;K?2&]2-:M, M95*X9AHMLV!6S2)B4][@S:WUJLYL5KJ!BU6ZZ50:>ZY2%8R9&<)?T^@,!CMV MEFTZRGP"C2D,N/RL,&O@ 9(;<%]"GTW,NU5B0XU=8QV'5D:$<.V6VP!+1\7OO M70=-ETP MA0/A'(8TPG M)X^RW>C4LUY?QB$UE&4$[M!2]1L2"J+N:>E4=%A1E*".SBK2^01>W2.]Y=WU8QA'B7<^(#]O*-96A/.NT*@CO26!-XPE ?K"SBI ?9\F M-/]V737;LJ*-P2$VM#DVK .4P+Z$9QQ\=8HXOG]^L;D/@O /89 =P]U3MTD- MPMY=R8^BK;0#G@3&VLA8:QW28 @GO*V#DL/ BW-#,:9F/^6<[,XM"X9RTW36 MBJ*/W]"QO\-8+8$UV_D^QML86*SRRK91O5V.57W9=WC30C@%;VGH_QC%SZ\* M%UMR+:DC_]3,D1N/?]UW:*I_@,6)EEQK3B1P[-]?N/ESLQ8>IUX7<()015BP M]N[I]7O/QZ=O,;LCLXP3=*HCF^!X@;F_ M=OA3O*TDEX5*53#Z,-WD=K0X8%GV";9@?CKYQRP@(9;Y'SZVCQN"K?TD>"HV M5!'Z.F5*')/-"@'XZ\C%0TZIKG.NEQ%/RSE'+_&;7_QP+OOA%C0JL_KAS%J+ M^?QP^R0.,O^R2^[#Y!GYK&QRO&)@B#9-8GLZJPQ]2<<;:21.@4&:F7(=;]RR M;52_Y*ANEOL"418[DRU%<)-2IF&P20YPH>^F508B58HR[QM?.3(H/!%X0IY: M99SB28Z,^SUF)"0J;_]3/E*'?VDZU;II:#C MN57PVW\XXM>7NYQ3?LS3BW_%7?_*[_NN]?H3BM\Z^8CW-:DG+3=';B M9;3PNQ7GM"2K^K+O\*:%T)XXI\4YT9)K/Z:" ^?[C7.RE5!%6+!6PZ>)<[*5 M0@F<[S7.R58ZU9&]Q#GIN"#ZQ> IQU * M^]J@A-6=\*-U$*"R\8V;NOZQGU7]8_7;5JCQPXLOS'C'SO#0MWLJ6X*-(6D: MMXMS*W0ZP'*ID'0\6YIPYCE68>(TH=_2\)\L?\X&YW?2Z\(_L3)]TN>MB@?: MT$G;(I GY607?YQ_NW_EYQ%ZI5N%P'1+%7$R)EUR,/"\RL-U$8?4"HZ$Y92& MQ[&<-0;5&N# A!3UV\QT)4O+PZ-0@PTE+@4X@;(I#A1CE;6!10$/4AX%*.WW M2].S)QH'I A,,:=T6S:O<]G<6FB*=< 9BAJQ_^=Q\?,_S<=+N]XX>$<@M;091$J+2P^45M6/-_'K=AY!TWIPNZ7!EC(:,$ M.(:UQC]50%.$7,O)*!O%',RZ/X.A056B;0ZD4,!\,5#MDJZE]0J"H6C<1[L: M+OO74??>M? +/\1D@*!#1YA^#O&901<[1 3W=>0T:@G##L' M?N[D%WRU>]IE%YP4._WJ';/P#Q0=)%\R9E[BC@;.()<%ST_^[56I"V0MY??_ M 5!+ P04 " "]BF%6 GV<(I!! #$70, % &1S9W@M,C R,S Q,S%X M-FLN:'1M[7UIDZI:L^;WCKC_P=XWNM][(U[V9A*QSCF[0Q$GG!&GC@X"80G( M*(."O[[!4DMKL*Q=6@55OG'O/J4L@59+#]"0+_1'_"/_$,!/T^NF-1 M<*,;6.;=KN%/Y$D;:ON8N!7V"_F%PB@6W?$.P>Y@/--I/OG!_:T:ZM01G' G MYUUT;_@GB)/ MV5K^BB[$DJ _[AON&ZU6JY\K[*?ER+^0?#[_*XAO]F-W-U<.CEI*P!4%QP/N M3]$R-IJ!$0S9-==54SMJOGF#^-8H#&._XLO3R "[YL&3]D :_=!(50XN$F+RD1P0YNM&ON M@-F+2B=^15L,]CI?@N) N"O?_%3'"GF];;"X=XNA,MW_2<\'GP;2\> M_2!PU3\PE.MX3]\G^O+HUJIKX2B2.R7J?8LC>*G/PHNXAY?ZX_??"A"DWW\; MP!,R<4,(+'QU^<\/T3*]R#U!7FA'K[G]],\/#P3>K_O.].OWWY[JZ>#WW[]V M_[V_U]22PM]_2^HRXWJA#O[Y80B.K)J09]EW&&Q[?T5/_15=/FHCJ:ZM"^&= M:9D@;J &=_'=@'/_IRI)P-S\&35H19[34<7[MPJ\7@R5DN]LD,>C/,+':N/[ M5O07MOF \:PQ7>.&TT5@9FA(DL:,>H%;^)$Q!2-^.%#O2EN'W(EN;4FT*94B M?_DCHTK__.B+_-H?\&!NL3,N#-9Y()A2/^<4>(Q'?OR.'P#!2-1A_OYU]()7 M?5_*=YSH=?N7U@>,5!VFITBL%$S^GR1Q"8^V>6S\0N7QQ_YKK09(3JDHK=U M!+UF2B!@0+A_SSFE*HPYR3%TN-)G>*]C^Z!>X(GX/>&HH\-9&,'ACWS?0J18 M::-<79#W[UEI<";H+/L_\,5Z/C3\K]NF6 M/BTN-8:B()8JELOXL,N3NP[VY%U_';N%*"* J#^(P/W]=QQC[]R-JXU>/K.) MN7?*)J+$L1_:1?B?@2O]V%Z._=P_/US5L'40^Z?C>]P_[O 9FX^NY3N;3YL@ M=+=5V$:D/U/8[DY@ \#=)U6*/\]4X&0V;P2>C>A4C3G&W^,?_]Y]=7QW>],5 M=Y^BP.1XL1^)M8[&(1Q&=K][N+9_36G7=.\!CZ_L/N\>\NM(4\\IKN#R[5G4 MF7+W6MM&99[UIZXJJ1$7904=M&>L9XE:(5!=/C8IWQ+5:1,84^#P#7G:&0\* MS38<0B,6AS1L2/NK:ZMVJR$@QR"__RA%#PML7155[_[5,I(:7=WD"S^V/W[%@=P^"_?WKV9ON=;I_]AE6OB<@WM;&! 3G]C)MK[S=<*\@?F](+\)% M_*)T1#0B)VL9=A3R3<_=&'/7*OK:L,R-,K9F'7M8K=!:X@0<4J2!5Y:U0A63 M$VO64U+^^+UK]D3,2QKYT[OR8T0@AXA WXT(A"&,)EF3&9KH2!5XNAB0I45R M.WK2$(&58M2)(:AP5![PBJ5#,IP58]0=]:.%P..Y*^G-*T+_9H M1ZA6?&R=]LY[4N0O;FU1] U?CP>HVIX"G+B9 Y18D4M0,T7+ %O+,V6*;=@=5TPESY;+9)BVDW^ MH9$:389]GT;J,M:"EW2H0+!!8G.FB(@#L76+U*FRZNE(37IJ=0Q8L42WA\L: MKI2\TK2=]L[[&9$Z*=8^.U)G)77&U^Q:B6N[=M6>5$F?\-/>MS\[4E\)!6^M MO+T0J6MCAIC -;C.H3F++OJ8,VQ!R:VQ)#!2(\FP[]-(O>YT&"9;FCBTWW?X M%=JSN_XD[:;]J$B=$*N>CM24SKET?MJ'N&&[4BP0*X:NVZGWUY\0J9-B[;,C MM=/,9MMEUU%O^DR/UE5 7R922YHW85HA0VB A]M##UV$ M!2GM)O_02 TGP[Y/(S41DD4RSZ\;M"^)V3(]*:Y$.>VF_:A(G1"KGH[4=2!/ MEB14&-$0[0YF#5NB.D;:+?P9D3HIUCX[4M.@E\UU';NI^6VHUN5F9"DHIKZ: M\LF1^F(H.'<"G"(X8+-D)Y8T$G/SH\VW;L'W%,M1UT#B3 DX&X?7MN/K'5TP MW6)(!\ 151=T'%4$/<&4P<,W'NRH<0M6%_4EZC!KN"AYPG]PM,UEI[R:VLIXZH?>AL MIP\A6_G:HH(LF%9.JTRK*K>D.D3YVX:_*Y"MKX.8'6&2<&(!E6>S 1WVNIR" M29,EY"=W[53J"-/70:42P]TD?!MAUK":0#O;CQ#W8XJ#"^/K'!6@M[YKQ#NI.I;246!X>2 M;@UXMJAIG;'S'NLJ3M97V(XKTT:9"U99O4LMDSM6E$#K7FR4]\R,]SW&SI6] M(M*BY9HF%,PV3>'6NIC*>!%\YYUYV^B^0%VP#R6P/1!#QB"&D^3/W#O[:FN MRAO0TD&\FQ"0^JH1-6G/V.A;=R:(F[+Z[NT?T"A&7IJ7HJ_B1V7CK37Y;KLM MZ@S3=[5V,%'6Q4:]N_BLE"+>VU-Z.>Y=5B.1B->Y\4_)BN\3@R2[ \EUG[3O M#P<*3,QHQQG^M>-8DB]Z;6>['_T19]M^MW6:H(=*R+#6(KE*9S575#1$9\E; M$!.[MN>$>B!K1U)]*7_V7GLWHB],=V?O!LT33JM>-6"6MZU*!\QFA5;BRERO MV_M(JN]F[_T"@PJP9$>P%57<DF7=A:'%:# >^#FLWYW%#[N/51%L8+"8"!V2 9#4U!Z1!LZWQ M7"UQE9B7_?TF]P?9P%IYC^4*Q*VIBRUYR1$+1'*[ M$RY@*\\=Q]YL_-C&5($' [=E=;,EA6N/IBUOR@>",DNKC:G"E[;QHQD,;\S4 M*OFN5F*T:A-FPT*#;Q#AQ+(3&="3D*DE85["6^U]G*E)67YHKKH+GE,G3<65 MG +66Z8H[\I4R.XK)QSJAH#&XV%.QEF*3X_3YLO_\!,+74V?SY3 MP[%Y95UL(1+,-FH#%*U.88U.9$=/3*:64,N_*U/+]C!J0D/&6O,)5=#6@VHQ M@0&BO1Y+V3PG M8(L%.W=@9DZDS05\0*:66AM'F=K 6A>GH5OI:6Q!0#Q;K]:S8EIM?,5,+0DV M?N/JAOW"%<>*GNF%\0I9+W)[\4ZM=JR%8OADD4O9=TS5\QT0M2NK0?S7_C!- M/=<%;(D4M$6W;0TG4TR;@D1&@NLL>=@OE7E=G0]\\V5]?NG1WP] :KP)C.\! M9]]F>Z]F,.]$#R^W.>"J 1.QUY#))[*TG""8OJ#,;X[1H[4Z%_:FU4+)Z-(J M7H87HTFKRF11OM!)9-WL.@MX;MXT44A]R9MV26>Y6%/T1#/4)K9JS-TL#R>2 M'B8(IC=O^D<8?(R]T4RUS;91(#AT&/H3RW0TC4J3IY):D_PL4IN2\)D@_= MF?!2=C?*(Z4N-3L,W2:X@IF%EG-[F#AFGQ:[7VQ/E,-(@-]W^2@4/'S8V;;H MNZH)7+<@1IIP-^< /52BAZHIJ;+5L&35]531?41E6'_J@H4?B48OHW^>X.;1 M]>VO=91@5_)4HCEFAC;JJ%]H8%AB \@+^MF6L)]7T/N)S0N:/1@8?TZU5PM8 M6!RP$/S,@'78] )4)@+L Y=Y^' 6@,M6X#G6#GG]_M#RB6K+AXE278)HJ#@9 M)7='U=/(.Y+LFDP%A]!S9\(<-KV X;-\;C_;:?_W66;O6([GJ,%N,DP@\WJO MW NU2HT3@>IXQ?$XI0[G2+*KF1V!X"P$Y\XLJQ\VO4CJ@A)[NS]\.,OP71]$ M+[L"TZWIH<#G@<]Y!@SE,8T7--_#IHDE)Z=-_TBV:QH?A5#B3.,?-KV,\1\& MSAX^G-?K@67K8&GM^GU("[6DH7G@\&&DY0)5-ZGZNS*,"R]/?[O>9WP\1":8@"=M- MR HR,,7'-XE^WME(\<"4"C,/.-'W8R XT MMGF]OSPH-[=M7.CV6E._(T09)=2H5;L%N&NW$^NXD]=5-L ]98[K=)4GAKSU MDLOUDA>BRA*,UH7B(&C PQF*J$%N)G>2M[+TUE5N4>4/^\O!4I;W!1=RVS@K M#XN>-Z0AV%_." 4CI\UL\B9+)KS'G&&5:\<8\M9GKMYG=H3,#J$)VM) DP-5 MLCF12[+95&Z$+'5]YL;+KM]GLMO&O9%/#*JJTM2(/LORN%;,:M:-F:6NSV1O M?>;J?0;?-88: N-@O)V.)PX"F[=XDSJ^@Q^ZS-7ZC,OE %&@HU/LS5O MJAERSG<'$EH:$K>D)B4=YUM5 TK1Q7@ZYQ\/RM2B5W!,0=\. 6PW-ZCUV#^I M!JS=BH,,)1ZE53]OY)IN1P/)GN,4SN2^7W[S->N!GQFGWF!I4W)L2 M4IO>?+>.\ZU8VO5FSK07"QW)L60>AJ:+/-Z7[$M,C$.KDO784ZJ_H#+>$NF-8,GB8FVEBF>EZ-4A([KOVE*R!G MS4.@13A/=9OY@*;P1M J=.'.DDTLN_W28_%GC8&S7K716T_%@J9JMA28N+R2 MO93ZPY2/ [^ALF?EM"65GU:X89E9K$N$,1"X5#G%KU'=>O-)#RN\J&MRKY:' M 6S/V\5B;C4R$T=A/_6DA\^WV_.G-80=FZV9#(%R"]"!NS2.%T;)&[K][-,: M/M]Z![OKUYG0GLGM&J,->^6Z,-/,9;Z7-I-=9W?]Y-B)*O ]7PD$.L1MC5W9 M>=-C<*VA)RZ";HUA?U9GAJFS2'+MNZJBNTKBNI'Q;%+K8- MX-OL]GP4JU5U-3NP_*:V:-<*73ZK,RR3-M-]9!3[).L=1#$\[QL%O]M:P&VF MK-$(Y?$-,6V<\>I1[)/M%$6Q\@#I."6NZ&H0T^4,PG4;*REM7>OJ4>PJFZ*^ M>Z>I'O $U002+3BF:LK[ UDZ&-R5IVT+5D-L5LJ-^.H 3US7VT6R,[=T>5[6 M2YK[:^TA]0(V0-4R5Q9JU#@AD(B Z *_%R0NN4@V-E*_.]0+V&C@,H/U+6W M+4K:>#(7)=-%$EL$3R8V4GP<&.4 2?7*$3O5=X/DFVHN"TS5P@:&E2O.$A=PKG^TTE,-;NO&KZKP2\>Q/SRFYL_QJ+:@ M<5CB2R(']2QC"B_K')*\7<2N?SC-#8\O5OC>XQ![8&GIRRB8M*-WB)!NRL^B M<#_#"$R]VN;PAEAE;\%Q)0^/A*H#'%@0#;II-P2#GR8R-_LDOWJ>)=[_ D]- M^!D=Z:.JJN]QSA_6-V;]Y4!UWD!B M/4O4.%/UW![+[6;$E:N5AJ%:K.;G=9(70L(>^8G+Z78F/I+P,/D_(>*7K@^] M"0FT8>M6",!&26W[X&@UBJIX.KETUG2;;(UILFS-E.3N+_\""EX4[TLCX(4* MX9_X B5L5'+#Y7*N"<51.>=B8[.KI@T%G^,+DE /?!,27O8%C9$CLD$IJVM$ MK[406+M1*O73%A$^WA[="H*"PG MZ\MZO2'W,LBE?->S#.#T@+YY!5=1[1UT]3%I>M/F*!>Q=6CLMH\/N^[![O[M$$!]0;,I]("JFI5ORKIJ%KK"!0*C]$=>&16NTJ YR=#YQ MO#)AJ+W?3N(%E7YSO#X[8'$1+DO-,$RWR/Z #FLZU^S".;:NI0*JEQUTN''9 M!*'T!);USVVL@]Q66QED0PU5'6A9EZ M( +8FW:FO1MT;USVD[%[FLLJRI*?2@X.P82R9OK*F.UJ@U04NSX1M3E@CVEW17LZY0>+\[0Y?IX^J'[WJ[&Y,]PM@ M^ 3QK4ZKK?6ZK4QAP01KJTSVRG-P0_.-!Z!2 >P;RSYHY!]FC2WL94_7/!&C:XT28[O%TAWR25NV"+9F+YQZ+>@ MF?5M6P\'JOLPN^6B9#HK5,M]HS^JTQ2F&C5)PA:-Y.VZ=!ZBG^KJQJJ_!:I/ MT.M5J00/:@/&T] J.6&<6G.N%!-7YD@9OF\\^[.0?HIP#VQXW9^+3H,&[FR& M$=0X5UFFE' G!NHWYOWA6#]-P8T^.AOZRH*"F3PJC.IU23*3>]Y,PE%^X^)O MP7<+>)0R;>CB-8@X$ "FR:4V#B_Z#E);B@W5JZ44UX\4=6/A7Q_/)RBXZPW# MSFQ$3[E07*VFC+S.!I.45KB3@>P;__X4C)\BW^*"0R61 %EN49*-K#KAJ#)( M:1TE&2"_,>^/1?EIVJW+M<5F%ZC5M)VED(=%"&#:[>#!=X.%_WA M*J7N^I&BOGJM) G[C7PVGD_42J:MN:%*XUF?8YI9W&YV%)=+ZZ2I9"#[$VHE M-XR?9MN$:>(A*:UX&B7\(I43B,)D>7/?*>/;WQGEKPQ1VBMD.:-L38,*+J$- MS"RC@IL33PWG3BNR.Y;C.6IP#<:=X]((YOC:E%BD=')@$E!]X]J?@.]33%L(>S)L,.)$ MJY3[CADP@C#LII2)) '@-Y[]D0@_S;*QJ>F4?9G18&AD((N*2XGL_.:\;QS[ MJJBN1''--%0=7(-E+Q5AOM::RQ'MU_#)G*(ZP:"0TL+((T7=>/;7Q_,)IJW6 M1Q+CF N+4W%A$0X'Q)1JIY2() /9-Z[]*1@_Q;91HA).1["]AL$$:W76)4[H M"S>0W_AV:E!^FG&3MEBLKGN+GH:JJMTE9@&Y**>4<7\NOK\OYW[AA(?3Z\JB M7N\Y@JA=@W.O.94=K1R6@E&M.;*ZP[:5Y5,*ZD>*^NJ<.PGG57PVGD]P[G6N MB\I%M-O0V)S$-T>VWS ;3$R[ES,&#>?FQ%/#N=.*[ ZP;!TLK2N/ MP*_#%D_!H,!H# VO&GB^*8]6*2V9/%+9C:-\)XR?XBB]!EKSZR _X-J:P@_K MN=H\'*64HR0#Y#>.\K$H/\U1BL-Y/R!"(0]7*NQ0FRZ''7>5ULF!GXKO&T=Y M"[*9Z'Y"=-FYRC;S6:S:*@TUNL(9*IU7:)A5>U!*J[/0?DIXEWTJT!ALBJJM?.%];B.Z*A, MI91X)P3F-^;]P3@_3;V;K@+33:_ PU"#Z#1'$ZB,"BFEWI^,\._#O0LNWYX] MLTW)G[C?$E@"W;*!]*"QGBHK>Z91GPQ97V5S)JPRJQQIVOR,2>ZAU MT/ 0Z,J"Z@P$W0?%7 MF,%;35X.UAX+ABN%"_%^RVA-YC,YN4P_=B:+WPNGS.X M]E+N%'M533$7B>WHR;?]E9CY*:].":[" L_3@=0#KN>HHA9.+!Y0 MM%*L]&+H'EI:^5$VY'3U2B&N1QRT?E9)+ M8.K5HG=U_%CH V8'3-5R6"#ZT:^?O4-KE9MIDT%#I((KZ'8=C^\)IGSON>)/3=54#=]X!-N7T/\Z M;'=W& B.*DQUT(OD.'23IB );8=S.TYDP_AB,?K84*>6L[W!:K2J3-ZXA4=[=7Y(_?\<^M*7[TL[I-?B23J@+P0% MWU,LYZB_M#T%.)3EFQ'OW,\"1+J<;NG5@@JC\TK =%F)6VJ!4$;M& Y07AR%!QF%AJ_)+1MP+=<>S-RD^L M3!7XDC6855J0.*9]H9P3NS.B';026P%YSQY\1L&#OSY;,E 4 !F"MRNM36X-QHT\HW$I7P) M\.?IM7+DSUN$OO;\Y02!H;8BKGO93KX_2:V5K^C/DV#E%^;3OMF?^^NI4";5 M*D<+P)TB$T0QLHW4!?&/]^<)GE/]NC^?< N1;**PH@F5T;21T_HE?YHZHW^ M/T^OE2-_[DH\[;>LY1P>]EI:L=$JC:?-FS]/AI6/1RYAGB_GH7$38EV:[0M- MM[$L*$7VZL9ZVQ ??.VA^).K04;V59:I]ET9SD.K&JM18#:#6WJ^FB42VTM. MKP 9O;J4Z.P')6Y]ZD=.!?L ')Y87#J<5ABXZN$EC6K.9OR8)!Q#2VSU+-F( M_)A5I5\,FZ>6A.+$@&KUJA" %ZM\9S:TZK7Y]>/4UP3G!ZT%_2+H/+V04R 7 MIJ3.X3(\Y-!0F+KM"A3><)G,%9R)023KV[8>#E3W8>G%18)N5C!NLF8&Y0!FA/&@(LXQD1 3.Z*3$HQ^ M,]YY8;2>(J!:E^V. 3=;TSY"MEKMFJ'#\YM+O3'13\#K:4J*=AFEY]D*RBT\ M*"O#3,>NIW;_^,]&ZO?CIBW@4*3)_* MC0G-[T)E-,0G ZC?C8E> JFG::C<]S$!*R,\#42BE?6H62>W3&G" M]+D8_7XMJ# M&BS:%F%W*7#,9"J,9XV%WUO?\'GSGQ=+QP>-:=.EVGQ30PD2:@QJLUDVN37X M;YT?7SC5#;/CH5[L1!8B-^6>>(]_U0?2\ M%9A>HVXO$90S*WK6&*:@8&66UC,O#R?64YRFHH\4];7K]E?:QNX3,'F"S&CP MBND32+U'@QXQ1QE)=Y"TSJ5/!CH_G#M]'9R>(EQ21_$'_>H"H]&>X[BARP\7 MHQM04\7OTH_4TZ00-A?MDIM5.)@9=!U^*E:4;%H'03\7HY_!03\7G1W+\1SU M$N?R/F&@/969C,>05N4JQ&Q6G3&- M)(*2R/U'3CGVG XPGV.!&1^,^YY.8R>8I[9HD)V*VM5T%"K11;9,6MUX1M(;[SS MPU!ZFG7."DMRN<@*;:X"^S5'H2:M9CVE!:;/Q.?WXYR5*$:8AJJ#:[#.JHKV MN'DPP+6P2>(-CF?6#32QPV2G8?E(43?>F0Y,GF">I&50+)B.5K1 2-RZ3*YD M+[GG1J0!G=^,>UX2IZ?8I]LFE(8-E!H7M9LAVJ I@8/Z8\[0Y7%BD?+*'@['BOK:=2?DRV#RY#IY.4_G MYCV;!L0@5U]0F)4BBNM0AMFB29Z%#4*>C5V2MWH(Y7=XGW:<'HJWHNY:K#V5DZ7$P:V6B 9 MQ>L54DI,DP'4[Q;O+X'4T_&>6N S(>LO%]I051LM(=>=<>3-F=[B_1GH9*(; M"-%EYRI'TO",;7DZ1=D<4=!+OFM(8T%,Z0CH8TW=JDXI0>6I,31] .$MLUK5 M?-1?A2W&L,?)/5@L%?C\9CSTHD@]140'S%#*"M55C6.X=CM0X=S0=6Y0O3'1 M#\;J:2K:7F>A26"/ @UBUZ5F;>2O>#^E5/234?HEN>A%6.6\&C Y$QL3W(*8 M]SK=$<<.I<3FY-^:Y5UZ6XYRMM2O-1P/!L6"Q@B$KOG)+1O>^--U%AZNJX)B MSZ&:MC"%@:N;BZQ,)C:IO#&32W,,B< J: $KCV"U9HADK5]CW,;7KF;;O]4,;'#F#QPT:5JPBI4NHO$Q:_TV/["ZU=0'L'?<'K)4#4E M5;8:EAPGL.+C40;6G[I@X4>BT%',?1IZ'EW?_GJ:K^E Z 9U+0P MUBD$SROH_9'H!X@BSO\_^ MVEZ#TJ[I(U3LKORY%\B^[U!L*1=(>GDPR&M0C:&+6'\%VVYB1XY>61/QH5T; MSE[*E1,\]H;]62(W]E !?SA6?X9+O>*A0;\F0!.#7:DQK$[L/"=SPXDV5KP^!B^XE!KOW&-8WVV^Z/_RES)?EL^]9?W! MT3ZKW0T"\&YBV4S2!0%H]O"?[96 ME.VM8&O6!BM.[3*+%I&UZT,_L4/?EUG9^3[[P1 2F9"X'(5!X#?8[\F,RR+( M(B),NRV:K8HL@]?)?C:Y$Y@N-#_RO1:,> L"7R[VW?.6,RWX>/763.T"UF#+ M>0Y Y$(!VM3AM,16+"^SUNK=]D,OR%UR//F&X/=XDT=@"GE9XQR4,]21)%#E M]:#MIS3\G;LEX[L#8 Z"R0MV/^(-]GM\.!&A9LU!/MOJ:VU#HUL&,YOC:>6> MYQXE]&[[1=WO @'PS/)<(7HM2=5]3UT"%HB^$XD-7#H0=5\"4MFQ#,HR;-_; MW*L]HP7'5$W9[0"'500'%,/G;W T4D ;MFZ% +">)6IMVWLH\V1G.-_W)VY= MJS1Z^9([T32#2RQ!NJ*N'FK_+RKK2Y4)$X#.>\;^H&6W[VS&_\/-=TW@*9:T MA:DXJ@YF*UOA.5:SL1J%T*S/?D^8WN<"YVCMAM'T: MU?D5AZDSME?BF"CU7I909EZJ);9N]96B>A)P"!_B$$E(5*\OG(IG!2ZG"5A; M1'Q3J0R2MTSKBT=U^'QT(E\(G6^(ZHV^MG;-=6ZH$>H\M%?3JI-%;E']DZ+Z M=\;KTZA>Q^C^3%FH$#PL$W[!ZA99<_H]7>@'1_4DX/"%FE$MWD B"B'10V+9 M&I8H[ =5]G/M@:Y'NHUTU10<#<3+S>G C@RV&RB;\C4!CM*9 3ULK@I#(X=F MQ>2>*W5"Y(-)\*_(_*7K.N_ 2@^X(%[B$BFN%"]AL>RXZ3%<:B)8U$%G.:8K M7K :K5QMWDWNA+ZSX'*&V#?$/(\8RG*]]HP5]/V630N#+,,HT\S"0L40(MY0 M6I23NR_86?AX(N271L,+E8R+Q!I*9"P?# =6SHDUN7F#F5=XBN<$V=!8(C>I*4QB$[+$QYJ4(^9IK!ET<*8HEKTE![E9 M;#CTHO9PNO'Q<;$F"6AX(;^^2*P!K>ZP/6Q.2]H0#XB9FX>[BUQB,^9DQYHD MY,#OP,HYL28D?9X?VX2O56PW.Z]V@4X7T@V7SXPU*4?,TUA#H0:#S'/R3*L0 M6(O7(72NMFZQ)CUH>"'+W>N(7OB1,'%=TC*CC\=C6P5)VDSJ%?2.H$HUDQ)L MU1/T+38$9VG!RR%#@FDD.JBGJW9B$(3ZG!%F$*H+)([.3/12/F, MZ//2EC8=QXINXH4=73"]B)C%^MK0LF+X9)ND!A![8]>GYH4 M-#6;95B8=3M9UC/7!22Q(><,J1] XO5R[YCJI[O@*A=60WB MO_;'(0RPAH?4:AJG M#*:0'NR^[+QPX?#+8Q5216<,*Z?MV>;>=&'VSD!?1:ISK6! MZ/G[\ZP\4>5J0Q9H?JE25,S*"NXF=VG.BR+NMW5Z1L9K%H9S$++?H?*5 ,[,<0S!%L)G4O ,!Z/.*I91*KK9 \G-L&<(RN4QL]S^2 M[<'#OR#7+[8)Z2RQ<%M5P"3 M.@VYOI4V.WY Y[WJZ0'$_>ZX&V^\__M,@MX2U=U.=ZV<0.TJ8!-PE._LZ9 M2UH!9J1/O6!*!PLD!9^$KNCW#M96*V1!0$IL2GC6_ M]"S!OZ.WN1QJBE@@+YO,BN6842%HMEHC7KRA)N6^YAWSUL]#30B%:F[>)S28 M0<;B<%*LNR:2V!"5 M0D:H:A+I@MP3@8EBJ!&7"<*%N/D[PX6X^;;*&P"O(4 MO9X@%!<&V+K2::^;K65B6>ZA;-M\YX1P24]D7QQO?),%):'MC@F28&!*P@NU M4K>QMDN)35\38<'+CQ:>9HEO,ZC3(_)3DUOTZ&&)ZO='_4D-ZB0=/" M]MYF_>F([6%Y9Y:GF9%KAKJ7JXSXFT-.+6M[F_7#<,X)I#V;<89*R&Y)S0\K MG9OUD\>^7O'\KN/Q/<&4[\T>?VI&I-3PC:V=4;P?M1S2#@U@84&MW/JXN4R< MCX_>^VXOQ8_?\<?QQ'S\[2CP:?=R$B7,4^,VQ>.1=WHO%PL*9=I!BW82 M>S!GTO"0I)&&D^=YCNS=7#DHRXJ^W!T1ZU'T?VQ4))IT(B^8P*@]\/$>N]7SB%_(MZ7M&(+>)0R M;>CB;KU9OUF3 T'W.#;+M$K-.%LF+C,[3SK'4F6+MN=>8KUXT/DV2ZW:G9A%=?8AM0U12PPL%)* MK?+]9=(RHT2GO@QYPC?_7U]*<]J.5$*=7.?T+P/&SE MJ([/^?-L1V=FH[6"IK3['4F6+MN=Z3U91;4]1X@/"+LO_;2*?1ZN6TV.A9>+ M$@3#7#6YH]FO) _'LJ7+=R)\RYEH?%=H5>CADLIU\D&^#Y%7[TB)$/Y,QU-Q M # -5=]-DI4K(K'JA%Z%HP:X561@)(LE=T/PT^!])%O2G<^^ (GPV?O$:5. MS+ZOE#%>9UTQK/<(SJ].%R,YOV1"*Z4&O6XIXZCBN$FHX+,VWGC4] (5:(+' M#I9X8F_HSB/;[0-1,2W=DL.'8DAND6M5:VZUIS%(=R1359E$J)2"X'D1KSDT M14 P=N90Q&'3BPQ%Y/= V/_]1^4P'I.'7K$EC3@JFQTMA;9@!FE-"*Y8#GMF M5#)_IND/FUY]E/J\F!XI2E2F48P]W__$?U3#8)!VEEN4& KFEQK]BXOIH M9!J)C$J<8_Q'32_"$Q%X;_R'#W]6\R6@'$H1V*RNA:5%M94DH[_M7F5B3.[B], M3W[3J'!>I+U>@:SY-(%7N9PQ)K/6(*66O^*H<.*F(O^)[8]'E#NA&RZX+CF" M&4(>#%22+/?6*;7\U4:4OX3='U=T&I!=7G&::W)^3ETAPW5@&79*"[\?6-'Y M=-N_L/S@304=K8\SX5#(+;GAN!-JNNWVRM.4W8B&QY7IBE#1L::& M#3\P(V)5,\5'#/G,K#*E4H+MV@6,"X)/>4CMM!3 MI8K%H '':VC=*-04B\]WT:L/W;Q-^*OM/OF6"\['QN#,8NN,V]@ : M PBN[X#?JFOA*)*[BWZR>\;NTNYS_)!7'FA'[?E2%ZLP4*-6I4-8=1A2:HS, MYNK)$[=R17^^XX'NYF@'7IOSQ7*/'/@[864F=N>Z[ 1[?X=?SVYQN#*I3XEN>,: B7:K3@+T=+RLZ3RV[W1;A%/WF/ M]>]#&=\N69.>QHL3+82: YIH%NM,_RG&-Y%S^YMW/)7F>KRKT_.PUO<=C6BN MR(;2G'6:5N%%,:.?G'[@+S6XBVQD^8X(W/N/"A"DC<^)#/'[[^B?C.N%>N2Z M#"& 5JKD*7<(#/^OOVQ!DE13AG0P\^ZR/TGRX2M'E97]=]8]Y8X>HV\V#_[K MQZ.[.K)J0IYEWZ'(3\+V_CIX1M34WC6<1:X'F@F&JH=W_^I'=,7-M, JT[,, MP?S7O^^_B?[K1@YK]J^_-JU==0VB&T7WO'_*7?1G)OY_;/M'_ AHSA@]L^/ M_^RWJ>BC:POFT2,W?]^9\9DN^OUM5V CW_:K'[_[PE0'&6N6H6+O:'H1Y..[ M1"H4HO^WGU&EJ /!N9M:GO+78ZT^IZ[+Z&!GG>BQGF7<(0=?Q=J//T\M)[+] MOL7/6$VNI:M2YC_AS?]V+>(?8,]**D61 M+FK^O_\S0&&X^-=>>W9LG+@?\#- HB0 , ]R LKC61+A\WD8YW$<)F>S69:4 ML.R/>WU?&B^/Y3CWS;T-*+8_VFI-M'1=L%UPM_OC\+$Q])5[9,68$.^Q=-S- M#LUXW\G@)QW&W.!!]^ZB=&@X M?'!K*[K=3+=6.W7L/D,K)THBI@X0-&@5R?^J)]A?%Z81J'P/_!6C[*F ][UI M^Z\7K]6LTFRFT2AEZ1%4+K0J=H=K-9HUE:^W6E]+% ML?!#P56B%_(L\]^9TD_J9P:%LW@^X0(?B1;1!Y_TSD]SBZEW W<$%-=+@>RQ5: M_4R_G>EQ#3J#8 *$$)EV+X-DI?@OKE7Z3@KI5^G,06#M]W+6.'9Y=HEBKTHMPW MPX[9/MUD,Y5>F^MD:BWJ64I[ZEX_$QX=7['O?_4CI;KZQD:Q^W;VBM[4GY#\ M7^[&&!G5]*P,;6E1),01(R+72002@BW8+^5T&2'."ZL6^Q'=4455O0,R MHA]7:Z.O9ZH('CN47YM"=W+J[A=7U=QW/746'K]:S90B.WH@,PTSH@)$+1-= MUC(K!40,^YYF/[CGS"RB>I%:GAG8EP[ MC]4?474C(N90.?[1Y@,>??CY40)NQLCB+#2SSQRVK_-_,__OZ:C.[ATHP9@Z MJO"OO3??VF4O0.;_!O_O@C*<,:!U(.9FO.31"-=S0U@'(US/#8"=.\*U^;2, MW%\$@#O7B!P_) JV^S2O_UA@G_/ZQ%5?7U)=6Q?"F+5MQ[_.ED5730!MTPGX M.>N>(QU\#>D.QJ3^XW\<#FI-!5&3'2OJW_'HG^7<[7!T, 2\E0C=X%<&T/V8 MF3"+//2=H*^$T-U&"9+\B>+_:XO0NST6-Z/9F]'VS,.?#R-EMR'\! SA;P>R M49S$T2R.\F)NEN=Q/$?R4P0E^%D.SL,H@J&8""XZD'VFG\^A&TWVH[@E>)X0 MA30I4[@/4;U-B,I$*<5FTJ<2=0O@N)G9MIH41FK(@"A\29FZ$/W "3,8\N]- M52FC1LU\QXS2D.AJ%!?!2O64C.!FZ$")NI67R>=_(I\0U9Z3MK.A/CT0F=4% MF9KK^M&7]Q6RMXB#7DF<)X3M<8P^25/96J55Z'.]@R'DJRE\\Y5JQK,7[S#B M<J5$)I!\/6)B@N]&IO&4R%+.'K93D'&C%XPN1'FS&CUF"A1!G\74+;[1 MAGK=-]CS17Y<;B;*X:TC MQ5B[+^Y#Q>:;CYRLDON)HZ=RIDV*P M@Y>+I=>7X9?[*],!49:<&?S,M&0_!.;AO(J/_/>&]01C/9Z6\!ZTWX\M?"K4 M'\'\!K<$PZVO>OJ?X>U#7[,"3. (>H:R?-,%^C>#U&X4^[[,GQ1:?(7WB!=W M;Z<;'A6W/[J\^98*54)?Z_20T*8TNAMF?EKXO/( 8IO1P@.1LG^*#&[C6O> MQC7/&-?,3J7IE!"F/#*;S7BO*<[])-*XJ/@,T="?\%<5C81_8E@:97O3 MI,L--!-5PSCMM[;3#%K6VX>L7L/JU69TO[,XL@5B>HQ4 J[HJ'8,WG=,!SY$ M9@+J#5T(N$*&(ASN"Z-V! M^^!T-*/W?R]\R_OKU\5P&]$:) M7LV7WCWG\4E^E8YNA-ZZT3?H1NA'=:/7)].FL9_0P<\, M\BSD=WE5I&5X.3ED,2YH=&WLO6MWVLC2*/Q]K[7_@][LR=F9M8!PLXV=F9SEV$[B M&O1FJ,QD(BNABS?_U;5=TMM0#;@(41H.>\YQAWW ]MS?_]OK5+]K\%=T[-L]^;W_UY=?BRW_OM_W__[7P;\G_C7,'[[ M_\IEP_[[P_F)87EFU.-N:)@^9R&WC($==O>,2Z_?9Z[QA?N^[3C&!]^V;KC\ M2:U:J5>JE:91+K]/C?B!!3" Y^ZI%RNUL7<.Y#3X5N-M[6V]6F_ B'NUQEYM MU_CZ9>P'8J@3N^TS?ZCVN0=C5RNM9G6K4M_9W=Y]X%<7W+^S36[\X;6-X\,] MH\GJ5G-GMUJN,KY5;G9JU?(NZ]3+.[N,;[-&K=VSW-O7Z?=MW:/!ZM=IXBU^W ;[J==.+W- ?QK^@MP-N5FZ\ MN[?RR]1R[@,[-?R@H0:OO?W[R\F%V>4]5K;=(&2N&4^#PUIA>A;YLZVWXDOU MJGT?EF$!J4G4@FP7UL\1)V]#G[E!Q_-[+ 1$PD"UK7*U54X $?CA.(#A86HW M]OU#L*HUM-G4ZS[O/ C;[;?PK;Y?^Q$TC,+'#KQFO;;SV"_$&_('DU!0V]W= M?7N/9!:O8HP84J_BMPE:Y\ JH&KRBI_"4[U/'CZ_?O@<_SAHW )I@S[4=V*(?P1YH1_=BC/W@^JQS M7;MNU*[QZ%];?^SL^^Y.\&?5OCH\_!E\;!Z\,V_K]U6=:^K7[[?*?ZL^CEEVM?]GW^I^'A];'VCY" M(KVGE]QC_=JV/GE_UN^OKF_K?_3VC[O>]>Y?]9MY]WCSU_^^?_]?V[N_C?Z? MW_EP\[_[X8GSU\-[/ 7!YMMF:H6'D4_T?%V_IC76KB\];<%F\X_RSM?6Z=]' M]F/\,)BW8VC M':M]=?*_HY]_'7__'O#RU?[WFU?OX[?5%N229]E!7=]!X_JBU_Y?L^?_5:O^ M^;UG6;=__GU^'^P_>P=?FF=_7EZ>7_"K _/'R7;0K!Z87_87L@-@]=?G#"A@ M_]X.Z*\OMFOWHMX7WFMS_UKNX?HC/ WYB7W'K6,7Z/;&;CM\/PAX&'P8?F'_ M>/Z!PX* 1E&_.8B"T(,5G7.'EA!T[7X@QW5^M-RP_>7OG:.S5OE'!;P3.2=VAZ<@][-Q%)G]-NM<17W^I?HIW/GGSSN@VJ_U'_F&&>HO MUT?P"8_C)3>[KN=X-T,Y8GW0^,:V[G_$>__OW0O[KX MYU-U]T_WP]?^Y1@/G!E0%_O;@[_]OV__N/W4^OE]4/W[>Y,/!@"HQHH ZM0# M(Z77YR'?O_$Y)_8OA[WO#L__W_'-A^VKGE6^WSVI'WW^Z^CY)_'/VN?;'\?M M0?_HY_U?AUNMVO].?WX<+.DD?O6]/O?#X5>'N2&(O2/0@?H(A _#2]!_TEP+ MX!2%W(_?D6-]N?_G*TS^\>R*!_;]G[?;M>&?NV-P>G"F!\#TY5M0KI:'7W]< ME5M__]F\WKW\$$SUYB6\^?W(/^)5]O-@$/SQX\M=S%Z0-8$,"\+@ MTCMKA\QV]U%M0/G_' M\Z^OP>57?G8U['WZ\\I4-\='^ #1"^N<;)V$@P%I+0>_OKE?=^?9Y]V/USZ/O6P.S M=C#\["V+']%BXV-$D#M@01=8 T#6.H==P,2@M-!6\5PH7OUWS69_6G;OBG7_ MZ1^USQI1V1RA.ACG8N(XJ$ '*0BE /2C]^W:^G0>MJZV;TZ"LGG_ZTX+Q"VKWSCSG]BL;3MV M.!Q=55H(E(>?VW=GWW[>;@^K7_D_Y/\;>D+V G)R (@-\HSLH?_@]U>!W>L[Z/&@9UWR .$)+BO' M6^4^L-!X3(\AIM/GH#\#+_+IK[?C?RI'PIC3H"?>V*JU6\LBW;[KQ,R^P<>,P#1HI=^2O>,3=HK8S MW/OOI0T*J7'*!\:YUV/N?TOB"?PW ([3^>\[>CL ^P\&@C'%''OPT<#_->0' MG(!-G. ;]RWFLO^^>V4(4/_G\NP W@[0BZS_@#X#?GT@-#'K@-/FY:-7[R\9 MZ'&&US$.A#\H^.TMC@+P9?"__@0XFPYG_E[;"[OO1D$^!LL>@*XK9MQI5+:: M:E-(F]?UQC;?MNJM:S Z:M?-%K.NV]N=W>O=MM5@[<96O;U3?R46D@V4 MF6/?P IQ31K@<5GMQV&M@Z_M.1;\Y.B^:[?MT-C=K=1^>]L6 'N1M8YA^NGE M2DH&Q(&VME>KPT!W=F +]B&// S]?_YS7Z]6/[R+Z:#8TE1;^@>T8+LS'#W, MN"ACZAVBK[1W8P2^.<(^[_G][JX%IZQ6^:B9SPM]???)9OVN;KT;=KL*O M7&X[GGG[3AZ_[6:EL07+(':HL4<)NVJEAM^.GV!D? G?:]1KN!5T%[\L+->2 M0(I-%9LJ-E5LJMA4L:EB4\6F-G=33^Q 7VNQL&)ASSTX)G=#[H\L]0G#JSZG MX;73J#2;CQI>4]A=6\UJ9:>N3*_846%ZCN?O_:=#__?ND<,NH+ - ]"?=\RW MF1ON!3WF.&63]8-QGC#HVB$O Q),OM?W>7D >P8P&=/_W\MZ1%X$**_>7W:Y M<:A2"XV+81#R7F!\\KVH;QR[9F5Y;J"I]SW-1G/E&9H=M2]#X/+_]ETW8HYQ MSOO>XK"_/K*^V%2QJ6)3Q::*316;*C95;*K85+&I8E,YWM2\N1)BL-IL]O75 MA?%I?_^K\=%VF6O:9%<%D1,&1L?SC1"L;ZIA_&B#">X8/SCS,[:YYD+=0DSJ M5!75;'LB-Y1T0,V]*8))=1;T3;M%D5-$__[[7WIN49N9MS>^%[E66=KZ5?J_ M=UK2D=P6'HD^N^'EML_9;9EU0N[O,6? AH%TFK5:E7KS];NVYUOP554!@=*K M*/G+2#Y.+&-;>$99O5;9[ANF[4= M\WJW:;%KUNY4M[>W68MWN,PITZ:?']*5!-:Q1Q>?:&NLU'9Y;\(^TEB?YA"H M$1]V&%>V82KI,MZJ5&/B)Q:B2,)@4>@95:.:$+WX=XD,E'Z^I7A-1I)0T(0@ MX^RR")^;-'BY_^'DR#C[:!RG5Y>Q *LH,A\4.0S2"XDUJ? 1EM%D#D@ M+OF>^C :?I!01,XGJ[+3LJ;:#TJT#2LZG@*81@S:^!V-V'&^@8*+^)E_ZGA#, P#"DS)1(]3X5=8. M/"<*1\ER.20QAV;SV]O0FA;^VY7=9@'^!8#_;>CCV7@$#\"EICT$B]C[M,K8 ME_W3_4]'7U!>'!Y?'%Q=7!R?G>Z?'L+CDQ\7QQ=G'S\>P]]S:FS)Z 35VNZ[ M"R.9QH!Y##412BXQU?'^"C\V_'1]^O:UN-9J,Y'[F=*7"-_S9>[91# MR>5L I%M;0R1 5>Y.#LY/MR_/#I,&,GU5K/9VMZ:C^0.LB,Y;7'&PZ.^Y"'8 M*%Z+M:,;<@[^NMH_OSPZ/_DA#\'I)REAKYM;V[NMVGQ'X:_L"$^M+U?GX/33 M['\]OMP_@4-Y=G5^<'1QW6CL MU'?G.Y4GV=&=6B'IY,\X"AG*3 &HW)Q+@:Z-.)FMC3F9!V=?OAQ?DHF,KE60 M T=@I!Y=P"GX!()J__3R"(YH7%Y= 9D!S%Y_WSX_ EMJ_;K6VMIMS6G<9ZI#)TIYS""ZR6Q "Z#E+ M.)WH7LYJ,H10C+3GK.=KACJ%()WGJA-'V:WHXO+XR_[E MAF@3FQ.2./B\#[KK\2G\O\MCX%Z'9U\%/QOA8TO7^VF=SSD+Q]FMY=1XFY>5 M$-9RPD0E[3Q3QJP_5]\(%KJ].2ST[/3R_.P$725?S\\.C@ZOSH\NKG?!'LN# MNT2L[;F*1(:'( 91<0S6ZAAT/&;I)!(QR$O@3F"I.XUJ=QH.C\\O]XU-0XR_/SB\N/^]? M?MG_L?_QX]'!Y<>K2V"_,AB^= $EUOFLYB\F09P'.GK.2+QF" MY5DY"ADJ]$2_.:$5.D6Y"3X"=)?[ER(Q/R<2YGEF MO5(%\!2H:/3 MBZ-#/;O_P_X)D-_1Q>>CH\N+Z^W=UE9KZ>9<1OG]&3I;!)!R(NX(51MQ/'Q+K-V4=9@[ NQW,A"N#SPH9%1="U /SKY\/3_Z7!S4A1W4 M3'/!$5> S^-ON4D- 0(ZV@B^,4_&]?KR#4K%_GQ6\(V%\8V,L\(_GYT<'IU? M*)=E3K(L_[HZOORQ$>QCGC3Q]64?!_L7GS^>%.QC)=0.P%5._(\G9]\WPTB9 M)R%[9;G%Z=GET<7EV42F$7Y>1L9L3 W^/3CV?G7\B'=5UO;35VYFRKD.6YE$O+BYD> V@3 MCD'K 6?\6^JXN?S>M=B/,5<7[FNG7F>\;EUO;55WKIN-K9WKMLGX=9O5 M&-O9V>7,,F6_[47UL\8%K4X_:P&W&?JW$@X7W 1[]K;EL[6(I9[FLT_R6]O' M"T[G^_'376F7L2J]$6[[_4+[O),JK3&_ZDJ=D^Q)_M&+>8AI(\2F%[Z S,@W MDIQF=1 "X] .S"@( P&O/MR^']8K_]N7_Q]^.Y7 UO#,QO> =G!?>Z: N 7G(9;12 H*0K M7L">&R"P!0.#*8$W@"'(02V)[1$1<4#4'J!A7C+/T$ M<-GK"0P"-7SD;3]B_M"(PY%!-'G?$_3CG0I*0UW?IG.LCO^$*H)7[X,0)HKZ MT^T4"90SLRL6CMCBKD7K_H.YM.Q&;M>-]-CQ',<;('7B!L91$799: RXP7RD M;:Q1P'=A>[8+WVE8+AF#K@UP@.T#S:?V7Z)+J4JCAX(%M )%]F8$7[BA/OOX MV9!?TGAC7^+3^*'GRU.7/CVTP;[/[VPO"E)S/;'^^E/KGSCH(QNH3]Q _>D- MP*3I R21(]F>9;2'M##6[SM )*@*$RJMR,?AQ#8)]QJ>D6HKQD>8E-\#/AU. MFVYJQY:&%'X^HLN[*,+ MNB!L?25P^YTK-!)P.S9:FI$_!8CP=1WB5R[!E@J]--7FZB)1:BR\$L<7/X5? M,-/T<"$F%RBZNC!NN O:D>,,\4O>QP'QK<@E/MV'$V_:<)JU\?'^P'B&BK'O M.'(:@_7P=P&R^RB0.-.(A D\PJ2"59O#DA&Y,#;]PH;S:L).# _YT\ .^*J@ ML\ON>'(T4ULF*,><5;$HX)(]8ZM6KE7K'VO)RQ:P4\<+(F+&/R/;EWCG 3IA M[: +HX.M +SME-19H(YC-PC]"%^3X\4\$ST7MANA/#E,QCV#<6Z$+ARSSQBQ MI\=RD(1^I) _@,U:-@#C@@/J0,D&H.];8/O8,#T+O14Y>ON6,! <+;;06>/ M,!?:7A0"Q8* =DTG(K%A>GW<).Q?GDT%3 U)\'-8."BG1A !'V:"]4H1IT^ MGTCZLSL&DIA\2RZ]/.!M,.^ $X1&-PS[>V_?#@:#BJ5LC@KPZ1)@ &S$&R%R MCPX_[9\_\+. FY4;[\Z@BSR3GUP<'3[R$PN4-IAE-? 7*(*TB%%T1C5(_ IP MU0&U)33:/!QP[AKG:#FR6*FXNO7!S./&&UW#4 \/Y(^3$V 'A'W?;D?$$>$( M![ ENP/,"DX=2#Q0I>&WX9 .N^1Y-X[7!B+@\%.O-T0F&78)(0/)+D!2#PT' M%#.2C@ >K\>%^D_L#\C,Y[@'U."005H<(.G>!&H2;M-K *Y/7E[J]Q(29&L MD+UI@ @H1;@ICKM#D6Z#/@"OB 7;IH"6#Z8H2(/0OK-#E ^^!RLYBGRO+V07 MJ'%=U@]0L72L@8TO!_)7#H-E"^,S C5R:)A=,JY)!M!/)@-/T#^R! MWK;%SCS;H1%N&"EW+O Y'X]@LG;\EN&1]*,^G30"/Y"XFG3RWN(=B4VZ 2H3 MXJB:7B EK12,HR_((TPQ CS%3.&ZS0(;-.!C>"393$DG!;D(2;]P-+@;V$ ( M EP!$YI3('4")?V)]#P'[0:'% . @P!:R?@ CWP !T!-T(P&%X"R97> 1B,G M%*9&@%0$D"'D2TLIA//[T@<_T[-.A"?< XK>B53X/5H8)')C_,"<%D?T:Z#$ M,8(^J;-*TIU].SXLUW:-.QMAFV(27^4(FO)SQ'RB5GGLU1LE<-,X$?FKA8='2A?@/Z#C%K2:[I MHQ,O9F"#YMD&*Y3## ", 8Q#)*[ B.0-0EV.@G]-(".U@!A3@G^,84CC".., MQ!;2'%18 #D[Z.N#4S9-GG,=-#K,\+%R&5.!AERC,BU\7RA0HBNC)2V)GB( M$@]T_RHRR!((W(#DBW"TD?;$'0".+YRA< CP6T"TUPE1O)994&9EM3:0BF 2 M1E895$#X@?SID,2XDU?]ZD"8+;I_J8>:Z%2.-C(O8.8P"C$"X -,K++C>;?( M_4RDT'"],+:H0F]/ MWYE4S]3HES[%6-X:'Y1Y=1:%.%4L)0N'#N>.DD!*%,OHNY6/H>WB:46E"DF04K^KX7D^YQP'HXM,[X5@@ M'9ZT$JD**3V>; 8Q:3)FHC4A'TB9OLK*C6WB6*?"!TH_[D=M>,GH@N4)OP?8\/4X">$:A],%1)0^IX9D0[$EH>V?KR@ ?)#$-.9R%6,U"UPOB7QH_0 M_'#0=HG;;>56D+--@ LLR_$">7Y2 MVXWG%;]"#H1!/U"/'+LM$""I1S)!F.B6\SX]DSB"Z7$V-Q#J,Q,:)^AKN+'4 MJ&IJ,:0DN=A'(6")JTH]B=JX?3-;# M,.7_XE6"1&'NC8T<"P^A=! X,U;R?-QT3",A/>-YUEDG> 9M'TZLB%7C@7B MAX!-.Q%+<@/:ZT*?)Z[S#I#9MT,T/'"M<'CP\+W3P5-69Y;<%_I6Q&3J2"!\ M.QA+ YL#<$]\&DY(O ER^N/TRC+1",BQ%0E)IW;0EU2N!*KI,+NG[ ,;=^O; M@9 (M X/L871)1/&"SCF)@PI5&^'BKTFP=$1EGV0O%8R#M1"3>4$^A0Q,"A" MSH,Q%CYJ\KV3IAK!!+['(XST@"8$ !BT9#Y&V;!(.*4:.Q,.%W)^\QM@DF3. M,%,CU01"$PH.$[>6R(I8OC%LA%X=NG!\_ M.U"R9KA&=#J446B E<>.Q_TI)Q@&':P"#'P_+(!<>?"JR, M/T\@,?X=D:TU_EP)I/%O>FPX_A"9T_A3$=W5\P=PCRZ_(4-!T"$:Y]Q7IUPF M%L!.@!T$XG10D"\4[B0\QQ:>L\YP3$U,U*J*<=GEP;@BJ8<^?23%]C^2XP!? MN15+2/SOL3\8#R[Q,^3T01#U^M(-@DX% <0#D8G$Z%!*@N,BAY30184U@%^ M0(I#V/6DMTLXK2^[2>@G-8'2GWOL5K+>QS&Y1OJ 92C MG0B7%\.6-,Q[4*9#BBSI@E.('(]P 4@MUQ$0U M" (/-#@\*20!A*XH=1&"5%I@/UB*,\G22[GY7!Z2:Z<#QAO*NE+*II!&P]! M3X79Y;H'?-CF?CE^(03+FZ$ 32($L2W0\^ZX8K4=GRQN%4[@)BD[:!R-N@$U M'6'2A< M,$0LB$3N+U&XA4,P('8(('9M8=321F%&$:@G!S#N"[Y)V=>SX5'ZVL?@)OF3 MU'0!BF)B.)#"NRD4C@!ELB N2A8"*QH=DE(<^)3F(&&=#K"]2\6S4E.A,ME3 M1A)WA?.0WZ,O$[&(&$^BPF+7DKDI*@)I$#FQSNDP%08DU! X>>LUBP"2*3[VEH,24644.H#-\%@(RJ@H[J;Y1'2E:)# M7ROY&:^O!#1V X0C-&+X$]E.S' Q<0,4CH@Y4O](0H^Q$2C=)PA2KHQ,FUP M\=3RT+]305PYQ*@'1T:$6.SN)>4:63M(YRB$]_ZGQ#5/7#$HNY0Q1VQ:B\3? M244H7H!RC1G)H4*M0N:L ") AP+M4Q*D &<5\" > 0*%_!!&5\DW4<=P32> MB7@LS)61#)58.]F72K41QT"#@%*NM86))#^3!5VR8R-\HTM2,!JBKCBJ[(VI M4Q8>0:^?.,0$/,E,!);,DQ.IK5_ 0+#3V+HMQ>J<'GX&Y>+,+KX*%4J(N]7+I_ M1 @&$9$J/:K?\)3V/=W\(W-+%5#$%I&!22D3/ [,BN@-($ N(2/5(N'40SI. M._:$YJU>MD1E0)P9A=]U.2-1IO1:)A M0\I: RI F49*QBKV: ZTRM.3.2#2U@@H2=!*CJ&6A84_.%(,B8QDTL,%D,Y MRP U0G\_>46W8Y/OS?C[."I-R5],THHMPK24.6 <=]8^SM8LXFQ%G&V%XFS3 MTC6ZWI1!+ZUIDCX@%#R4A%).B@0J36(P"W/,*=PN6* N<4J3W/PH$";&!2A7 MBL0@Z"Y<<"Q49F7>L1D[_)$GH=V'2HW*5Y-&6BG.04O66 %^C#54PFL XE6J MP2A&4.MR4*6!HQIQH86B>(OZQ!"?E%SP$(YD\A]4&VN2H MIB#TVE03 FJ:CVX 6KP0("J\5T%9Q.'(LD!Y^82MF83\'#:@I!O+HR%):H?L M5FH8XL=(F[%[E.I8Y%MR'[ G,A]%A(I2/X: 0DL8B$ANPB@3J2_N8[XG,5R' M C;DCA:25*I2Z2",/_(&^CY"$0N5MG@II9-B,$/7/=$U(R/,BM)&Z(+\5OF, M&"3B@C3@Y-<%4*QN5W9WGFM]3GH;)E;M9:Y<\U: M]=9UL]VI7;>WZHUK4#6WV]MFI\JLNBS6SX:$U Y4,3<\$BI6\N3>H H<0VEO MH^DKC^F.,W>I$7 X^W9T_NWXZ/MU;:O1;#0SW?$CRY^CSEXN-*ZRSQ8KJ%9J M*!%_/HR/&4[//(UM\IH0]5T45FGI!"CHI>,J$+4):'MWAC*,?J^%XE66)F5D M"BW$[HD$8$I^$!&31_(\=4_,A%&Q,#9Q(8D)N.7U4"4,<1 M1TH%:K2)8>&H M^:B8M>]1M![3:].>B)1O%O2E>,%E"CM14GT2V:@8!W%FAO*S]&!H!PMV)Z=S MQ4E(%XQII73DS$/'H^8F ]T!U#+00@.SRV%0U&)]#,_BRS)-)G%"@O8*TU.& M!T4$52X$3\5OE.\ M1U+'(73'A."2/&)0&46J.[JD9 8!$PG5J&XY#JC#OO#1]L"PL,N 4MAH,A2: M#)$+JU/UVC 4#$,9>4K[#D82"X+IG'TY+<51,:D\JUQ+10-MW[N% M9_)@8"$@E4AYKG8.5^!DL(Z"3.+ MR\J8T?=L\:(':J+MRGAJ_!3(,Y19--(WVWBG'7KA$4?@@PX)!/9&555B.A6Y MHSUJ*Z !]5>9VD :Y*0%)ACP MBG$RE>J1U))P#,$0:[Z3GO\^"T(XNG<4*Y>M+0*-"XGD% H^P^^P\HES<@A@ MHR3E::'H)&"&?-VR "]A1*EE)8F$I%3)^-3(A,KI0-)196%8&G_"+VB#0M*A M5\'S12!?5,F0B^&.#X6K"AB7=AKB6&A2*JKD\4JP' ULDS2Y5.!9I %)E"6L M.TECE4QP)T[KK%WL6B9[ (,+.1"IF@%4=(G"L]]4EF%J4-V(*I=\23PGQ&5**J4!E_TT0']J"T*8!,M&V2A MBP)X3"N*22U.%E(I&.FR6^+$#JJFZ/65V7 4*I^@RJ\"W22U_ X8"&K3,<=. MV#HHZ,ECU$Y5V5GGH

68_8E:/H1<3AA%\\49_09XWZJ,JG3BR&),%VA#M1!)U+_2K. MR,$<1@X2"HTP46,G3&Y,.XKKT%5P'[4EGW('< R*6%FHB5&(@'15:ED&XI3< M]SX?Y[ ]S*>U@R"*-X6X32KH,8U-)'Z)NFC:DD!/)W+ ZG!HV\*F4=IJ(.(L##@N]0S$56NF+>'"8KI*TAB01% M?R#;DP?2RB51>*07)HA\B0&CQ%\E5F-GO9N8Q^@+QR8<\G3$*>@B2P@VX(H$ MR,EJ 8L9F,&3E&74]IC#J$99Y-AT.M@!1Q0?D8I?>2#"NY;A[*TBG%V$L[,* M9^&34=H=LK\YI4/TJXH\RS.,=QS']&?I6? M(I8OO''(>U7":G<84$V=GO],!G8%.Z]&6,/1 >,-OY)^VMBW W]KOJ64IU^%YI!N@=J@T<1):=G [%*'KE&DA&^P( M*4$"-\Y%D,IWQ?@H2J=*XGNAM@=< X4,:BMGD_"7)"(T#HECC: 44J'HO(8I M#I0_@,54F+,;VQ;C2R7+I\>D]L\Q%?>.IPQ0HC!,R)-Z:\KGA0,F>-1B"8F; MD!IQV*$\(C$:"=BZ M0EA2GG/-L$S3$XSN.&(/TGQ](&BD;1,,;VA&M[U%"^4A)JK(/[I@3"3,I M.>FB!4CJ?,5-RW!(:7LG+J%361.2M"$\.4T'9Y0/A[8U_D&Q%Y75?*%\UO@.)7' M,EQ=G-'%EPN!]K3B;CXH61&08^[)B M07,6L[1 Q[BF0]&&0:#0U2@46/JQ)8JI9'C[QL^Y/ 3J2U M(U=-*!;=-A3;?$MQS:E *2*<3J'S0I)U5:/6&$,"<:*[ MA(A3"!S&TA*;S0A.:/N"-^J!L]70FHXUV5@:+]>2>@01&/HU?%%1GFXJ-L'3 MZ;EH+0A=?@2\8TTF17JR2#]]."*N9Y90\3HS*>&$LB-2*2B:1J&QUPD MWZAH)1QXU=61WY(UJJAF:-D!IQ8\L9M0XE72XKK^P;T9884[U1)975AZ(P2LB(Q*/.J*0; M;:K2I&@(=OQ4QJ54$$IR_<302V5:J;0MZ9,0F4P#J=KUXOY^3.]@.R#!Y!#3 MHT@G$X%X.*V^[*\ELL25/8X\59 D$?+C>5YH/*!RL@K(P4# X^CH1(%,3P(K MIT1Q\KAA;,+,5)D\]?TG]PG:-GV'CQY-R@PJ20?X*-3C;#CBJ&2>H]]PP-NB MIZB-V?: OV1>S>R,F4T%VQ:D$88):0XG'H4^?S1>A"4H$RU$";C.9?6D-&%" M>+Z.8Z018,&(&U'(^008);')=([88,2J"0+5@UECI&F).M*4+@WJM7D;MYH, MPC(G*2.:QTCK5GZI0+^)4DI02IQ M*-8&DKQ!T>XS3IQ4.1=Q*D1)SZD2B0_49\,3*D%,>;((U1GU<24^IQ(:KW: M'<7LN[@??])65RC_N$J50C#Q+,EE8GG\4.EO%6,?&2A5=)2]3AD&+F,*&R R M$ Q/G5QV%Z5.,&+?"A MYVK^VY)*9Q.A-BJPDC%)6S6]EOV,2@_8]S'^2BFW#]9&F:@+2R=7+B6^8,(( M:&*L%CHU4+'#BY@BV;,*N&%\I&-%3EYM0N:I:LK!=,"6M>V+M&QR;%"BHIX8 M%-?Z,T-T3E?\>-SM_%W5_>J^Y$V*6FX74A,/R/R M7 0EC<>A*UM7D*A6@IHBH70A#8V4 2K2M&0JKPH&B-XI?<<;ZFE:R6V,B9DK M_2; S$5O+N3J9(\DG=E0]4!?7=QX(8DY4/<_E<[2]UR9)Z)^B;&O]$]3DE6J M*Z[LIB-=YZ"H4WY-$MA@H>C?(]J#N<.)RHG*#W2[0O-@%NO'C5Y,2LD)M$B> MU$E5]Y9DQ GJ0IQY-1*K>RA3,NX,8ONQ[W=5;OEYS/;=3TQ,XR*R0UE!$(Q) MX=@JTJJ6YC.1=*M6=;K3ZDAZ;<\:3NCY9F'W'FV '[F:\QP4&,QY$"2OZI,Q[[DUZ8QH4D[I*.*$A#[\SU)[D*^UQ'=O0TO_\EG[ M&)5ON,1Q(4<25%N$E)1RL8BMK8./[T87EGYKIC)I6MN4JL:Y%XEH\1>OC;XI M/,N7<)(Q-F0&24$H+NXMPO4MX:8@D\TBD\NT R"YG[J@D()"B$*.5#9WR;A0 M,75JZ&5\3-*M"VHIJ(6HY4"&^ 6%G">^M8/8MU;02D$K1"NI,/&Q%K,M**2@ M$**0#_4/QIR-1B=-X@?/JVL(W8.)"S&5;X#NR)&V$T]$ES'+2+J)DB;0L7,HOAEH M)'=_)(Q##CSRK53 9P/>+LM *#I=E!<+OA*%ZCY6G2:7*N#EE%K]>MR-EARO M%*-*0X!ZX&C9UMI]:^/^FG0YB9[\H;Q5*:=6XM#D;E>T!9KD4DWB_:,=A%)I M!W1!EG9[LXXRL7WIBXHK250H%_LUJCC=:OI&^7U?%HN.I(QK^6&JRXI*$PH$ MD]##\8(:1K/-M3R*L1(6@E_0P]7XF*0G;\V0N9,X!!\I=TC%6;$#J&CR*%)Q M'UY]NA%,V@&^EVZ(-+%QDJJ42@+AR;T:=)'<.]6((!05OD0619+L>!!))16H M,BN+TV44,HOL79(4) "OY1K(OOJRXXRXS:5A*9)HD_PC1MGE_KEI+>+=H.?EH&BA-T-$QV?DIR(.')F4\L+UL-4 M&^JJ*RK21)]_38Y0VKK63$ZE,3(]IXOJ6-257:*;<8A91Z%J^Q!2]C"*P3LL M?- J*P6%5HPK[!/\CR?6JW)UXBE*2=Z];-M@N[*G+M.JKT)UP7*Z_(FREAV\ MC#S!H[QH)]$"5 F5X*U:W-,.9,X0HDM1=ZCNO=8K#Y.;@,:IZE2(MS'HZ4],IU3PEC<,DE(D-<(X0#8YPY)* M7!,\CV)8-GNF$D^14JME5JDJCWPF3$V7(LU4@XY#K1_<*O!5ZEU)JY?U/2,- M,BT@%5/0,=I,0)<#+TETBU/?Y#TO>\8;]NLHB6BY7RD]9JQ)GY!0;]J_ILNA M2X)!.?0QKLGV9*I$3X2P8N$W-JKLSTE[#$+6Z1C$1V]D@9J1].4,Z18K2Q19 M8<6#4'[3/?7"1[9/C=U/8>-=8Q\> ^L0UU1$:!M0O2RL"B]M5\6CJ(D'&K15 M(:B ^BAB[)[H79.Z$"FYXQ+-ET"UCE>#RU[SW-@/;&9\9;3P$CRT;"2.J"V8 M$RD1%UXTLO+]#GYT);@"VD)\7ZS46ZG$ DP1%QM,J@.?W-8&/&WT2RKLCE0+ M]70]BR:EU2UQ.LHIX5YH1JF$&9+<9= CQ34N>+<.8OXP*;OT7+K:4-V&*]E: M?$-9NI;9Q8LZ@2]1$0V59HK]*.@*Q*2L)3389%90FQ-RI#&L7YFK754W@EMA MF5&AHEBQ( 2MNZ+GBOMMA120J1Q]:9-+*-@^M=O$^FNJ0!7E1*+3%MJTU @' M_X[?D/>N8+6BYTKU,^B"]2YZO&]4CYB=(MNRR+8LLBUSIUU=N;:L9Q0%#ZN@ M5XU;&.)#ZYWUF\03&%^JG,@XWP.#I2?Z6B17RW*7^FL+GQQY0$&-[H)Z MACV]D^[>>H_TV)657%2KY?.AL?6H:Q*3_7"4T+OA\N8LUG-$R0EJ1'0EW$,= M)F"*WFIX"9_$T0@B1&YJ4BO.34^X"*=*)8POD8ZABJ!,6E3JS3TFUL*0_BLJ M99)VLUI]T&4W(2$A(DEQ&\?T61^TG@LY,[!$O<_X<>P05W< Q2VE1>JH9M69 M6OP-= Q4"^V@%XQ6 6D:$$@+JU<";))>V.D8BJ< ])I"L:] M]&G$I8JJK96T,D+]+F34_SA>3P0P\[#Q0Y&LN;&A2ST"ITR>N/W-P1,B(&Z] M(US$Z&DB&VER\RN1K:\<2UK@B3J@6EC_U7E$3J0J!(H\C8)^1=87MCYWR*J- MZ;=LG%!C+BDLE6Q0/AW-?Z[D6M(60_X&S%/+TWIG@8A1P'*&PD7#Q)7(GF^ MO2PN\54K&8U-LZ1WW6CI :[HK;S;50LWQ[72R)WIZJJ.QY1Y\D,1D]=NSI%1"=GN M3URC#L$J'_&@L#DJE?)FB-:/>QRRO M:389VJ]?"&1 7JN@RZ*SO*<6G H*3(@RBH;;L4,W;3!RO$7>L0-JRZ',D#7B&-J$UVK.?9J56N3EHU*G*%D&6HD+@2"EK&C M-P'3,VQ$V?N$1HP8]V@+U_Z]5Z M@V +'YK&9VSOBF^M1&>C,]?XR-M^A(K^;@EW4-?S )@I ]W8*$9&-^3%P?#7 M*0\//G\H&2QM]&:"@_=)H579 :#@.54NZG'(/319TXYTH=P/^N!.1 MRX6*<^DE&+1+333[3A1H03 MW4UV&Q7QEQN4D'%G?=7))>HC&_AENUJIJK7( M>"!\$."!Y71M?B>L>5 Z(S6N8!E!<@=/Q_:#D.*CX@*>/O;)T:"P$JX,H+)] MP",@AN%]ME M,1_5?0EL&>45A?3)71E:#L[\E-BLU)]/B*N"W#\B &YC5O;Q]]>+)!.8VO6D M& E\_2!"DPL_A'M8]@A%N6AR)VG%F@DJMVN56EZ8RL[6)*:"D-PXCD)$MS.! MZ$#EB^B*$F8(-0-[2_F!O#?'-]JVI8FK@V-=6!%=N72[)8U?JZH),(].D8] M1II,=BK-&#&R Y0D=94&W:<+K<@4HMO;$/..(VONKUQ+X@=75$HG?@&I)(E? M/H_7,3I,"1,YL/42:&FFSP7M4*5_FWQC5KUM3J;"BCB)GCL M,<9BIFJ\46TQ1;-;[+*/Z#!YDKONTY5"S:(SR([!B\3BJ4&=,I MJ%6,?3=IA!"(OFDQ?&!*X"AM3*%H_Z-W"^$J:\&Q 6+*]2_B #)U@CJ+"B"+ M=A-B).JHK6=(=)BI^I(D.RH9IRRPV,^2S#,1BC_!A-\G]SR1;T?/\#P NJ7D M&)7%)I.^J4%#6UY?+X;L<>:20=/#6Z^XAGR9-G*&?EG;,R[$E;&XP /,# SH MQD!/I(X4'Z=Z(4V^$;,GB'@*Q4O:*PH2%GX)(NP,#09G/ M+#O))N!PUK;4,1Y0)W5B#J(;<- %HZ=,)2C(,.%O[G1B,PTX]AO]9. @Q@=\ M[X+>^QJ_I\LJ%7")@J19&5FCU/6988L?HD]8QD\$I>P(FH[6! FN-BE?IE7D MRQ3Y,D6^S,OR2>TFB?I6&80 "'29TZB'CSF<(#H^QAO[U[2X /W AF=]H CN MDS67/(;G 7=MNGD');;JT6\!'Q07#V!SLG:HL3S\W=VOJ;O 0?$Q.7S$[^"K M 3:7VC M-+K TN2UD>RG^C^Y/,']27.3Z1CDJL24^[B55+)L*?+5;P*.Y1JD7J*I(D6!\BOT8-)R4"6CPHZ M$#M^D%,P22]2%P=$@C]DPH,!4!\ :$QR4?E8JKC M^JFG+S2M'("9-:X7/"PJ\ZDMW('](\I(][JV97%7I>Y4/[S+=,&[6;HH:<#* M%OWH#+-P3"K\2 PC4'A83^06D3=='$1U[/SXAB6P%_!J#JGU#K6 CG"9AXCZ MH4A')N/V#[S\'4\-#W:$O3TZ9I=HOP/,MXRV9S(J61"N9U"<$"T< M-J3HD[C6$FB9R%]=W*..,%*UF"CTR%=^QVQ'%,O22=",AG@)\--?&ENZ:T[< MT((6AM#?+6D62)N&K+P[%OLO'(2E+ZM31C>(:>UM+N->PEQC,FWM-]AK1CK)JM^HN-LW.P2;C2L*<("/0I8"\LT M'/;E;5EWXN8&2N3C6+)#\$\6EY!+EA/6G_LJ, 7R!AAR'6N+JA* M0=0CEA(KY1 CU+YQ)KG@.9+Q MRA[^ 4XA;%SMHICXEN64*V R45:,7$J@402NA4128F)+>9VF=0]3H[CRA=<) MR3$,)$2E-G'&*I#,A:AG_T:5ZXE/+_7X01]R?*/5I L8R+66*KIRQXO, KT> M;'[_"(5E^Y<;D]S+:3"OK*-Y@P]A'..M-6<]AM_Q7M@;+^G>(H)ODX[C M)W+('&"+7^UBR>1AZBAJG8!3QY*\!N945">= 2+2O%D'L\/U^_(\SWG> M,6RT\G,.6Q.#QSJ BV/X^#%4.I\+)NZ,J8ZD)$KO8>;;JUZL\K8]6ZS;5XW&SN= MZW:KWKK>JG8ZNYWM=JW=:+\2"]&FGQ_2E?%T[JWQ=&Y]R97:+N]-V%::"*8Y M$VI$/ ACP]'4E6V82@R\M55)TL2)K2L*H7HV,&*K"1@/SDXOSDZ.#_PY/KK6:SM;TEP;=H]MJ>@K>F,PKU51O)LG][VQ94MRB$3\C?7QV$ MYTE*4D;YBYD,V=[?I45Z1/U(UQO@G=)2?1;Q($QGL;"H$K5A="C+5D4CS;"P M7E1HK^+^-_+H!<8;?F]R8.-]NF5951.+,X &B+A@4'TEPAF_[N429M,B>89: M'+$^%*?RF* @D;?\ID5W-:E!D8)[7(L*?36K=NA>Z?4I(^Y.P0L>KGS9;E8: M6Z]U0(T4N&@,0)L2#1&\K5"!2?U=QJ'WA.HS +@\J75HO"I^E;7).!QE12_" M!L2+>-UQ/3N(5$"^42ME!)6"5N;A^ NGE49E9VOV*$>* M/ IN4E#(3!0RO51^(1'<&M-%[%DK_U^]_X')JI1#^]M;>R7.PT(TC[$3\C*J MB!"ZTG4J%=E:_Q[30FS+4)&%U1;*F).S*M)XG6A+L. A<4 MM0H45HE MBN-:K5%9+6L[-[(WQ_22(4^M56N55L%>"G*9CEQ:NY7=3;*-/U$G9?&[0ETM M+.-GB.+&3AVUU\(R+HR<1XV<>GT"BUUU2LF'C%Y;HJEOM29H<>MH&9_%S7CP M@ADW*&SC?&=Y+=/VW=G.6.!NBG1=$ZY8VVIB+*)@#P4Y$#G4=ROCJ0(K:+S. M)3>IB9AHI5?$> M+]CF"=:O2+.S8PB1YG-MN(Y$4;*:P8F>P8C%4M0$V[+[6 M#Q2CO+8;,O?&IFZ^U+BVT%F+<.]*$;U<)<+FR?I_.P&H7!7!C,LQ'- M3FT"S:RCQ7SLWO$@I'L+Z)HGR;6J7^:V'?+LQ4R3D9S<^3 M@7!JOQ;7=")[1)1U?-4E_T3V3A7);V+T/.)P;1=KS)AL[ MM6J]LEVPAX(.G:U0PB$X3DVIJ\RV"1>0S;3@>+E^PBOI&DD<

.H@AKBMB69 M]9]8N0CK(>]P$)76VBF,N1">JQ7+6&3_J(Q+>Y9.7KFR1_),4UD*;4R**]C4 MIH=<,]8#QVDJ[P;QM/SGE(=%GO%B:G(;<" L+\*JYSR%7;JI M,;L:(*U@#@4UJ!K9[8TMDCT\/KFZ/#I<.W4Q%\+SR=!(SCPUBQ2XM581PWVA M@%O.J"I;N9WYM09+IZ1V/]V=+[_Z4AX MD2^,LZO+B\O]T\/CTT_&F[#K10%SK2#SJO3\ 60QON3U<@@52,^[^9,'EW"! MYIR@^06XZ8+-%I;S=+.;K9^XJ534*[,UC4Q((!.MG8S MOUU@Z:225[MT?:BFL3WNS..?8B7@9HVNC4XQ;VZ7F5A'++9)& M'\LQ+M6S=QMOHBS>%(+9*NULC?<1>UHR]X#).WR9EO/NO&)+_!IA"#\ZN_Q\ M=(XYQY?'IT>GE\;QZ<>S\R_[E\=GI],?HQ0PEJ;2/MNY,@J=!0GY%+3R:&?/ M!ZTB7WD)7OBE64[Y!$=!'1M '?,)YQ>3Q+-;S>-2^=(+F3/S/;D3Q/#*29&E M&M;K:3?72HW:=J6ZUH;S2_+3-3%]:J5::RO[Z_@*RE@#RJAN-^:ZICYO5G$6 MLOC4<\NF:!-I=&R7N:8-LMFQ&5&5/I$5[Q\_H,WLW,0?]/%(1V9SBJ MU."BYA4@RK_@\SON1K P$AO31"=-SPWL(#2\CJ$V/2TD\8T]&Z:US4DK@L=X MBT6\II(!D+F#AX&^S&FG?/4>;U#.>(E]W^OP(+ ]%V 7KRZYJEFM]P-\ M$,%@^##P.N$ !X-U6Y$9!A7C8@RD^+WI]?J^'8WV<&25^&V/V; %5*=YR0#> M8':Q!YT363HH@L #;1MW.K##KOX;&B.(^GW/#Q^=O6)\G1)OX\"8C/'X?<(. M'HG("0%F)VX,H+ M,YYI<6=8,2Z[=&V]<&\3[@1L &:C',]+T@ ,IWAW#\75B))/9V%."? M$QBEM@_:/.[50G[BXDD,F),,8[#_!1" M<;2K"_F-( 9 +9CI?=A:C!!/<$=\&;9,+$2N9';*80HHR)MMCWA%/!'Q1H0% MCLW,GQ%H#@*2.);#D334Z&].>7CP^4/)^.C=A[X7EHR_OU[0AB^ M0'(O]D! M'0T3-J?HO40CD_)1.WA'X^QKTX@O#M_]BE ? $8%]#N1\\SEUHTWWT Z'O)[ MXT)11\DX.3DH >P1D8HD<<*_ (@A^\[;QANUTOA1O,*2D=+\+/ON_6_PC^(O MIL.9CPIT5S*A6!E&9J2< -77"U%Y0=("&2KN5V]JSJ096&&M.KY#^O??_])W MFJC_9<"TY^\I'5\#05UMF'5CE'G,&;!A(D+1:E7I3I?#L MQ79"0W@?6JW71O(1]S$&]QZ[+VO0E<9%V>&=<$_\2CTBNT ]\P3A[)& TK% ML5.C$@I#K[]7KU6V%X3!$36YH>&+/8$LH^OSSN^O_G-Y=C )NT(]=#V_QYR4 M>B@?@5:-]@H>K@,/U10M=,>FH? TT"=!=?V1UGWS.W2\@^HB9)&_'S[7W'^6#]3U!+KOO@H0 K_Z,'R9"%0T1RV<#@$ES@!8,"9")!_C@ YC#A! ?UDUF5TWJ8SI0P'I0BX^U^D;MM&0<^"#1D+P42PC&?O4GK )L(Z"\Y&>D^73M_B7^W#AV MS4K\>OPX>?M19E#+!S.8Y?QW8#_>@*QODB1@#=[9%JK/(&UC2YPYP\".Z3^F M"M3*AWUNO &$R2-*+PFU6)B/0G7E/NHVH$(0E:7LM%\-T/ZY3_:I=P>F)F? M$B0Q"@)"^K-L$U_9RQZ6+^2E$_!5RI=PM"(UL7[ ]]0'?7!45Z0"AH+:% )> MJ:6D&3$XQ^J!T(OH24I[TGRU\IUQ33;TU<+DA#4!C+D]S%M/!:,%&3U%&H[(S4O<60 _3[/5A"EB9LHD5 M(H*7K=:;4Y:F(;O(;H2+5R_]:Y;@J_<_./,-[EIX,[I=Z!&+U2.6>-GP M"^@9F,FS2@K&RA'1I-8VN2*B^:01!H-73!C]:8K!VM5Q%K^07[<.(U8 9JBE+)Y]G<(W5:\WS4M=W3[B]^YDZR=+I M)!^=&0N2F5(763J]9!R:R)T#9<*6Y_"@?'TD'W%5?"K/R%W4@?$(!\FV:4:^ M%).,0)6I$;Q@_\GB".;UBGKJ9Y%.DFQ8ZP@M9++U@A!>.&CS M?"I([W5M'1U%B]DE@&-IOH]\@F-E/!I% ^*E4$KD6*15X5@Z6I1GL,:2P=.KB,=.0N7+BSXL9OAK8Z.RN?>E^'>R,O>-QGOJW[85]2/,8UW]XGK$M8NDR(7P9"_U+4CRPAJK*\0OCE MA5A:Z^[NR$$X)<=TE4G90;4H0"DHY44II:A0R0^#';UXM?"EO) O)==W*2_0 MV8+W;1;>EH59SKDFJRS=,7A/:^&/>2%_S*90%=WT6WALGO+8O*7+JE;L@JV\ M7K.(5U,O^.;Z6:Y_E_=BMY*+H4O&+UN56GS)(EV)K3^8YD)L_ L.6L!=NN&Q M_KIDU%[3N_"?,1_9E'=LBZL=Z^+Q O5;%?<81EP;C #$'W+0[JL44"8[L7K)M?9JR&] MGFN7\;9IE^.F0F;CW=&TCZ[7XP9, 5OPAX837T487QHI;F1D/6 9=#'U*"YQ M#J9N3K0#&*N/O7[Q93=]I[VZ*1*6QSN 5+S$$?:B!DQ?56F[0%"FO]91+A!G%IY6X\W0!AW&,\.8X MC53"I9U'JNA)GTBJZGC.F=RMPJ%L[8I3B?^=]UB.WAL[\>0]?)/Y"U\@VZ@F MG&[\ MF&V,[8$L;W4EQI/_V5]C-2Q/1WVX_=/#_'A?-CMS:O!..:]M"MR*W- M$P_=A,UD? TS;DS%E&+/8$LHPMJYN^O_G-Y=C )NT)-E$I:,TA12M5:H3A.AJZBLSXF9V-4:I&!E8#!,-AN!Y&D,V^Y]) M4UZNECLMH7P'^&H"?H,X0=C=V2A0-7]*R,VN"[K S7#4M=(! M"\8;D.N&!([X-0(;A'(H$ !S.\/ CG7)&/J@9-YP[\9G?2 3F,YDH3SDBH*, M-[!,21[T>V$Q"5P*%#V2'?;K7O9H6)0_6(!/J6 B0F#B9OL!WU,?],6@TB+5 M,!37IA#S2CDE_8C!<5$/A'9$3U(ZE.8XE^^,Z[.AKQ:FW;WZ:I%7BQ;7O;[8 MK;M/I#X6F'@I3#Q5'EI@XN5N9W\\>[/ 1'$[^Z9AXJF$U (3Q9G8-$P40B)+ M-$R?%3RW6;$&MRSGM\9I)>_]7'A/EA>X5SAU6WF&N< +ADK.*:.XNOZ%[PR> M-P]\$@6L3 N7%2*"%R@T6JIDS5WY]/BAF*/TZ@=GOG'D6MQ:E5KI%=8C 9Z!D9Q5TG!6#DB6GKEZ\(NH<_TZL87T$4*TLD-Z61[9_"2Z>89U8UK7#1] MY=J8&G(18N)U43-=])][1DETH[J#K<6*DNBBF=ACM:GU9KWH0)!\0@/R>ILR]6W"/N5P)FSF8 MS=9.T4.NH 2$S':MZ!&W=NZ.E\SV*,"Q;"=(/L&Q,HZ-XI[ZI5!'+IP9>0%' M01V%UV+Y7HMIG,!'D>_U>/F(!2$52NYW?-B+\4;TL#IX=_3E:%]\ M/GSWZPIEF.;/XYE'5T56D91:?3OCJWSR=V(VP ,QO[N[5M^M9'KK],N[(W(1 M$%D367A M/F]D>QG/TLDH5[&5-:27>E:!MSSPG&5%8/+&6=>DN#;'>W\9'T@^]YY/OT9Q MO?W+A$@V<^^;C/=5/^PKZK68QI5+[?;9VF50Y"+ D3-E?X'5(\W*=E$\LAD6 MXOR>\,9V43NRF%#)^M),'398)&&L>!)&GJ,G>4/^$D,E^=)-,@)5IO>SYM%K ML?P82*Y$S1R\9K H MJ*-P62S?93&-_W<_L)GQE9EVQS97.RZ4$,#:\.*M(J5=CKD.9RQ=.#D.L*1LSCIPH(>&89,5\9W ML?PX2,ZH*PN/>+,H!2E*05Z>7/+ <8I*D*(2Y$6C)$% M7>3$$9*7O1=T4;A$!. MLRM";T,&R,_[>C.GO'^B(+0[0YWV\'^U>N:!@G.IC1D=W^L989<;$R^5FT;R M& /N<^,7NDC,@&\=VW-+QB]T8Y3ZF]JJ_D+W <6/;-? &U)+^&^=7L#;"TN@ M* 9];H;V'7>&%>,2EF:[IL]9P-5/#!88IM?K,Q\6''IB@ $\[/LV@ X6:# < M)G)"C+K!Z1B$7?PQ(.#.-F'7?FK[+N *Y^?W-L#?O3%,P(/7XWY0,N#HF5V8 MS0U]NQTAA)@K%M3#N)Z#&]Y!LWCM>&J4.?60B4D,/D-]PU.9J"40@+"<34 !#7M/OP;KP#S\QB)&?!2:,.,?:!VS\)G_ABQT9C[YL\( M3II8;O[/%1@RX[18GP"9VF)H<0I2K&U5FOKY>I@,1\]+0I""#%^*T!X%X?S$ M55\UXIJ3:6-G:H# #>QR#I9-'8LUEDT-;-,L&YN83N;8I4=9ML5'6/8,_!HW M-N#LEKM(__+!!Q]P&72-/FHZL#_N._@M'97(]U+CDSB[ W2<9BO2 8F\3J= M@(!8Q(Y#-C2$#X"+D-.+LMLPZL['5 MV1 NJU;KM9%\Q'V,P;W'[LL:=*7Y579X)]P3OU*/R,I4SSR!U#V? X4"8>/8 MJ5$)A:'7WZO7*ML+PN (RVEH^&)/(,OH^KSS^ZO_7)X=3,*N$&RNY_>8DQ)L M\A'P*[3WD/(/X%L\EC'NV304G@;Z)&CFDU'/(?;3?9MF,=":E6U-V&-3EA'S M;#?-FJ>TSF)1GXF]CND95L1.@O@2_;F5YBN8^SXC7SD?]3_05$ [ 1 FT)LQL(&0%46, M4K,B="2,A# DA@(0'<\',+E \V:7N3>@)Z(#;'VU_,S/QS0^ MLEI"$R_.$)[/_%Z: \R"_@X(0V^ RR67.>S;N[,M6 N\XPSAN" 432\(4]A\ M V"0^* 7A$@-?B4 "&,)5"< *4 -S">QM #/"GTKZ .18-DFOK>7/806Y;07 M8%+&@P@[F;C]?L#WU =],:AN2P,"%4U3**C*K"+-G@'UJ@="KZU?B\;( M=\8ML=!7"Y,3UL3NYXX//9E:JBG4VI0>3-,!LE*05']3&&M/6$\# -V3AHLT M.FEB]2IKDY'.%VS#3*0:\2)\.75(*C$[%YSH6F#BI3#Q5-5Q@8F7PL132;X% M)EX*$X6OGQ0S%'4X ?G/D& M=RUNK!K5^R_C%+L/+8PG,=0W,#>A)MQ5^2RB2$7E?4%,>2!&%:#+:RV=V1.XI.\ODVR2S[WG MTR/RDO<-;N;>BWLF-W/OJW[85]1AL=1BE0O9$'3MDDV*:I4\Y*2OC(^B*% H MJE4*8BBJ58K,C$0G*,I55L>#L*0+IQM;F*U5Y%_DSL)\J3M]=UJ5K=7V/.0B MP6)=R*&ZFW'V9M[X0>&02!>MC%THLG:.A%RH#RN6#K[ ME6Q@F?2Z>O7)FC M>2:J#.44:"V9IX4NG9!RH*0I7BL*5YRLRC>9.T>NC M*$9XU)BN%KZ5@EZFII=ZLUJ4KZR\\Z4H7RG*5_);OI*IU;PB[I>I(%.4K\S& MLW9VB_*5HGQE!GK)JMPI#SRG*%]Y:*.;7- RA9Q9IYJ79V>FY09>^72_Y 8\ M2\]PR#US;*@41#+JCEEG@F*%773++5HYZOO=7@0P!?,23)PF&L97MCE M_MJEX!2U/'G(V%\9ATU1OE'4\A3$4-3R%,DJ3ZH*18G/6CA,%EGB4ZOL%FDJ MJV7#9MH2*.:P5-30:R W6V)M1^"[2]3W])>D/2P=2+E2*% HA_QD$QPR12Q0J<@A.*"G,UPCRRUUN;2 W5L[;);BHJ:/.3-KXP[I"BB M*"IJ"F(H*FJ*/)!7[\^+BIDU<#0LLF*FM5WD>*R:F9EIR4R]F7V>Z4:QA[4B MAT:S55R*LP%.B*1HIBB**8IB7B*7M-8H+L,I*AB>*Y]JU5JEM79^C%QH,)M+ M5*VB+&8SW"%%64Q1%O-\5::Q4R\N$BX*'1ZSHNOU+"7*QCI5-H5>ZENM++7: M''*43?"Z%)4Q165,;BMC=C)U\J^(_V4JR!25,;/QK)WMHC*FJ(R9@5Z:167, MJ'+S-F2@QN9>&;/LN_>_P3]J.-/AS$<\=>6^TX301O)S-1!TA1BI$^7=\'+;Y^RVS#JPRCWF M#-@PD"!IM2KUIK)F]F*KI2$$?JOUVD@^XC[&X-YC]V4-NI+.RP[OA'OB5^H1 MG6#US ML3!+>\[G#0ON.X]BI40F%H=??J]?,]?P>N4*HXK_P-7<#/A8'GN8P&:;G!G80!CB0Z>$'@@ZWC- S MO,@W B80$'9MWRKWF1\.C9";71<.UK7>*.&_=7H* M'VHEF"'HARUV"& MXPW@CRE6Q\+09V88/+ R0=PE AQV%35 =0G8NI"B8@5QR]1G\P(;135V815, M =-,(M<% 268PC (>4^<:];OPZJHF$5OU0J8#CS7Y4Y9,11^WT>4 9)=,_)] M>(($X7MW-@H^H!"XQYC:#1FP2.Q MCRJRCUW!/I"-3,D^X%0PQRD12Y!KD[\DKB1$*+YKV#W0[Q&M[2&]#<=\$';Q M;7F Y<_E7M16$.%6A.=4"0[B$8[7!EJ#$VQQ(CT'L,&!$C!<'1%IK0O>YVUU M//,)GOD 3EQ1R>@RWQHP'_$2P*X<.NF(N %@"?\;OT"L8EWP]-CYG!9W,Q_; M9@..;7-+'-MF[37--L6Y_:Q0,&$-X;"/)CH12R,=I:6[B8.90%M&Q_=Z"#7;(T52?H(1&*X\[,)A/YDZR(#BZ0"N_U':V*SL >V"VGEN"O[>:E:KZFP;X MI5;?K=3C1U-2XS@(Q(12,"B!8GH@0GQA:=!X?=^&70)$# L$!3P%/@46>0"O M=#FS3##FPYB927V.W\>* BDJ1'A(6/H*&\:^^3.RA?F'V^_:"#W+XJ2^^-X] M3!RB5/MENU)3VWUX(\P)O,=V(PB[QQ7= R)I.7);S$#MU 8D)=^/KSZ]:(%/ MHQ,YC_^J/OU6FPGR!;+K":I'4)K_LSGIX$V@NOHHU=4RI[J:HKH94%%K5AH) MV5V2/0;+L/ND@+NA;[>C$ Z?I"W0E9 !*QZJ%HQ[],:A\.#.!\2/IZ'%]%8J M:^]B;!8NQL+%N$(NQFD)&SE+QW- !T0.02$,:0"0EL&<(>@>Y&(99R-O@(]( M%D6O6# .\V/5D.E*,C(F[&01*Y"_DNY CB9B,\B5+/0:<&LO>^&RJ'"* )@Z M_2*UR40P] .^IS[HB\'S(CD 4HHI*"Q]-K6XESR9XWPR]-6LF]&":#E"/ I/ZF_*@]@1O&P!2JHN,/%2F"CD1%XP\50.>8&)XDQL M&B8*(9$E&J;/VI_;K%BPPV=&5SX.V)H%8OFN,FQ- 9IYJX+&_UV5WDPC4'DZ M0W9V$/W!W(CY0Z-1*ZU*5>$34,DEJ2R!216WNNA:,'XHYR@E^<.8;F'UI95HE6"@63W-$&*"^@ M>&":P(IJ'*M!1).JV'-%1/-)(PSIKY@N4I!.;DBGMBH:S#1T\XQ>*BO:Y6"J M1(%4]+[H+%ETEERI%M9+)[!G<)6B"6">&F$OG9+RT<9I8XDJ^W;:2Z>H#-L+ MY-))D^/[[8K;/C=S[_EL$KE.=SKF<^_%79Z;N?=5/^QK[-FX&*^HC&L<"C_' M"_DYUM./L;5=V2[<& NS.-?$HFQN9]]9>NF$DEOB>D 7E+ L/TA&W9W7T?7QDA&. AS+]H#D$QPKX]9X21=Y 8Y\^3+R M HZ".@JOQ?*]%M.X@,\?:DBYJ,#*1CDW\^B6R"IDLE.M-%>E@"57\9%*TI&B=*0H M(2A*1PJ\%UZ+%?5:3./)_?3TU5IKETB1B]A'SBR!!7;"V,5B\Z*"9!/,QV=4 MD,!8:Y=UD8LXROK23&.[TBAR,58\%R//H96\(7^)<91\Z299!4VJZ^[36'Z$ M)%>R9A[W=K6H("DH(5-**"I(\LP@BYJ2/-64++LE7S[!M3*.D"57%134DV/O M2%[ 45!/X2?)OY]D&J>SZ' ^?L]YD;&QKHZ0K((TM9WMC*,TFTDC.;1TY_>O MU[::E4P]9$7VQWK017VWDF'OG55G%BOJ&\ESX&7IP,EKBDC:)&F 26)Y4=OA MN;BB8&%QFD:F]90KXCI9?NAFU>@O"R=_(ZMJAIPX67(5 =I(@MHIRF-&E:6W M(0,4+P"#_T1!:'>&"]/W7F#!1&ZU>N8R=)H>\=/XF S;-9W(XD; '.;;/"@9 MIM?KV4%@>R[\$82>>5MNLX!;^ 5.P$+XBJ;VPB[WC3[W \]UN5/VN<-">C$( MX;=MAJU6VDF/E9(1^NR..]H#9M&Y"7#]?=^[\5E/; M@?6>;]$HRD^_U/)P= M,YS-T+ZS0QNA$ 2>:=/, SOLPD\=!\=+0\>+_'A0^@I&LR(S#"K&8\ T!MSG MQB_8.-T Z#DP>\GX!3MDJS_IA[]@_^/XB>T:>.]M"?^MT_=X)V4)M.N@SW'A MW!D^,2V#_X^@?5!#%PNKU5\GL]5JZ@\Q:?+WV-R778ZH]SE@%M\)'EN+G( ( M@/D YM 3DPQ@E7W?AI\ 71E6Q/$;-:QE=#FS3.!O89HR*OD_@Z_>SP&@^BB M:@0@Y@3>>D)I*DXU=>>EJ=B5"5S)#D(-GG P$MXU/[NB \;-KHLRG%[G+D"& M R"1-:D?C3$;9"N^OD7)5E);39A5"0_V !@4_E=,W/%\(^S:OE4&V@EA0U$8 MP*@F3X,+QKVS0;D"?O4]KN:P@+H<.8[:#A"7_Q#,)S.FBO$DDB0;Q&9(&AO$ MWCAI-HC]469D@T_//2TO;.J\<&N$%VY/S0L?A-Z<#'%U#_@X&YP6-@_PPFEA M8W1 U,.IX.*G^^;/"'0$/,F!HJ-ZZND* ',J;CE# =?R^>7( N,W4TP.^%:' MDSH)V^IPG-5V@\AGKLFU:1[8;,5X!")B(8(S85V2KJ"!L9?\*32T[4IC1M8T M!3:F9DY5XC^F;+I.9Z_I]Q6&@BZ@E_7R45SP\MMP,%MF75@E7O,&;!A($'2:E7J MS=?2);87N[X:PK?>:KTVDH^XCS&X]]A]68.N= B5'=X)]\2OU"-R=:EGGJ"F M/:(;H%8<.S4JH3#T^GO <[87A,&1L]C0\,6>0);1]7GG]U?_N3P[F(1=(4%= MS^\Q)R5!Y2,XR.B.0B9[ -\"^20),VP:"D\#?1(T\\G!IM(OSDC8FEV8"!8[ MBRHQ49-@"?<:X5-D'$EI*GA?K^]P_%X:24K.ZF.0]\E%VQI52IK1HNPGU$@L MA!+JFD(%A+%#'PRMB PTN:.*SD]'5I0L7/F\F'5G!YX_U)Q-_S][7];<-I:E M^3X1\Q\0;M=$.@)B$4G9FN3O3=EOR9/>3 P0N191!@(5%,NO7S]GN M A"T*%FR21FS9,DD>'&7<\]^OC/-LT_P1I#CC@.J3>O@*2!YX>2F65H5VEG% MK]U^T3TBU!L7[0P[#])+ECXH1V9!G'M700)"!O8$%ED2]6_:2;*XW*USK$<< MO20Y6*I+F0,,M01=)LZJ(ED=.$MJ*N6LR.%PL/-H ],*C.G;\^K$)XZUND%I M_\5*V_#6.AN*\4A9,9[57KI17<+ARH8&T/;3&V5]@/.IDI*N1UH;;RO:EM?L M@E27?% @1_@ M,.0R E7A,A;O(' )X"QIL&!#AQ7^$ F@Z3FJW1][K:8KKR(U3]:F\&;->)Q< M+7'Q[)"*LZCGO6ZN4<8&)2^-8%+ /X%ZS M*J''^0K!\Z!\$A&[&RZ:+ZXLT(HDSP7/)E+P;83TC6=3Y>X::YS@1JJ@2_7T ML-\;.MQAB.#6-/F184?-53XZWE,)X4\@,?3 M7 ")#+8+F)PQ33?M[Y;3;&%&C6GR'(>WGJ/#EC?.;["R\/L I:%).I>E'4R1.=LKO#FYP&'%&'S%.S!%7&,+'>%<1CG8;4H2G1M MX =1')),G0%.HR<7_1](^G" <8[[3H[=ZQQG$V77:+,FN"V(1:<9NO%"\R$$" M7[D[L-(\J;Z3/>\W^\;6R]R<-[$*,)A KV*.IR=%+'6N[#2,"F>FVO/>9%\\ MM,;;G WVYL!4I@JV!+T[:ALQ:H>1;\FGOS [I!_QS@"? ],-J0@&)B*9 M!@G=/QR!^7-3K8N_,'*KWZ:AQJ&=6'\7C8,Z,QHE'BAU:A]<7EL2B:Q*N/[M M*6-0D^&#I@@?W($RZE-"78MYAG&W8"3 MD'8HZ@N8/5ERA1]0'L,L"$D$^/Q/>AJ8ES80'->?%T-*AQN\%AD]T-CNTG&\*->L;(+=J" M")MGY/V$Y$4)38.S%VHV$Y^"'HV_>?GBV>W46IJ#M5U=)X,,S'P.'THT+T2A M+S8L:@O,#3/^29(5Z"-'92%FX7H=Y$9UW0.B-S&!KS@K[8K82F5O'$' /[C= M=L-3K_Y\=;JV[10*T(XG?_:.""P^:LK:#4S;B>7_*AC-G M_?;O$3G=E8?R?1Z]T SQ]B)X6&-'3P=C)U>-8Z.W3EX[$^;<>B(WXJB!-R_<##1*$!/?SA M'-\4D4/2"RZ#."W,K&5^>T [3WZYQ8;?[!8 G=:(5[J2]1R05LGM# 8-@;3!ZHIF(WY*!F-K<7A*.&+3IIJ.V. M%V-+.?ARLV%R)Z_R/6C7Y*&C%YF\+-#U? _32V-RF62S&?K'M#0,:@Z^4.4E M?&Y9>D/0:@Y^;OUF9JL<$Y@)'R92Y45-\2OC!5G4CG)I)/9>2.(O'?FMU'U] MY*)_PV[5]KRNX>Z&3'9/^&92;1#(T%W"G4V6;TPB]\C3WBBMOMW!B]8?UGC7 M\9K/83*\,?6ZP;OL?&Y((R1Q@[\1;=V2!>@EU^4(QU?"J= V?0Z M8JH#K]9?UAI(ZWD[>H =,#CD+7&YRH18O25U>1M[$8](AH)JP-1Z_N'2H#;3'I]8VE MD&:I,B?C!1503M_KL^:,V_A?'T[?7[QZ_\?_O'WWZOWIQ>LWO[]_=?[ACXOS MC^/)XZSO#D 4A;M2R4,_U'^YDT!\A5P@M\9 M>'UU MR?6!-T-_P(X/^J3F'G'*^N69=5=5F>N).7?VR;9H1(-)[VC\)0 FAUDXXZ/M MA\D5>MOTOPDCZCG[DJYAGVYTXSA\S3P:3 NP5/><-"=Q"Z<1'.&G\CGNSEL%PV\T*LP0__/?)O+'=[P-:8>?--.?"=;',GM^H6PG2Y MU>Y^\^U[$)+^/A1\^+>.1COAT0F/[RH\-C9C_2KALG=W$Y-R'T)ZW'%[]XVL MO[< N6F;'Q.=CCH)TDF0KY @#Y/"==_WY0%Z]:(&EA?EO;+YCGKNQ>FT%]1S MKL(LC3KRZD4]'/IWFTU%/I_E\<\O[7ON1 M/PJJZ!2:CJ?5D"8= M(76$U!%21T@=(76$U!%21T@=(76$U!%21T@=(76$M&N$=#='F@4O?/YO8:C4 M;/;0FU,#9SOJ#?5^Q=3#\OD!?W1[1+_W@HUZWPZV;[M#.Y&J^56>MV].4%^Z M;:/>4>.VW;QW[@*7N:)R-_BE=W+L'X^.._+Z?N0U>B/_ MB+Z._9/!H*.OCKX>AKX&0W]TU-%71U\/15^'_NADTM%71U\/0U_#D=_?=_FX MC<]F&V-:^V0ZXMF6> ;^^/!HOXFG8TX[3%\3?S!>9TX[ESWWD!Z^WW/L4\N_ MV[,TNIW@P-^WF/,^K\/1V#\Y/NEH8-^2B.^5!D[\0?_>W64=#>P3#1R/_%%_ MW-' #TT#$W]\?.^:=T<#>T4#Q_[D:-C1P(], R=COW^R3S2P-X5&CXM,1O[) M:)_$14@E(.)QVE=)1R,Z6<^*.C>W?]=)3R*"GE<#+J**6CE)LH93SPQ^,]#^)W ME/)-*&7B#QY%KO;^.!8>,3&-_=&H(Z:.F.Z),QVVI$;\4(E";U3IQ6F8+=0> M^7EW1G _GC2AP;$_'MY[1N^/0 ./QY$_'(&F=N\>I8X&]HH&)O[XI.,#/S0- M#$[\P4F7*O9#TP#*@L&]5Y!U-+!7-##T3_I=FE"7_W$#F1SZX\-]JC#HR.2[ MD,F)?S19=]W]Z&E"OP9%''HJR%,8O?"6*O>*>9#?NSOF!PVM/.IDH7YO>._B M^0>EDT?MZ 8ZZ4*U'9UL02?['EOKZ.0;\9,N2:BCDT[N='32T,RF- M]AR7JB.EW2&E]0#(#Y4<]#).JE)%W\ []2.(\,>3+ 3RNDL1^*&=^0^AL744 ML%\4 MC^5\ZPJX!_%L^?[[?G<&?F\ M:TE#M]N*^]Z0'YH4=LW#W9%"1PH=*72DT)%"1PH=*72DT)'"'IONW[=GU=W( MY7OL5D=*'2D]PC0<[3CS#K?GU50NMD?.U)T1SH\G^^9X[$_Z^^10WQD:>#S> MG@TUF9UX_ M0C(YZ1*V.C*YD4R.!_<%C+S[V3AW\<-(:=1^^SAW1A#O6L+-_=ZF0[\_OG?] M[ >EE%V+L=TWI0R&QQVE=)2R!:6,.DKI*&4[2AGO.21"1RG?C%(ZGM)1RE:4 M,MIS2MDSS\*C)J;Q_;LN.V+Z48EIYWVMN=[[[E9_ZB* M,IZMFOZNP? V^_WDE_?J2J45UIX!R7GE7'EAME@&V.+^2B$P4)Q%A3"[&*;;KRX$5Q&N8J*!3\X95YD!;P99REA;?,LU 5!3Q( M[\BJW/O]CS?>M"KB%#[WHBRL%BHM/?4YG ?II?)QK*2B,CB4C!K><,,%E;.O7]605[BUKL_&O6^,7UN M2Y)O\3!4?A4#U=C]"^'I&/[RRHSW9Q&G&3X8%%E*!P3K+NA0F&;RHM2K==:O M@G#NK520\XG%!1 3,EJ@9WM\18+,##Y*LFN"QHJ71*!70!FX(4CP<4[D4>95 M^,D#O@7#\H6@UP>7ET"K0:F\M%I,^=6U2S&#H9F^^>!NOA5F:86"O8CNNK9 M5E>[$7!!\5S6-AV(EK\*@SR/50Z?Y'S!YW@ 4:%I&78CA //%C 3/*D<-R)5 MEUD9![A@X21F#>4\SK=8 LZZQO6C^.J7_PO_T304)O LBL>Y$-H!B\KG(R0X M"5CT^W][D/38$(Y'Y9K"AV,GY' +[4BO<#\(LR?+G_]:G M__/"V8(YU14_'Y*TOU0'4SC@3P?!#&;Y/$BN@U6A]050&#"&D^41?-772\!- M\R:]X^._>?9/7,?:OB^"SP?.[M9",_PK_1'I!?JSC#G=\UPE)&!P[-JH=(1E MMGP^'/0.'^@$&Q)SY)Q7<,-A>?-'W3UW836.*!T,!@V!M,[E,-OG_5H\:@F.]J M1LN ";(.QK<%9LPJA/Y!2AMN)J1)""8E?^ZJPE2_ 0[IHY;G.](6=?XZ3VNCNT08@Q/I[ [^ BH MZ06I[5IS*$2/(@4BGA)&J5;=D2W 23X=]H[AV$ 'S_ +,S+0 %!S0,.ISTN5 MXDVQRXN_M$-W7;P=?JZ"*,3K=T#$1?M9E# IVX;9NT;B2XJLU8*ZC_FM6V%Q M>@4@=WD]ZWM;@#+X[^_#S].)X.#C^>C(:CC\?CZ2&HMH?3<#9YPO+7D;IW7V3/JAA:%YW83U"UH0<< M2=T;G*A%BS2OZS[;J()Z1-3_UH:C5_<.E<[CF4QZ?:,"IEFJS$EX0064UO?Z MK!+A-O[Q^K\^O'[Y^N)_3M^\/#M]]_KB](_WK\[??GA_]NK\XVAT-#R1/73T MUP?QR$RW<+Z)TC7-D@A^8J;NP=P]F;QG9O]_?YXRO3S4Z??W^?0?^C@?NX/- M,0MBD%]QV$:A9T$Q[QD[=QN)_Q?JE1%(PZ/#WMC(0^3I3X>#D?-1C*9[,2?O M4^G]1Y""T%AYHX'/,@-_T?APB I#L50ARZB>=YHD/ 9*L+E*(A86('I N!Q, M015$H3L-TD]>$)(4+'Q'6)+(7P3_ $7K#&8?Q4'J>Q_.Z=6OJCQ;HGL!?PWB M\@+=C_BJ:9 $Z/.R(I9<>\VIHD!<6Q/(P:>'HU[?[,&:X*977*H4%08]=,;J M _DK0:[&I-%FLUD!$AQ&I)]4-!%8B.NT^]9"\L&($!2,N/1F04B7K7<;<,0$_+DBMR7!H]+:R_$4]F"HK)51 G9"7C3O,I 0%F^3+# MX_*6%?P%VMVZDS@%DA'7:)9>9O@GFD[TJF")*P?54T6L!]>.T'N;>B_!0"(K M[$A?@VLTJL!P0,?R:F\#%:DU^';T,,>9[G6#AWW+]S1!;^HS'#Y M=F_%6@0A(EY_,P7XZ=K9+8(8[D65LB.2342:$1F>2[#LKF!T>6F"6Y87;(PU M%QCB95>H8 :TL3#G0":'+Y[TG1?WO%^S/"',M#DDN>Q56.42B1#7+\PU MOU0<#'S]_^!H\O MDXK"(SJ. >?0QT,93OHX*;C*2[A(95&?(7%*7$^JT,:?EG2.$3(KMZW$5,$5 M5F:S?+0M\.)&:IFK4!S#=!D7N$7_"CB2 G<@4G"=K5W4V#(B:1CX&O\#EX(- MFP+X93R+@<+H\(%0"V,PP3TH-NP_"#B/0!>!=F:*CGFJRFMT8PQI*\:-G;@& MZD0:9@*C/4&* AK(@^M4;E;1?K_1LJ6[%*H<_Q#3%[E$CIM2H)5+/ G83Y#G M2+/:< => O]4N('X[Q H&TZTW &#XUWJNL]7@IZC!K5U8H"";* MP3JG0LE3$Q\@L7O>7T(IN-T84XOIUX9_F8W<>$$W3X=98V/DP(Q$LH#^AIG] M^?+_!(OEB],].*^M%(;S.5S: ]CE!3$'KP#=<(9>/E(>J^)V&BU(X/^H@#D/ M#FE[^R1^9W&"TH9D>P(O^/(+$3)5>+ MRV&XBGA%A@R5#C8NBDJ)3T8_0T(FQ@OYW/LI?H9'OD O)&&WOH"/X#.XPS $ M_-9^N(R M1-L$;S3SE5B("?6XW71B.00_'C+BK<187O)2J\PR'@QR#$ M0,\OE#OM1;!"^T#_IE"43H?Q'C+2>02?$M'D*PR'QNS2T&JRC_XZ6'THZC^J MRF3%L)<$W5*P=HZ]T8;DO$-K2E%1+9<)[5'1%+@4L%VA@XN"[QLD[P8Q]%C4 MV#=T"8%T8.6*)6CN3>/H#NHK'(-Q'AGO IQ>"B<:DB+[YNSUKSZ1J6);G'XT MZ.M?P:[#"8!E"5.IEF15HW?E<[Q@ CIR7+LU8M>6]ZWFFZ,OON>G-PEXR]#ZSB'RHLZSX% M')A4+?$=PW'!2+7&EK)<(4U9)T5L5I5H 1\'#6?&D>,B%"E)*\A.6 M90\?GL-IO$U+S,=@=Q)/\ RV+J8T#AR/QW%6;=[N_.0T6L1I7,!\RBQG+E0G MWCHCTB>QSHUP*Q\+W_FK[IJ^';LY;0WG^.2G;OJ\BRHG+]]/]@77%GM5_;&,J[(57S5@4T#'&3'SOZ7C2&]8^ MEI$XHYKSDI!T"HE?C7M'[N-+=';'D7'.GJW/N&TVAT=.H@@,$VE50#)&8&+' M_=[(?0383([,PAV9IC3H]PX;#[(K:QFL<.8][VW+OJ,O_Z[QJU'?;J7?!;"> M_/)W)]$,+67-X*]TX$>"-,XNX-$M8/$4NY$SH<26*"[!Y@1"@#U@[=&E(,V7 M:<,P2YL*&*[B:'VC?1(O^'+BVW6>AJ^GI#V,.-$/4?DD;R1:Y&&\1,4/\_ X MFP]>8(SP8)I=*:>DH)K-X =,]3#I2,)/LRJ5T)3<"9IS;5UXV W"]$V"=D5Z M#[!SRA&"Y;1L4^&D#MF0!L71>"V8TC1520S7JEZ_P LQL3)-KNYJM$M8F(56 M8I(,]P%D$?YNH> ,EPEH42K2^68E>MY93S?[0.)%78(NX>90]D!O)=7&"7#, M*CI_&S $R4W"VG:,!^& M-!WUQ5 2'E0(!$2S+#%2A)(2_I=42;=D0I,8Z/\):C$;YHA/ L.^ WN 56+/& MG.@BHX"0Y>MI5GI@!^(P["EP(IB)NL28> Z<"*D)T[#I$L6:F:0.@Q7#@:K8 MG,6*"1? K_!&@W!2Q(HYP.Q[J EY\8R)N38ZWCM*S^4<6R85/ T)6^JM_0=< MZ"+2O[J6J*R66G8F-DN?>*^/;X7GF!759XE/52G(+S9$FL39=J@V?19$!NIZ M,8KK-&*3)V;2TBWVM!N\99A QQ_03X/WF%5&D@@ISM>P?,<6= 2+N329G:?- MJD7BPWBYS,"FJ2,_J84MZ8>8A\N.O2\,<8WCCIPAM=>&./ MPAO;$C8EV]%ZK8L>S*/L6C-A#!P4U8)R?K1^PV;F3'*W=-$]:$@@]X7YB9)# M+#:B]*_B^?USM8=B8;(CE'/LYMZLY2-\F\VZ20G\ZLTZ7GX9DW#<:T 2WKZ5_L,R9BJS_[\_Q7MR*XRTNQ>W%"F.5K__WGF0,2U[QO(J2.UA^QG!G''DZ MJK+?DAES O9%).\E$3%3W6$BNAO3Q4S,/9+*'>GL%.EL0"6_M:#> V1[1BJR MV2289V520C%+Z8J21.[[+GWWG;GK;;I?V?WM=^%+]V72&WZEP-Z$]3\X&?;& M]RK'OSL!;7.U[KM9C7#'O7OM?[43E/*=6N MZ^V<97U'%G(JJ:B4^+M$:+T?%2-K[Y&>NWNWX\'=U]LX:N]+S/X$ M[//9OIC+.R53=]Y3O_'(Q[WC9QT'^($)8-1& (_87CVU-6G4$*!6BB#%&%QA M%%+1Y+TV?N\4RMVT7>]5B@X&D][A_[$L1,2 M^%'1R?BX-[Z+5%[$492H73=*W]4JZ:<6T1E+Z.N5V=O?E=K2=]/Z>*PI5M_1 M,\R@'^-M6$,DC28;YEBX\2P3[;,?N+/]X5+0"S/"^O+W?7>_:*CS;1"XW MT#T$=F+P9+H0[0]@YNZ.(-X3&NK,WGLQ9P845^CX2V?U?IE,^O?GB]X]/O'. M KW;=_ M^+M3U$X9KSM.1E_A91X^0*W/=Z>=G3!H=YAF[F;PCEM<'X_%X'VCP+QE81VS MG.Z4V7VV;Q_037PXZO4[:_?'M6V.3N[?!?RHF$.+>-RSHW_RR_%);_0C&:]G MU(1WJN!GV&R+.NI2?YE.-^PLU0<4IL/!J$-Q^C$-U_L%[!EU<=G.C-W.C!TC MQWFD=BS+<84%/0\EP1_5';@+(/(([D"45=BJ;A4@'1UXU@?_HV(J?K?5!O\E/ PS4?8@!9!]'W\ M[Y">0(!K7W> CZ]4LNIYOYG'L%MM_34&4.NFY4@;<^Q)CK@@3P?]H3,3& 43 MP;D)N>\MDZKP@@A/A,J7::9/CQOOQ:[C]&Y@0@MLGQLF5<3=<^U@M"H:[^E1 M[WAMVI.)C3'KWG;764.)5^[BB2)8**\41H"Q:%&L4?E=2/#[LC6Y'B4='O?[7 M4.)@N#.D.&R2XN [DN+ND^!6_/T6N+S;<7>5 [$[I [,?>Q0$+'VD?.!<)D; M^/H6T]R&0VCX0!%M5QF>4G4 M#A1VG>6?Z!G.6^:7J'3.=43P3*'"*D?4BSB=Y0%06!665:[NMJYMK\%.K/"Q M7).[@G7>XM(07*-S;1"CKWYO$(WMMA?'3KPP]X(:C#+YO%'EV=]_]4%Q^@Q\ MK_2]_WYW3H.= P$ /?T_^'&6MHX#+X5I.V/]5P54%OREIK[W#F@GCS_32+_G M2J5_QLFC(88[P,9M3P9IG/CX'U&"^X[FN=V)OTZ9)R +J,\-[VEC?A[PD3(. M$CCI69SB;8[HAT&=WM^I;)FHJ^QS;P]4K^WLFMO"$=WR!)\.UNR9_FVEWB/9 MZB_C37BWV6!AE#7MHM_8:+P[VVRO3Y\S^T+NQ;-9!C')V0"FC$X0EJ0J!QT1 MYM]V@X)+X&^XP,=R7K>M@+[3"1XY)SBT_^*KH M/JL\C M:EEHLDVRE%,PV"S^!]4%RK7: W*;::;\=)BK(T9LXES,PSC3<_H?H MO[VQD]IP;-UEMVL)MJ$=]__^7[5&XR8@=P &4)8_USY"9PNDP?F0W(67ZH#[ MF 9"H6?F6C)[]1<9 MK&?C?(W\(CV?7:W]N@/G>AZ'\]HT7!T>.24:?O(P,1 MUH/%$_SE_6JL/W!M'5C/?\*/85HJ9T_6^3Q>7N3 ([^UP+\-Z>.()QA6V1J; M-?#BZ-^?? Q&@W RB=3'V?BX_W'Y9/:H$ZL9\@?Z8''';3&YRH10M+JC/P;>29'A&%V-IP].K>H=+I%Y-) MKV_D6)JERIR,%U1 .7VOSWP=M_'L[9]_OK[X\]6;B_.SMV\N7K_Y_=6;L]>O MSD_?O/S]P^G[TS<7KUZ=?QP?RDXZHGA'XHW. GROM@0/UN#919B0Y$-1 VJX M^TL.]W^RWTHZGH'J'Y=KD+P[LPC0<#)MA:$)%WA358+ZZ<'! JLN [;?M-5F M5\,2898E";E&T&.).A.)@[BP88F?0,B(!"(Q$,$O@KQXAL)'9+(>W4J@; J+ M"EAT!/2S_PC2*LA7WFA DGWT_/YW\^XB@B[7MA*"HNKF%G%" 49(@F6AGNL_ MW,%1K99+A0IER(IH785W$@Y$@5\WI\IT>#[B1VX22Z.[$K)]'=B5TYB>Y. M[,I)#":]XY/N*';A*+I+L2LG,>GU1]U)W.-)W+(\\$8WQ_?V-1W?9C-VNZ3G M^$O1^3O[W#FY??V_]U56R";_=ZRM;6S;S75 M]_#/U11\*Z5\R"EG;M]1=[M M7SO@ 58JR/>E=G$O:9BMD<=-PH.#D:6FHB.GCIR^BIS&!Y..G+Z1A&6[\''3 MTY]9KKZ#A.V(^!L1,=MQCYN&*8FNOE^/P]IZ)/;5#J_]QL#I8U[\CWSP-P5" M'O/:NW/_,=?^(Y_[C4&>Q[SX'_G@;PID[,':[Z;,?G?LR6WLR+])S"+I38@M;.VW9K9S?19I[\\IUJM@"^F MH4H8HZ)NTC%PY;2*$[Q;A>]=J7D<)JH0 #H$KX-!+'8=PP<01H_ZO(QS0@(H MO:L@C[.J\**@A-^6<[C%EW,LP3SI>1=SA7.)BQ"N-F%"5@A7YRWB-%Y4"R]8 MX.<(![2B*?*\R[F",V"[T\#^%+1$N$J%HI'BE,$0Z'?!-+OZYKAGWYU6WQ*0 MUO>CU;M)CY=JIG)$53Q'M"/O0QJ7WD_<5/CLQJZ+,X[#<\..S]^ZOWR5!:D/8NWIU3^'BP/6H"@&>?).5RAL:B(PJBG&U M"*:!A\Y8L(SM$20P-GQ@06@)C,1%FBWG<>&=IFD%S[Y7B#?B>]=P^X*8D#8\ MV&W>9-@X;XG[1>-@J744YRHL,\'BT$!.10^&0S0[!FV#D2*XDU6..%6E3!HN M+0^%!Z1/3H!$&#D:7EN8]TJ=> 4G67B(G^EA;C*#G. S^*4&M5T1,LEE"N<1 M(>L)8"Z7\95*ZQLT#1*"S2KF2I7$E^!W,T2817R^9 5C9H7[2AZMG ?R-/TU M#ZX4L-#26\$@4P4O65L,'%Y1A7/:U'F V"DPJ#O%2^!>EU0U3XR.=I=7*Z^M M;P4!!VM,PKX+WM6 X2K7RMV%UR:P;_@^NV,$'&//#%_1>"G02*26"I@.?BUL M-0^HK'\)UTVYQ?T&I0PA<@B@LX2C9VC#;#8K%&.9@H#(BHHQ3F<)@I0&!M.2 M<$P)$(Q&E]V#S::\#=I?1#T%N0/3!TX87U$B.H'+Y$&(R ),Y#C!69*13#N@ M/MSR(UCS=9!'!9U0RV:9 UM[B5RDXX%_='CLO51%&.0HUFI+I[T+Z/;4]WEX M//)'HXV_\P4JC=$06 C"S42T-[-?]HD:Y#-L"&W;G(4@;-MN2CL>D:34ER O M!"4H=$#M=YE)BWX%U/X/1*. PPA([5'EBNX&R>$P">(%TT91(641FAR]1"B/%+T$&!<" M8%7P[D1XM.8NEJ]9^@S R8 MYAGY<2F(4?"OW)%TNM9D-ZG^ 76\=WD6 ?OT_B)4L')/+LQKIC<&R7-IVQPO ML6#!@&'AHB'?F?R6LNYKLVZ&#R.L4,%/4SDARJ160@%[C!!:V[<@VW0?57X% M+)-E%DIX*W.09N%BD7F"LL>0*&-N!D4-X!*E?1U[!D8WXVBL-A2W#@Z_BWNV M-H#(PQL5O!^.\'\5%H@B= H;PC!WQAKT@PF]@%C51[@Q,MV] P5NQP'VO M6B+%/!V,CYW6$AJ1;Q&L0"FEA@O:>(YG7JAR4NQS!4IQ5;\B)2Q&B1F]H'8- MK.E=9QYE^SI03?CYHP=I'70@K6;4#J1U+T%:[R2;'88$]I$QEF%SGH[ZO1/+ M:2SX: .XB_2:58&XV+S<"?0:L!]@#2[$$LE=]AUJ!]J/W6NK0U05H/ M,4\VL6M&C.-H)<,%!0R>*HJ3F0K0;:N_0:\*OBA2H*F8Y@6!=ZEW2_RXI^=G MH' MX] ;'_9]3[OI[*9J9QV;.5;^)#'J7F3PPO;$LSA$]Y(9OG@ ;+_=5H9> MP[*I11)Z\DS_FAA^O>#MX4/8NZB%-@ :*R%%"6ASA<10A+!<[0"Q5D)P"919 ME-KLIO8[[9LTPT@%F[KDKYRB S#.(V[*@>XM[?@<]D.7_^52;A%V[B M#V>X<52JN2/?S7)[2/^%(TMU%+0I1C6'D[N@]X6QT_5-,Q\Y9,J.0VHCEJ;< M'$\\(U4>SBE^2ZZ-(&&G(/< ]'6'L)@^G:FA'D3H MC2Y*T=K'-Z9%$,J>4@=#%13-;XC[!M+$S1>/2;[,R.D_71TDP;5!%#:\8^U2SEHB M6WH%/>]5@*X9[5UU#R57U&RL +E KE1M98=Q'E8+#("$Z-RGYC:+)3 >CB$I M3WB(EC,X,4TGS$L:WGXT',,YGV>NQ*%KW:&NWX@U+)9!3K\ 'Y]K<"@K[%9: M6AH-;XI>;203[@_9F/2*AW+\S[I9@7,X/>\O))(D!LG( W/([A-\-,^RB#^[ MIH$3#.Z$#;W.^I#=\'_-288[M%N9(5.W,!-MAHQ'KM+LI$JPCR>HGZ J1$^[S\;9KP+LT N02&Z M/-Y3/%ZX1E-](,A7,*8Y"Z[@KI$-796FK6U M]_GV%+>;-\L9\3:([-*S8](_F8:SR>1C.!D=?QS/HJ./PSX;W\[^?OG_U\O3B]./Q\>1P/)'-V[TV M'G+L4D^.N_H@.#:-4HZ8-S"PM$+M=:TO'RYN#KK'OZ0=DV[/ M1UDF\/"? 2CF7C/%Y'CL'P^'_M'1N#$:_EQQOR40!;J1QAYT-Z2DM?7UHMFG MN#O@P)^<]/VCR8EN^;=AL:SPP^;T1_[AT<0\;?M3!5=!S-FKN..7*'M$PH," MZ+EM!=D^V8?&J3?OW\E@X@]'HUKXCE-_.&?-9#R^._]0U/,EQT=C_W T0/5? MITJV_O)][9>;CH<,SL#1>V#:')8,0&G)R=(?'L)1'QYZ.!=03TAA#?(4\[AF MCNXT[/5KZV']DZ,,<[0=HD;#%]&13(>9=YBLJ-.Z0)_RI?'+YFT\'!SZ@^&Q M+'U;HG(GR:ZIEIT4:GOT0=)A%R3M@J3['23=NN(=\^XRX"_4A,HXB>;H HE MQB!_9 XP!Z40F 513T&

BT\,$3AY5"U+(#^A.SP/*.XTX.HZ,W%6H>?1^ GP ME159AB'I1?;UTS@BZSV*([8N<8-H8<[:-3_/R!//GG^VJ>.0(@I9@>_..$4F M%W]DEFCF?Y8MX-A6;$B[XV*_S6")B[9>JXOS_^;P"0H%.!F,<* 7U7G,)-#J M;8"M_3-8>8-CE!W]B>QF]DFG)[)\>0._)WUP>$+/C3$'GAM7J\A("#*=FY-$ M;^HLYK?7WAQPO";@U'SW*R:8DQ<4945A-5=)I&K]<"MQ94@3.X")% M<9"2%S1(8YTH73^IN'X(N^DGN*5C( K5Z"CJGWP_G;U_?0'_^./T[.SM!VJ+^>XM M?(N]/7?62^ LP'O[FZ>7X-DU>'H1U-WSU?G%ZS]/+[KFGH_ D?!V*SY&1>EE8(BB+H+O>67?D&/T H:(O! #GR%LR_5D*A+=@($T;@(!3Y?$R48<7E716F4X!!>$T6I*Z\D31957N?\U,*=%'\(PLQ MLD6!/+ AXXQ5,_Z+5!-ZM76185G*C&I3R4;6'2W5!FICK82C1F"G[+N6JD)&/B#M6F MX1@P$87%I3""^LP\7X*=6"*\]EJREIRT'Y-"PV\-R>HEEBFL)8G)X.)\1LG\ M,/4LQ-CY'4#J/SOOT5'?>DYA&"RUCX8=K7 5X<*%G DGEX#:/W\V+E0]0Z-[ M"! #YXD4J%*@7*P54SG9:]ZI*<6RTZ.28?WJ6-ZC=1:Y3,3+,1/@;"V\>E/)NIL 4$Y-J 12=Y42<"W1$P?$GFXY-<@\L0Z;3 MMJ0@;GUS9$R[G.P-_!A3DI8;!W:O7(O-PR%=O4DSK M:^:?R(HHI8GTN2FIBOFEW"F:I79RK1'F#"\#>H9 -$4U(DV-@Z665:8]?.9+ MS?+PB&&&9GIZNT0JVTR;O"XK=/"2=N96&]+SVODWEJ]3GA#Z)S]3S3OE#>.+ MJ(1=3]GE:0@<0"EE6"F<*X&M@85>HG\QQ8N'UY #KIPLN0\23JQ $0ETS:R0 MRF:ELN+!L!^7FYFKU\)4*.AF>=!+.7 JV)XKA[^TL"(6?RJZZ2Z(&"OFFK3K M L,A6#BEHBHL*\=D0N$+)K&\Y_V'3C''RX0Y4*E28DUP KNN-G32R(1\A"?G M[$&F""#+:N3C.^HV?/++N9-[6#-[X4Q,OCU;D+174AT@=Y?6?!O>I:\4%M_S MSM:&TW3!,5$\ T]C,?%!XX^(LO"HF9,3?HKPX43W"(J8O4I< M8N#FY#,>$M:6K-B7LJP2\^6:%E)8[H2J&&N J&V&DA=M?7YKVC9EC% X"GX: M8#;Y:[1'R/'0QH6QIJPLOF"$ZK1J,H\P;?FR0B4-]CU9X8);F7%]VUUC0&>B M95/\B,AUD\(+4Z\%2;TH4PS TC*(EB@!5[R%-,F&;DJ),ZEYE&M7-C[M.:HG M6/ %2V?C$[5&7)R2U#(.-JU40- SEZQ)KDZBBI; 5AQ1>,!B4^"\J.L94^QE5*8*A'G.% M(T)R ]3=?&%F(V[?C)FB#KVE]'\#CP>MV"?. KE8=<8 MY*6L G-LL)2PE"P;+,E.O;=AF6$NSVA0T--D9&$>#+M'&5*2G74,T\:.#2GZ MQ@ ?,46F2Y,I%!O*@HF<':JT).TG(0-*8*R)DC2\V+C)?, 41C M-"NX:/]JADXE<1VI>#B1P3.!P>3 ^=1;*-R M2AG?PTLT0D-@.2J' MS([C/#@9S+W=#U?0:3UTJ/W4S8TA*C8.5>TB\!OZL_9AV_'J6T*J+:GB2#XL M6JF6UD$AHV#'QA^Y^][VF/AJ_@DWB0KD#(!-H-[^URGZ!; M#(CT>A$.T2N"SQL, 0<:0!?<^Q94VKETVKZ4C&:,<[S5J0.9@3Y81R/F0"F5 MIHH8!_55Y2&&"SEDHY!UU1"L8 \^*4?G;1E4PZTR+#2*)WR%Q%[6!R$D9;'W MM5G,Z"Y9\64T92T,,8U9!\ "U#87*HK9X[Y$][>1")$3DY))U5M_[S+YO-)T MX=).X02Z+0XX@M5PGRX:<;D=@$2RTMT9-$"R,G!:^!\:S1P&HO9#UWF8EVBMYT@;ZX# M/J3ML08:,)TN:;,+E&;_$JG/.82M->DF:Z>!$5Q3)-&UB#*&>"\P@3*/IZ2D M(MSE'/=Z?1UMTTYR"*5 M]+Q7>K57&1JW&B#93-?Q9SE/-!@#3!5Y7'PZF"%1Q8125!C])5?V M-;^;8"KYO3$_/_ "=(Q<8BX:#+V*51(5VCO(]XO"A459RWTPQT=>%UV=M]3A M8ETPP5H.64YUWG3ACB&_8P=.XQ"=G=&O(IM"6'OFQ-/JV_+H8U7C+E;5Q:KV M*%;UW;7J=T[(_/\$B^6+]OXQ>Z%P4W$U(S>347$>4-8,Q@?EH9TZ5%KV<:;3),M/RF=NS8/Q0=!RMR5RX'EB+H4!3)Y6 MY'Z3X9=962^!0X2Q*D]M2M?%^7M;1BGR0(>]3%Q3%'MX5G ;I (-_Q)X1Q1P M@DSWF5W /7J^+N]KD^-[J:(#+337-'E1WW7JUXSF(LU30(,O&FK[5 $5L \" M%572,-D#[Q"KWM =T2)P>@^L23!Y;]0>]N&&4BL=UFR-O]E1_N]DP91?ME_^ M4@SW\!5:B2PA1&K;P&:KC>8 MJP_ ?W;2:[1=B#+D>P*I0F_Z+H MC,5<=P8#!Z7= \ZC):UDU]M?0&F"DW/ MD=N%,N?3H]3 M2ZXSEZ_!ZJ6$WC2"RS8?'H?_.$XGV(X9Y\]?5:6=%"3$R"@F#*M3W.!3:"P.4Y.N5CU>R5EYGJCA9W4K.R M^?4[CYJ!@EPPXCNEX1')5EH<_002Q4T M^V?,DNZET_<#YSF/, MS*)NPJB0417UE4H#PAM6GV-6PTQV@*[<1#,()ADLE$X8PE)%3,JK1?P;*X]= MKSKP/P3EHPYYL)$IM:&01,*5)WBHC&:/_(2AR3!9DK1MHS1K[;/6^N1B4Y&1 M\Q3_V?*V)$['.*S:W M1LIK57DQ9K1G6#4+G(SPL;]EDZ1M$8\>96AETH56NM#* Z(<"DS8R>!P&DR/ MHH^S<7CR<3R9S#X>'XV./P:C_C0<'Q]/CH]''4S833!A9W\_??/[J]=OX/]> MO#[]X_3EVW<,&=: "MM9F#!>@/?ZC?>S)XOP]"H0-ZP%+JP#"/O& &$/!-L2 MLA]0PRT["$)YEF98%;'CS6UU_ORP/QQP4_#?3L]_U0LZM0LZI\(U]$I]6)+: MA+\XZ!_;-H"M'@OO)VX8>-R?/'ONCH?FW9G4 'JGUH5K/OO#L;W)\-/?2%W9 MF:[#U[%$&V \/?^@IV<"C6"CVT^UHQM,TRIF7#8,OR$R4695.+9+69>T]J#% M7VE/RZ:Y:I &6^5(& S3EA[(]8EA'1[EWE!"=F8@147Y]R5!&HTPC4I66+ 8 MA+AI_L")4)(7]240+85R!Q,"'QUJ#[SV+C)\&0$OD=5M!_A-37-J^RG@W-Y/ M%J!I_ P[+F&J'.&(BBZ.+EN"@F"[0D=YN9Y#,&9CYQ0,[E->E#K[CM*J[7L$ M"T6_1#27NM7KFI\;NM6CT9Q0.YC=5-U%"YF!KG$TF)U\/#H:##^. MA]/9QV!P?/AQ,AP%Z@B^/!GV.RWD1BWD[9N+]V__.#]]\_+=^[=GKUY^>/_J M_./)X7@R/MQ=S4,F3>BC=MJ==K'W\*,?-'R>5U1+S*$OM$?0)%YP-7>\K*$9 MVAHRUQ%.&3942O;JLPHK$BYO.1.:A2Y]]YMQT:.&=V-) M"((U5!'U%OX)@1FQH[! 5P8"3OXZ+VON5XM>2/A&8U<2Z^^ ==@<7[H8QM]P6 MZF1A9/Q^Y,+L'C6:=KGD9=2[F4H AJIYD312!F!E^,$KY>*R6B_@#A&J;Q,M M$(<3U17TH0;3)"[F/#VMY+[6ZSN3]?$7HQ?TKDLN/?\M#Q;J.LL_6249GWGF M:PU?(.7/7?B^)ZY%NO58# R)!M&M2N MQLPO!+O&=H3[\"D/L+P/M)A9$ENOC(79Y/@LHB]0E;&H&)=)-H7]4K 9V6)5 MV\(TTH,8?YM&<&7(E\+BU7"2.D)[P>(1)BU.E$E*TOTCN934CA9ALB>F<6#J M84S)0^_AI$%7@\.5!8&&Y71 X![,B=-/N[EN7X+^B49?1Y%.BXM#[80LJ&-3 M:COTD#N M4$I&JA>--S2+>?Z7E(I+M*>Q*;2WE)&D:"$N9MX:D30;T3O-U_5NR.IQ^@GV M+B!TJ0(K,61AD5H04!;.K,HU@'<3&58P8VQ.A4X\(EP\W1X,"9-@^JE'!EX, MR=H0F/5UB@!R:]+#H\\@..PR"+H,@CTJSKR3NN+PQ,RRZ@)L*Q?Y1J>57F/ M;(FVOQ>NP/H\",H2Z%^R7QGACC_Q$68+/L!\V%F5^#)0$"'(M*J#KAE^*?Q; M_UL91\X&36 O&JV\M>8X6^,29/WPGQY>2_K[5870B##6A]1D?6+B+H6N,)V5 MBE4"2;\U.;W,KPD&KY)"NP 6->-MPG"82@@^/B-T0S"336LG^GNJRFLEL(98 M!Y&K2\YE?@FG'$NZ=>.=OH[2RTM@=\C>2-B<* 9" M4[,5.EH3R423D)9@IKZ1$E:U\3*D?:0^EA1&MAV%K!*HNR\5W+VJ?@X^K&RA M:N"1Z)^+T=7#M34!':1&VC5.+(E4.P^*SFN2U\T.7))>#_?0!*^'1TYK:>\O M4!@+.&3C*>5NI"EG;T2L[1%#NSPK M,] 3:%52PE+&927NYIF9 ?=,T![ 16:SAAEC^,NT?PH-((EL/^"^Q_@8=B"QGH3'/2O 1CBUSZURJQ]^&&-XEYA[B6 MQHXCHN'Q"F*?<-E_$QQ#-M1PH5BZ5CHOF"45(L4:QL2C;)B]1@*H3=YU.&@% M*5&7,GFY:&A$U0CX)Q(GGP.4--ZO.7"K\IF/NTV._9G-+N<(=[6)4TGE_X=8KO48,:444%] M,7>S6AB, [KQ%9%4C'A7J:!Q4F<3S5'-^Y@+<=D 8R>O:<*RAYI5(OQ#M6"W M#A;L;B+-FC@> ^N/J3PX6YAZ?L/EN(VEW?T-/@0$*8BM/.5Y,"Z&5=0DP3&D M"*RO5[-VJ^H#-)98D.2PHU)5Z*K)3=;7[-.%MALH8)SN6G$?K$,F4B'KP7&Z MOK]\-!*7:CJE]+H$#*OA4]P+$?!:PP#;14^"$)L<+@(Y+*=4D. M*X5H$"H/E8AMJ9!!= K=0TZK8/9FJ'0>Z+S7&M%C5RV4-3FF5I+*D,W*ZT#J M_PP).AS>1+0M5214'NU@&+O-<6UUG,&+Z35"V %%ZJF4F1".A3\38BX)B9Q= M<'3;9A5;P@'AL% V*(K4(EO.Z>W$ 4TW/:R'(^- 1)1/I(J567&C%"(>AWB1UY0)YMY9^\JH%Y9*J965U;%2$-Z@SW/=*%(.4AV\ MM:)^!SJ3EU(UUHB#S(S F^99 /H$5>2+LI4:#8%3I6O4M&RG*L%R1H&LH%9498ZO#3 SA*X EP$N I,$ MLPQ _9#-JQT Y5"WT$*9,1""8]K:+Y?9-;5 $SW5=/M$QF6?=_%*] KMJXQ' M2<_$I#'MI). MG49X29'^&LX2:=N)@502)+_\08M(7M8%6$&4A9W\9TN*,-]!]R8+* MIK'3UK26G6:QXL6%XTS0C69Q131=7=]\0D[H!N/##:H1JN)D*D: ,R_3_=IK M$]#VB;9@IKQQ6#.>.;UDB0VY&7N//LASU 5YNB#/HP_R).@O=I-6V;W'\%;H M'V"$B HX\K+*86UH]^H@$#+R -LV%: $JI0;=1$;+BRN%VK]5N(:(PO6&\\0 M0,_(;+]IP+KL!JY8J8$4BW"NHBJAUUF0>-/9#2$0HRS+W9%9.*'W =TN-D5O M+W3LOUH5*FT]466A6K+FC;9X-87CB 6A7Y"JKJX<$ ? %%?$0YT2'A/-8QM%OPVI=?HP\:#(#K8S@'M &F*^I#F)ENC&B?R*)^_^.-]Y,#8R3WS>H*9NAGQK=J\6"< M+HN%Z. X*'HGPY7>"='"C?XF$1\]KGP=P,T#4R5DD+"_4 &2)'_;+\)TB$G4 MY]CJD_J0:_DJY%7"(D4[P>LY0;#-^&9/*U;FS2]BJ=>8! M9D2OH%_J&"Z=+D)"H6+JF-+N"W2TTGD1>=PU3ZGDS;E"HZ+U1H!=246I["W1 M>%(8]*YQ ><5@1O3$#\YP3:53C=MFWC'5:*FD21Z8FH#I)B+GD;LJU\&*PZ! M.?VS<7_<=MJ6LG4 &1F)=O.@2Y.9\U3*=YV'3#/6UQ3.7RUC76/KE'W@JC4. M,#&@/%9T"->UV\<\B?%H@=!K:+22FI9D; CDV6?=M&'\-US H>&>P>4E E:5 MNFJ8<&OL<=6=QWPOU14U.Z7WB60A8S0@)V.5(Y,%>TFSKAI #B&V7>_?U=)5 M"+"#IAR<[@@YL7 C=5$.'B-UJX"3C:>\;%UZX]O,0:XVTG$O"Z55"_>LC:F/ MP]3RX"36GK+-X@17T3S?S$1TR-#K?2O9M(D[=G'$KF[/1E7=<(\4E M[/H1)RT:99AL_I9;S-G;I$XFRG@T_^L8- MVTQM>NMX8?I;[G5J<>]08R]*V_.0E# -^[H=*-Y&@&F*MIH[I[T@.G*)*J[X M4?$USWP7!NU@_2F<;XX!+CI]#&9[F)S>>NQV\*#+<%"5%F/=. M$+5E6() X,!%YJ+32E83HAOM0F0<$0>K:*OQ$5WGB&E(=@9N9+=HL,6\Z=,]&0IIPC)<\8<%*ZL48Y MWN+2^O;63K,KUO4-H)]!D"2-8B//M&/-Z- G0RZI\[<:E43VX$1>U" *6CG K8C&8F'_I M!@S.1/#26/1#NP'F>W2)9Z5S60B2-<=$0322W1I'PB=A:M L13I;HUN8[#UV MVF>Y@\"MO>\4NX'?(*G@X?J-+8LRM\_\:CMY6VPK<$]+!S9FK#/OV"S%NPZ: MFO6O,V I+.AIOWT8 M?--$2Y9*I$RC\+3R')0?]?'&(V=.7UP2%^76?CTZ,M9 BRI 33S6SF]?]'8' M.1K-0VOLN,)#HX]S:I:DCZ[C 6L/PM/Q26]V*?CP]ZD^?D$/Q_V1LW/ M#^'SX5'OJ/GY$7[>[QTV/S]F4H>#MD.1-4L1!J>QC-S^U@4V&_684J,OK!JV M;;V<'&L<;1N'9M;/ADMM8(5)N3<3)0U D-N;G;\WS^OQ-X<[[D)376CJL8>F M_EIW:=W8+:A9/XW_ECZ?6546B%)(UGDK[S)-: /I0I#3#B, MRZULE24YQT1KVSA]F.9,B<9)J3A;<F,9[O-,5EHT,N1BY^R MN1;11N3# MOQ13L)M6J5]B>Q7#N20K*:#3I3/D.L#@*)7^9B'-6/??X=9+;3V$N)R"%D!R MC0)PNIF82K)KCI5@VQJZ==+NANHYL 8P(UV MYA;/LRQB'\I**Q'.,+IC38%OI]!3-4VP_)R3]L-@26BN_S+67#,3FT-#M0+T M./3U#_4X3EU\&DD[$[8C"[A3 1&1=G/,!%K@M'7"EJ48WN1 R%,EDMM(V4$$ MLN4/SABQZQG8"^[QVHVFCNQ.UVQT0BUZ>M@;&.T7-GM AHN-K5*4JG8UV#BG M5E; BRN\49CMNS3N1A.WP3YU$OWBR\KY8/C,M(K1=U.58N_/\D [ M=BHJ;E M%E%W&E9-:^OI!$PU>-E3UXS$^;6MNA%HMK%CMP[*^$\+;8>[DR_8&;]JSGL? M*(,-8\JM-BD-A*)[!;N@N#&F%IO,@$,I)?'=0D=?0O?\H(/PVFA'MR:!71$M M;D^G-GG)Z<%\)V/,2*<<>IX'5GE>Q7F6&DJKN'/6^H/LXXUS)S?2?-D38.1: M3Z.@F+,KR 4==K:BL4)*N&%R 3,J\SZ<>Q%F%>:F/V=-Y5AO_EUOBL>-*M\; M!P&7W[&K8ZM)L.8Q\*YMU+?*2Z-1-\J^$TC-.G%'"FA?+ M7,UA:K:3G/<3]N%@-0#N!GJW2LDE2,7H=!K7VH@5IWH5UE MIC,@=H,TYCVW>1HN?N77V$V?VP\F&Z8^_ M?OI_<=9=3%&!,H^GE;DO-M6FF4UG-UX4WQ2]LPR28)1QL%^D EVO"^8&[[TL MD;-+B,)P*/8/-#2"O;A%?\^NL7R*"UFE*)2$7>U&; J8\#5CMAY0L\S"DG?K MW<.0+AI\?&%[WN^V3#R>?6'# ^+:S/,;I.1+Z%'ZA(HV:@E43EF7V1GQT_R% MT(7OB'UI&;K S#(EAM[FU?4\LYMK:Z%K0EVI]9IJ2ZK? HP(T-UI3M,N2K!- MJ&\A,+0$LP),7H_SBPV+PGKJ3RJ5\N\OK*C-\E]D:5QJV#,#JK=&(YHZ#,_0 MKX!I.LW.-M"6 3D+:KE_^JZN]5+@OA>VM]MW[LAZ-]2>*J\UIJV%B(G)(48Q M@JB4F9;]DG? 159T)1?DHF L E>#)^\&NPO7.A5SMHINY%M(2V0F0&J*2V=B M>GTT.S//6WME.XUXFZ@?]0EH7M_:S;C^4WR['5?R!5*3^HG*45& 3H,P[C%31H?!-+8I;VQ/CS<)+[ 4 MF=P4*9I\_"&GDR[DU(6<'K!IWJYR>RGTX#SKB!RNI@.3YKGK61=#5IMK-H9P M[\(K$EP\(IY360VI.EH9XFQ17:F,6CDPG%'_;VP$. Z_1IFU-K3UC @& \O. MIZKY&IU:SF\!'Z#.B$9Y ;7P,+ &$RXS\L$MZ"M M/U@A3@QIGJSSL74U@5]'8E9/N)/H&Q9]H[S_MKI9^3=-W &+UM;5G/I(6BK6B]I M.Q &KE&Y^%U;S\S711CA/,M8F=&Z125%4>9@0E0@L<(IY.(IY]D\B.N%)I&: M4O2)'9(Z;. 8/*7KC:EI8;78!"HX@OU$Z?N$Y\S!))W'A^=HO74][_4,?XVS MITE04(4@.@PL8PNUK/QF.,2N12?Y6C6[V=Z=_LZ#:RDQH/GI;:(>T)0UIRE. M>RATF^;&MK9G!/@" 5&+^&N<#'QWP8JHE 85FEP:H[>6YZPM<%/V@1/7JL=\ M?&L0< XP;3TE.4Q7.@>]":-62_YR[0![L#I[?4_?;CX\/[5^U?G'_ZX M.-_=OH:\ $]6X.$2/%B#QXOP>!6>+*-KG++3C5/B;1B&VVGYR2^GY!(RE6' MXBOK0':$=1X7G] =ADI/:F"+#4*?]RM;%HO@$S-?=]!(A=3&SO=66>45 IH+ M\F56)HWD@\M63- MGS+$!=>7?V--ODBIA1TO&'PI;O\M0$/Y-( M"F^*+2U'@L\)'@9_O++E4)0;^2U/[!Y[NI\S[GMF\ZAF09Q@/I9?N]@FLPJ= MF^%<%4Y2('5', ^4YR5A6432$IJGN%;/H7N:M6A,3O'(N#B6C0%VFY M=*P%!VS( 2%81*!-"R P 32V @=R\F84%WG%F#L-M)3:T7&^&>(RU\A%WI_E M&E91H[.9:1+#S0K=]"N/#AAYR38#R)SF0[1XL/CT]=,O782Q)\&*T8Y=\A1P)CZ:-;!WDT7#.>+H_8*EEKC% M"'8;RN<"YU(L1?]"B)TLYTP"+3^8T(T#S$Z64YE+[E-J"4<:;52I.T/M^&#: M74L,$?XGO0SF\;+13(,)L9VSXJ1(UY%D-OQFJ32P,'@WRV#%_]W,9N5]^U3HPT1"=_3(OFB(LX<4U MXD\=P):&&-"ZSH/E"V<2$MR3R:)?87+VVXOFQ.I/W<#2^L+ M_+2CEA^)6EX[RJ^) S%(-F+E8U)$1RL=K1"M_+\XKZAJ*(EG!H\0&U$DR&\Z M,NG(A,CDK.Z*GHX^./D3D6)]>UBP'7G<*=W33T8W0C9,M4@]MUFFHHYB. M8HAB7@5Y.?]G%7Q2%/6C -0L031)GWMB8CI@7 18JL?-]#CZ!/R)FM'\0Y&O MF-LQ(C0.%DV0JS_#%CX)02]VQ-81&Q+;J50,7F,97Q' D038"K#6YQU16-,8 MEIG-#C0NNWR%I/0SQJ_(;(^+16\S8;6[QRC%QCCF=C7H6"L&#]9B@I1]Z<99 MG%8,;C2081A31MC,LP4F^K EFW/O/Z= MB3.:?N[-^**_%CNLAPJYMT:5ZE1B4P* />Z:O1\R)R #?_-OB5EQ]2YF("]@ M:R\E4S(TR>\P1,F5P]PDP(G+_@K4=U MI=XPJM*(&A/(8G6/8U?VDLVW(L7> MJ5+D8DSG-#$"UCC)C:MI9J?K/:^=9=MHZ_GL[N+V(0I_CE5[]2)"CF*F7+Z= M8 *U;;'I5 T0Z"S,@)!LK^*H"AB;EZ*LZ\D5H#)E";4B-N4KJR4GX"]A SDY M7LH(*/:)$PL)"8H;'>C.P1(IE$'LF4D6+B::V;G!*2ZT8\F)C#JH.B'=SYYW MSGVH=2<) <<5='WJ,:L"HG-3.,O(5*:Q*-8*!/K2Z,1A"5Q2O#6N-<##/A34 M2$581&@2H'.0"M@4;X;![,8A<-92L18# M#E+6.ZCWD,Y5\)VIFH0A4'$+DX%@1I<4J9;616[O"KR3"S5'@<5Y%7!+>CGZWUB*DP@)>2F%3!Y2. MKSWE?&+50\EY;QJ2G\ F\# =3'!*;; )]_5\T)= MG&I=,6\5%,9AA]=<>M* MV5:1.Y)@9;>)NUERB'?M3NF)D5YN*I@)A%Q2@[1TXFIK-^%GHR#6DNRJ2O!& M@+C5]3@8*Q$!_!,>-$-_"WD$=1']3,K5KZC=&G=/6RPQK5,PXU8B$10>7LBK-C'T73P!9OLQ.:! 35VIIH X5,851>74]RU%GNTC]DGEL$]! M2QKD[H .W&,ZHN!R&"A"%W&0M2!]IU+99>\'V7JH%33]K9)#II#%, M;B3 #4J"HZZV-6!K76%#..UUR!R-L3==,4[#6M MW#Z>,]S:UV2PY$VF;^MY^@0 AXZ :_[)%4G(UB-VEF"F2NS1LFUST8BU$_;E M$ODTB(E%#?'!=N2UI"@]""A.R[6#A0O 29ZMQ+),4PXGN$TMLQ/Y+E7-=DYU MA)-+E2TS%"Y8)L<.#CL!@GOYE",&)^8DS.!>,;-;3V=K_.H=3%+!NG0G!Z-@ MMBR8@>_8MV)2X%D\6DEL6B\ZW1.X"2,L?HNG>.2FLM-J9'(U8I# AD8(WD8E MTY$!]*@]SXV+BM+Y82V_L*YLU?-&*;F0=Q,D99(8V2EM+#C!5>Z+H+$YXJPF M%N06-R#6MMD^N^72M,+<-2LDB+DA5%3-\ M5R5IBL,]JZ8QP57UM9D&QHDK/$J8*CY2*%+CQ1X,!*KQ90Q M/V636:BC-2P-W9S EUMC7Y.3]0.'@T7;ZQ(FDP#/PPB:#U*#I6)!UC8[O@1B M?JZ"!#V+B)"/W01U+*3T3/Q$N2&].?:1!#6*NJ)G>1I$V7J@#[TC6)FT<,K+ M- 62)SM=!)%R=%MEL-@$E)":8QIT-##M\TM"45VBQP6$LY;&)7=W=3YKD*.[ M;0[F"<'&(/U1FS6"#$5H0G;]Z,I'7;IK,8+@]Z$@CNA[@>4A[.TACTD.:E.$ MKC]18N/W>Z)K5028"02)M(34M(.CIL<)/ %"R +<]3 MT#$1] A60T54#MI\?96%#L W=&0Y7C21BTP;43E7B#HX0^U^A0T>,:?CWX8J MXG\'G7)^7 M#"JYW7 #-7)\2&#"4>V0[:W7JI@3U&UQQ;"WQ[7 *1B7"2!:O?:R!M_+MBTA MLP%_HE&E*S3VN;/Q^U 403'X;;DV@C2HQ3+)".4'+CS'#*5^&]MSUIN'-MK- M6$@WWUUUW$;>^-*BU)POKJ%8U4E7-@:8:3#%,/< M9B6G+@C @/4&6O\%E82&(C8M\R9&6(&VAFZ;:V[$U-(-I'9.U Q%JN!I;10F MXL;/U(;:(,=2$"9+*GMO'4<%13\QHH07:C^T9P&P%&^5O0H6"\T*XSJ\%)7C MDLPB" [CJ+YUA,7G:F\D< (/"1897F'I,X%EZ#Z](JIRD6U8#7FF M"!6$?W,CT\[2IJ:J69CU&<-T,C>MA$A>>E#J3!-$XJ;N3^A4E]8M50GDSW 8 M% +#Q!:^^L@1"Z4KOUUD%>I363+;B.2:((0Y_<^.W'!*<4Z%0YG4:D.Y];$FC^IN?]QD!+O$^$>V#30!Q[5R]J ^$I.S7] MNC92VP98H4-2^&&SD<_LI6J]1 XA(5A_M9*4G,L,U$V#0%Q#_YU)JHW;PHVZ MD*HECXF8-EVY3D>!:Q3(L-MM5,6YD'$#VITTOED>++3*6$678$YUI-61UAIS M2VMROTU0&I@X_5E'1QT=$1W]D;'E[.3@SBR'[N*.146%'L(4-#1Q*_<3C"7:2$/#-P1W8=V1'9O-!3I= M/9U8AOR.$'9Q1TDV6ES^#?8O0[?:-M:;T]H6<>>6& M4$Q[%0Z?8MB$Y !&,"\I98["J?0:W5">4.)MR56G2G3T3_3_LN9@YQ[R2#T6 MMIEZ*UUA,?%:!W&=1X_AN,]+BHRU6-P!9[5A6!X]_!WI=:1'I/>6$L_<;-NI M#G.8D,KA'XIP[Z#HI"'7"1 1KXI5.':L.7'7TU]&?H3^!HZ,,6\3+(&:W MS&.JJI8R(R[&#U. ME!^)^1-$#/-L[@_@9$'64GPIQ]UW6@;<7 G,0 M49D%Q]B%E2Q8#>RB:D4<7#3 W8HD&6A/6]00)4BRY3+ 6A#1.'T-5./6W>HL MO@RDO_ID.MCB5T[?5-MHQE8X.KEOI@..R5E;3YG1[2P#[J[IM!7F1!-I$6RQ M)6R!!:9CTFF"W@-_IFTM91TXB55-1MFIUV992V7E1C.6@DS]:A)_@FG/LRSB M=>#@-L?4C?:;^7"R/SI@4@[PUR+^F11JZ,Q_5VW ?/:_ N#C@FYFMCG2]FBB,'E?VR6K+& MS<*<)R($>$ 0#FJ=5V&B+^IME+'BKN Z<4EO]&WK&NH0%5G8^8SJQHH7+?GD M5'XCN:469Z:V0UC'3 FYG"C%^[&^!U'#M*U%ABGO5B=\-1JO;0C=8.ILO70& M/['1&:J'6IB%"&*5@ ; KIM_Z_YA,*\7L',!>H8X+EVE1!UQD!/0EV9#NH(; M/4PA+P:K?8 "ZU!A+]Q2@SIF56U-DO5F#UNLI\2PRP^3I?%ADQ^ MDY$6NB0NIG(EU/!,7>!5D%2"U&&HPA$K2'QRO5A&.34O^'."ZS(MPLS!F5YD MZ]6=6!R9JHP9,)C5CI"(=!=Z6)%29&!7J?E7&.=AM4!NH8M@:5'350V="MV/ MN"9EYB.B@9O44]&'[ 3"2+C;P;4#U@$$LTW5+.8$Z<9HIB;385J:U+3V1WWE M"RZ/Q&*.O/4)R22BMHPH;73Z=ZZ!(255W\D]Y=H:"Y\GO>6F,;Y&JYHU'75K MH)KOJ6K=IUI*$%E:C]?(;Y:9U@/AR#(%=JPU8[[6UX[:U+&WV@&]9,E4U^Y9 MSVN#Z9!Z/^P-W\1?T\@C"--BC7>1-WNE!+^MER;BE7.D/;64Q:H1$M:B)SM/ MRXH1EQ >M4UCK0K@.ZD'E*5=QE2QBO56V#+3*?*D7J?VM!V$M?;R5!$O#K"6Y7N>%)\ PR\<[V<[22Q+$:TP$K5+@8M4]\.!\C1 M06ULC.AS61C>&MBJ.OB4@U%'E7-X/B+O2G3$-%=(N>J"85AH>#W-.\(<4V=H MT30'+MI3BB !-#)6LI(D8](12.TCYAYYG]+L&H@ EA>7WAK*HHM*(_YAZCY= ME)J(JM3T>50& F(-=];%!#2%2);Q^C[B\DTC96'.TJ9Z'P0F<+L58<8E=55GMV4D)U6K_;VCIZ;,[5X=1Y6!M MMI7#4TH54(_!:88\BQ3W7'&/;%%J-B(>H,%,&JE^C]Y:6]1*+7$=(QK)2,[V MT>,?C;JTG"XM9X_PC^ZDCG4<^K;04*VY-)P?\__9>].F5)9M7?C[C7C_ S'O M/1%K18";OIEKGQ6!BLVT007LOA %54 )5&$U(O[Z-\<8F5E94"@Z=0I:$>>L M/56H)G/DZ,?SX( A)A\C* MG=7FIB#'S ?&I?ET"4?195\4Z#W;#@L%/!IO;UDXRMB 4JN;.F%_Z-JI';:2 MNI:H"D!ZE"$.IX->9HJL 1>; +A^*[%ML*VS>&J)QI\A"$ADT]E,8F8 A!5; M!%>;*O@2(B/'UQKMNSH#'YA^X?IR!&VY@?*[ 60"]UU:1_-Q#+V]5 AJ6Y@& M<_6V#M#N#YA4\::0SH&/U5KR&^R2?P4K+[_ 10!GSN'I3FU,;*DZ+>\X6C\(.>NQDX-U&8+!J.+*J+83D\^/O.I&C*TCV MRJ*$[DZ@5'3]=VW*(P> ,$5TOXLHP+2C88E7'LRP,%!$^0SRN!!ZA@[-0IN? MJ)$[H;X;>\QD,_PV!V'E'ZQ(! PSG0U8_'/ST(CIM"/:;AZR;8C^".E%T MYF'9(I!>LIB?89M6B'J"P.2FXI@!RD:@YP+%!G,L_%JFU$,SA"Z!(D!8[8EX MFE+F$%)'8/1&/&:2]POP%@E^\A!$CD-U/S ].C8(:BVJ"PQ;":C&.J=>*?W# MGF/B>U1,T$0I-@*6,H1M&* 1"GC+ $); 08*:0%*>BPQ1\D(!&&)(^'^--S^R0B*1CYMAR30> :?F_(>@*1Y"P"KRHE=ROI@DZSY0L@MT*Y2 @DIJ4)>$IG+#\ +] M9QF&3GX>"_T!J$H Z#V8HDD)G6 LKI*J480BFN P@$EV* (6T;DRDO;"-R5" ME04L9.QV3HA=#![)=XV%S0D)57^>5@D+MX@$K&+_ROX.6&% DQ,--O/B),XC M9T<1QV:^VP^?0GFX2,^#V#$A6<%^TBC285X1Q34VZ@;Q4BF,UUGXQ@H=4/$#T@$,R,@@I6!YB6V'Y@7R85B;$+!CN G]=^%&SY M;K@*)M'6A/]_L#MF]#3D@?#Q(>\#2#7R'?PD" M"@6)>O'D/N-B?LD*7#ZNP,45N VJP+US-"PZ<@2]W6(73ACLV+*A]890C"!M]#(F^";1UL'M1?/A'9@A'%^XS*0K(,^G, MDK^5XGHN*&'^7C7]SQ6-R'+)#DD]NAAJ,B!HG29<9J8E(/4(K?K!J^'0-TG MD@5=(-<)"Q-2(Z/;[,WF=F'._9IJEA>]^6*$AFVJ\%R 4M6CI 10R3"E:B 3 M2%2U995=<;#+7]GP<(T'_A[Q8&-;AZ;XY<',@G3SSF2U^;7CT"2^(L\XITK1 M ;J[V)").+T^!#N;D1&(&"50X(!#8QO4^*3-(/J<<5(.$M"/HA5S6O@Y5X7)YC MC)ZQ/"IX*RTH6X3..HYZ8.@@%)#IXYH3=8L1;68Q'=>1%*5KC),T 9R8%85"0D>%#(QAN3P47 M0Y+:EB%D)O(?,;M/% )8O13Q->?[0)]#T]E]V>\HHIZSY410+NIOD4\JLS#4 M)S)_UI*"#EZUH+A/TLP\NROSS+//;8P@,/+A)(Z!D)>2)C2:Q]=1ALLC,=%-F3'C[ MB$)Z(0_#3&D=4%,OZ+($!9$H=YA<*LPT2/88#,"9VXI!RQDQ%#R&UCMYH+ M$>8RRT062"=R!#JJ:X36 O-T&F=9#R9XQ4BKV"H#R@5$J&U3:T- P-BSNTCS M H0'L6V2 /W)'[3U)!,E^9F\&OM<)V':5[9 M3JCL@ZRJA%E>V+\%V[(TV,R0ZNA=*;3((,*H97$V78['1AIYSK23Q)E/(\4, MIP&*%QLKPH !"9UM'7WGD8A<,IB6&I@3'O!%=+%0K0,9S!6B&F@OQ?EC]N$8URL6+A2NAH^S MWDY@RGVK2[4S41D2;GQ*&E YZ1J+42Q&*$;;CJU!PL/!_*[:9 "Y;AR,0-MN M>)X1R-K([#&';]8=J3.&L4S%,D5\ 6"LU-8X[(A3.2=B48E%!45E'ZN/2B)& MP65(!KF\)-4 L F,Q7\=/Z!LY'TV/(L9"U8L6&37N,$*0$%BT8A%@]/93 UG M'B-'CMP1D3-UF00H<+'LQ+*CVBL%N&L!+#D6EEA80L(RM9V1/H4)$T I,F); M%(N(3!$B_).FVP)0DPJMNC;A#19RKAQR_0K^[>P?]L%8BF(I(H\&QQF",1Z: M/)O](\:]^EP36=H8Q]SLOC57['X3$ON7["8OQ-WD<3?Y!G63OZFR+.>17JY\ M8M73"$I928%%*W\'#3M<]SP8-=PEG$KYD<)!/['M ="M\J %,DG=$J$V"P[-*W\D M$.E$9SYG'ST/AL-6[ E'BRM'78YB:"[X!@3 -"O%^V+ >."T5E!=0B"$, JI M(69)<1TX_TK$;0SB<0GN9;+FE./V@YV=R^K%K0R^HH JIX?7*"%-$T M>4,F"(S2ZO UD,"N<.# Z*+.4>'N><.40$>BAA:./2660*#J8XNA9H4.;!AH M0"%) 31N5XS2\CX9D-K(RW(X)>@;8C\FL -)#-;**KUD;9#(_P*UY/DN%\[5 MD'BC/.!18X^V\,PJEJHE$?J$A"P;J<4Q7860+/K:8N*2ZP)J#F8/"\+9A<8A MTQ)M,*$N='Q7V9XC+M\SC9%.?=A0651:D9!4 R4^ZC&2"4-C*RP;Q);,5/H3 MC@,48/=@&;P+W64JSH_@KG8-#GW\R1#9[PY>CGND3-,&+%]*6R*-CX8F.K@L MF-CK#S@UM@7')?BMA>P-#[9#WP [EU0Q!. H(O3B[GXG0SPX.(2.=0V]D3Q4D/15! M$[67-I)#QM"\[R13G&7PYR( 3PYX@<)N%O*$ #9K\0'P,E M) M@J,;'?EE4R&C0!G#?EDS#%R!7[#E(PK9H_$+' '@5AX^F$2N%F+6=!4-'GKW M\!#6$N =&BWB+!*D6L5<>9BL*(H)22$2LIW0V,A6XL">,GWBO C?%$%II'97 M=JG7'@ AJ=HY!ZPHAK\6UA/);*2@],AU1SH/B97!]"3F,>1^V1$2D@S[6 I' MB#AP-%\5;O(W1T&U%5HFP2];%+ZI@0]DJ,9(@,FHXVFT9>:#.3(@I^6*+B:T MSP""KGD>C$P0VN(B(BQBT$MA#0LV08N9%L>O@818 _.+\$ MF&_/,:F#NFL_ +#0'+ H<;"@:*=@R^90+A1_6 X9X.^$7".SK$>8:T$D@R,X M[)W0%9<#,AP&2-'0$;J=#_1.? ?V(4#,0+03W^(B$ 50JCIBRTEP%+%>?(A@ MC25GEF(F; 1 D6 0*.EB8H6+MT2?7R3?"BXD9V,6; XV ",M)13UV&7[L^5V MZ'DS%!*XS[5$'P-(#&].+#?<-V3C!NW,HUW?PE9\ M0!UTT+T2RDR9O)GCX5L$&EH3;,YW,/G(-08ZS"QB7G-\!T[I 0Y MDU<@2IQWH(><4]W5I#-*..>>A98L]#A\HI0]T;,/Q/4O 9V'P5(7Y!8'8 )8 M-%PH) H3?@9[OH&A]Q4F#)JP9(_5USPQ3#ZQ!6<)?XP9 MNN<E3NIKWDH;CG#SQ:* MO81P*@L/ZM7T^ AFE3V3H^,H93*XG9@;H=G(T,WQD9&R2P\@A=09*?Q;$IEM MQ+RA@+T.[_@L)-0"ZX<9#T.#F"8X5F*\%3M&D&33\PBF>/GE%/*[#;895PKN MDRH7HIS$O%XK! CE:8_JJZ,7RM=Q/9YOFNDN2E.PKWZZ#V7 MYHX]/HDO$<8)-!<3-CW*8@N=25:>JTM7Y7$F+!#/''-T!LXAQ3$U"-E=VNXQN+9"'TLAIX+B/^)6("E6!*%!L] M0$9*2;A(6'L12P,N)7\_L79HFC3![8BP#.B3<*?J"G-4X-<%1D-@' -OF\NO M)K9 CO[8+C$PB+W?B"BLB=@3"N*LB'G4MKL(624)#4ELR'?A\!A@Z/4^$?8> MTG:@QZHACXWOT&2+)GAF@M W@$\>PPXM4*BPL+$K8< HA@[O-7L>OA%P"J3X M$RP('@_QIO!1P?)!4J6$,5S:@O-"DSA!V5^'[)QCZ*'3QWP ;NA55U;"=D,/ MD0,3X)K* 0QCT 1MTH<; 4364R1-!./IJ&K=F< M59\=H(^PFKXO/E@421[7"27:H# M6C+"#[M<(30(?B1IO\-P)J$-@"<,9+6C\EE#L@K2)?0@B:C[$3Y\$4DR+\L#SFBRP9.+@ M"#Q7>7KHFIBI-I5747UG98$Y! \7*X5G420IHF1I0>CX8>(SM-- M ?, Z'P/D*60G0#/ @)$A7_%$U8IIO^ZU+BQ!)%1GEEJ:L)4(?9:<26@*PI! M)5U7",*$+HBV'7@///25O"HP% & M%@)12/CX=+!@@;X'FR;OBX]$;X]^K6H(.LP*&@^4%$40<, =QX"FXWL*JHYI M@:.!'J'J4/1P3,'@=5+/D!LJT(C",">RPXMZ^-!_DLG^0+=)TDBV'DY?+.PS M5.G1Y8&EYS$HF<<@*]^V]_T0";$%^*,X6&1 YU1,/'43RPS*3)4B!!5NWW<- M@)8(_8 M[:+\!>YOP17)58_E+98WE+<=X4792YPEB')&)F>0$3[NQ#%2V&_LJ-U)Z(GI M/H76!O=/5:=9\>1Y8QVJ3".HA ;SSN"EQ4(:"^E*0CH7?D-9%"*:(.9!45.! M&9X)+=4&L#5[Z5HY()P:"5;.-]/3C -#P7-'\N^%+1'BV=P#$SM05K4MGSJR]"9 MZ !"J-+%Z]A#]HI](]PCK.E,*9K8%TC]G*[@F 3X;,&#R&-?7;05XU]P#DIM MC]R$E,^5.N 6IL'H^B&21;Y'8Z@3C@99+EPZU*;G0>8H0R7I):2CNJ^I6O$KL ^TQN9U%PE^2^AD.A*J94<*-3-Q4=Q M8/9(?8=IF.A1E%Z4,JW,AP+I-/:Z\O$;0ZUOB!PQ=F8K-0 J:^F;W!!;Y=.9 MH=,1+%>XJ4TY U,C_$&U,2K\I6 (S72'H6(--JDM]^(^A^9D9>TR,$?T\ -# MTWD'DQH ) =>6>I26;QSDA=3]YA7>K]_&5(K;F.(VIJ_>QJ0. M+06@M#!/Q!W'\*A!B/@&? R,&9:SJX)QU W(#Z*KP94-YQ9(JNP,Z$B:Z$!( MO.70Y-!\O[2$NM?ZU(F>%+,\XI)<=7)09_J!6+&(NX((C:%>:P&_*3Z>'3P> M:DLD:5#KW&25%GT_"U.CO'M"VK#00^/P%]A';<47GVZ80H*$+9$0XS6"N]?"H/,I)$),POQI:A'A R!O/^2_E(!]\ M5D29O(.#;24:,'$GK8^=WS$A8*72L MN=\L&ZQ";C;]+1:X6.!0X';%U/&,F%%9@ 7MVYBZPXX+D#RAVX0$AKH?8U&* M18DS 5A]'XQ=1W.87:8FH2#%M21=,H$T&25T@_;L$%GDG!U7W?VY="\OS,ZW M9\<2&DLH%?&E3QD(49+[CLDY8&=J%&3!SDB-\:)3Z /M85'"8T#Q6/Z6&5LQ MZBD+(JZGL3_Q:1\43O@AH#W$*%PWV8-AO!&5(HCE+9:W.7F[M"$/132\3GBT M7O'FY$P[Q@L:6XL>SN+'_/)P1EVN[.-GB!G3V@!L:=5[ Q.9(S-VBR2/7?:1-13=)7\Y-PA ' CA*!,YQ MT#O Y"^)8&,:UV0(*SEQ;(\2*;%$QA))&6?$@E4SQ;%HQ*)!!!V$.ZD+K$.< MI&<_2])TWD1 ;3%JE4]DR.+,6"Q7T44N :"*L^XZ#1A#ZHN],T #P4^M M*@'OBX"1)FSJN:IL+%ZQ>)':8C)EC\TN,HK;T)S81?1GUU- T1#T0)0;XR;^ M6'J$]-0)10-J\'S4%P!FH%R>@/%A\W=Y@]:FF5%9C^6-HGOST#XJLX6"\#8B M;$?>'PR9.=\+ 1PI+3/!D+3:MD2Y/\+"IWAE#,43WKWO&.R"VL:@H[[;LJE. M%0)0\PXF)^'-)L0K/=+,<0@ E7Y#35NXB*&:$:!R>X2&8C@.)UIAHB](3F2C M>W0K&+5)F] /%@2;_([*728PVV+[[FB64F8+%$2"$"00MI0'EQ#O*]$^5+!M M"(6W$L?!PL&JPK[BW0*X75E1ZQB\X[C' 4-XCAE@2BR)& N7]4T/6)9AVI[7 MSB1BK&2.P$W%0ENHMRY 7]ELN1742,L%0',$5,(C52B1+$3%?EW@#!%M?] Q M%+ <<;8,Q;M#XAMO:CM#ML,[)!#\S$"_O416\L/"#1AK"./(M@3YL07N-O44 M1=Z,]TF)V\&00U]S]!''LH#G'VE=;(Z",1EP4KGO(%!U>IHY\A$G0\QT(0PE M "1DS/CEQ '%NMI?'7@? 6D0PD8QI&SMM30B+@0$L:6*PX^ MUR,!C:'H'%HI">>$HPW),-C:(E2N@9)!Y!#BT&.Y"9S!4*P:(GJBAGXQ?,*#7E)SH'N">1\)D ?J1:ZY E ' M"R")6A: VW#>5,"-@GYW P4OV%Q\9ZF&"0D80?"%(<(P3ZA<+@R+)AXX,%3S M;\IGEVC\ T!GYIB!!"$1 *RX+_43=QWNF$M%+2T0TEDXD CE!#Y+-!'':>4Q M(1Y5PJ6Q8=K)X0Q'1!]@H%HB*"O^R,+ \ VOX^"+(+40LH.85"H['"T?IX$3 MU "SA\#6OB"-A(#7RJ$&IH!&G&EQ]P*<<#+O& RP8-N+QC='HHIUZA?N\;(U($3&/I#KCQ3 ?8 MCH=6+6BF"SKI,0:!Z1$RG\& [CR=G,%QM\ANJW1)O3DC&/(&@=\3G#=RL="W M9(K)X)R/_F;,4]=#[P?>OX;HG@_VZ %X"*C=9L1A&\5/2=& +<>&.$"58/BR M +'2M#P*;&V*.D(=W'.[PV>&'4Z;XJ @@(F<:J"%R&,+!7CD1_$' (>?18*8 M]0LQ?28#7.Y(%S\R@X)TM0$5,KP]DOAZ1E@W#B[CV3U <<$Q$'X-8$K M@Z/7RLSS,3!-G,R:.EY)'(>;-1:I, MWO1 66[=[OK(:2FH1#N&ND))05X3X/F(E(:FDL%C,D CHM^N/9GAPBH;0)D: M;-)Q =+$"YK!:%?&3+EB1P:FW6D?N=*9WZW$&=XHE/A %0V8X'JP^TC>SIP* MR+"(YP@]W<(ST0VDP9&,"R(Q$C2>J;SN"#"D/VC$%B?P;@4TA5H="DVL"P9& M#A]OZ9@213<(#.> )W8-52A6KC75F*7>1NF)[PP*$YP>3-E:D>246#N2KT\)CI) MI=):P*8LVA@?L4 P?1)4WX!>%;/S\8/>9V/J#7X]V/PF].!H46\*@]VFL)?2VSI. MRF/(4$-$+YP"H,D9<9'3I.O84R:^2&9"%3G!P MNS?_:E%T%V/3#=AUN%KA^M!T7SJ$H4SV>MK_'_^>L##5ECR8H5)%P#_*-9&T MW\JI?NY<8+ 1KA$S'UR+\\&.$:R>/4CPN50:OW*^R'/4^3[89X$AO!,?JJ)K$G1_W/A MNJ#J&(5KXZ#W##A:F@1O$6=]SLP]O\YSFQ+25\DP4Q;GU3!U\#31E#"])ROP MSPJ*X-@5!1&2,5G3$,627GAEB/"3.5UAP"13@=@=KQE03NQE. ;N MJN\EZNH&+\GSTA35>D%]*W5"_AOHCW")HWPHDC&A799%5EG\??$Q."P(XLC! M-8GG.Z*#!?V]62* RE0?TG9"SRAJ>4JLL\PQ5KH/9-E,];? 7J."PQIBR#-& M-C/29O-M/$H'"=PP$(@ O37885QLUL["O$Z@C7:Z%V*79]>UY_H-V]PV3DIS:[O6_:'((;RINA M@;9"5/',5]5MWE>%#31S_4X#YM=.Z0H(#/COP8JH5!R69N=>1J8M.,Y&GFW.Q!-HZJ2@& (68: M[!'GJ0;Y'?D&,K=9B0&+AIT@)BK3%6!B\\L MC.-/5,(6?D%H4&4?)1$2/72A]PY:63PZ$24JX*UY>NMQI=B M 7$U< TY'K*&567969K@3Z(;+GX5D01$6@JR'I2PG']X11@6%HA$$711Z*5D MI(*>$\U'V5@D8LOET@.0A60G27NP'?'RODNDP1Y4CEEX@:5K5=6-,24T-C2> M2#0>H99*7K'2QQ9J$@@2J? ]]N&>CX2L]GC,GAK+T[XK4@?+BK0JLCJ5F.6M MPTW7H5[CL?T0JGFQ5Y#MVT%[9 /J5PM;S-F1N\MYVH)BI>A["U--AI%6965M M@RTB8 817Z\ 4#++^60^F8UL8A8QX@0T7 A*IUL#&;@"<2&<+*I>%]P=T M1T14O?)/PE3FB/&=-2*IXL6YW8*#2!1H&U^6LG] VR*R%9\X;7I&/ MIJ[O9S!;>4E$87P)4>]NA'%N#@QU4P;^&)E$D $',_71.T&);0]S&<3DA$4S M/,@3OS/BJ.0NMI002+DG*0G4FM' 4.+;^60BJ:\^6'R+V[@:3V @R:-L %&( M=YX5*Z@C]V<\)S.9)T@@2T44YCY3$C;;QU _V-C6E<8%V7#$. S)!6%=)IA ZFQR5%?JX16U:;69FOD.H'6E)11)GOETT@*AA:B@*]45 M]2! ARYUI@7+J^3+Y[N0J.&+V2@5/7ED,$5-<1'?@8@UL3'=R)X-/_(@P#?6F7:@"S=.^R2M*>+VQ7TO%G0QH=$R>Q[74]0,5(6'>H^KJL1P;R* MW$'9;\3W6";8G9ED$PAH GB%B>16G5?@; [4_!%&KDX^9\R6VJW-[XV TRL: M7;JS[@AG#:BLB?RP+"K1/$YB@JDRWE%(,\%*&VA Y;K8#KI!#L&;FS^E+ 5S M!V0?>O-#CE2@6'W9E_PF"X9GE;U6NJU0"V$ODT"J!@UH M,#>8#_\J'BC5R.4-Y@'$Z"I+7H1G"Y:^AR0%(HQ%!>L']*@:$F() CWG@%>' M?< RIDQ/LPWRIDRES!=Z:1EYW*E8!K% G!B(X,[8[Q^T$%682KU.TT!RYR P MF?!@@&E%PT3L1TLTT4S9FC%M)3FNH%]+T !Q_2ZO *V&P85E#ZD@LF)OKY.> M7N 1H&)44,9G[KV)-6>E["VZ!P7U^7S77$1WGF<&.*O4X1C5K"I[3I-20\R+ M1O@"W/L*KF,[R@^\TC%W.")$:BDWM.R33.P:3%8M/H7&[R![-2D*QK+Z:W7= M!MN%PXA>']F*V'%L31>'$QH2)A[V+LPY1\FPS/#FQZ080Z8AY)"CQE.GZ[U^ MUP#"3T;T*Z"+32T$E'OCMS,Y.1 X-)10T*=22WSG0IE]3#]+>83>3;QLOEO-62(@-HW;&0 M@"S).]<6'^NY.6K358$ M,2 "2FXF@:NKR2HAX*OVDK\U2MV^717!# \-(F4[%WPM^)M>?4/$P^A)$^,C1#@(;$$ "6 %"OZCO M6CD!&Q';[RCG.PM>&01NXKXQ MHMM03JXJ %(&21_ C"@]A]B(MH00D%,H=7D1SA*SD,:GQ2AO$F(%I44BG&@" MN"89FASC(":\H3#)P514]!9*O?0,(C^C#F(LMW.K%$!>/8N1E538$+&-QK*M M%)=VK$C(\ ?KKF+8 \T9^M!4N64:$L%"@JR&6@X5,RYRME@6>A5SMUC!6NWLHC"D\+?S2NT$ 8+'WOCRE ,>*B&0D"S$#&/F%@E MEBA2FZ%&9=E:'Z7M>@O=W3)5$>X\& ;LW(F)[[B^1G/T'N< #EL_]=7Q?,CO MQJ[(2\.5T>\*PO, .Z>X#R/>L,\IH6$[Q#^YF>"Y!9Y%EY1.'"U/Y^4OU9D= M&Y@B!LP<5#J\><*;A?!R-D)/K["8RY8O/++ FZ@T^ X[/S/.00]&'[P14F^D M<3"<\CW7U!5H(.P;X\98X'O&=*PQ&.R[,,88C[R3(N:+B:5H52G"2A93\;'0 MQ$*CYD9ED5>!S0TC$&#G2RPPL<#,"0QFKY!Y"G,&U/=GQKHE%A6%@$,=%\)) M D'V$IT;HY VR+#%LA3+$O$EA%/C0JP,+*6$04DF.G@X(JDC6_F###I4?"#C MR8+ICN::L9#%0A8HK BP;!A2D9AB$O<[R*[S?D3Y$1M_Y<=R%>8,Z'/([QW1)$'RT4"'@=TE8(1 M$0:_HM;@4'F;@&ZI4D$P$RI&Z9VO]V7?J ;PB[%NX'='?)Q$PE& M#5:1E]5CL8G%!L7F##E=4,V$FDT4*&L!9B. K&/9B64'96>'NG!QC%K,*O,0 M#]C6? 0]34#CEQZ[S['<+$MF@F5R>P&E'" 8JLW$IA61?N+0J".BR5C6<$Y] MA7!Y3:;@0UWZ,2EQ+)?/D1+KILMDA7C0(7\ _8 M-L0&.1Z2&,N:QI*ASOYY7-6@N97W>D$O&9XG@:\%P%R8<)8H_A%4*@$/'3R" MV1V.9O1KS-30-(I"(?3E)_1>/+GWU2?W@MGZPUZ@E BX:&1/0YVY2=++ MJ$UZR)KFBG%['#F3H_O4U@Y3"X[-E161("U"M2B\-? $> .[V_4=HNE<@1&3 MMQBSQPE-=F]PIW8TT]4$=\>C3#P!?[-W#CC/>X[FZQO1/+TK@2.9'8%&$J9)Q02!CG@F+\Q3[Y!)+GTO 2\EU3V!P:GX+/X?OB<-,EB MS9(*(YS/9[TZ"'KB2#(\OON$VR1>8PXP'T%'X:624;Q VMQ:\LY]).$P+Y= ONH'S)HC:(E/S@O";^2@CH.H3(W)=YEN(LXJX^J;M(."E MQ$B-D'@QQ"J<$<-"]TDY"T3=J*QK6!!P?=BC6YRJ1W"])&PK17S? 5J6F&21 M-!*6PIV^((ZXU"J\%*HY %[@KP+N+'Z(H!IW_I'S*#!_3'BM]*?=?X*T3_@N M,'6;6/@>HFQ",0ZI$+LS@M&:IV"2?S=I-NPUKX!3-8).AL-Z)AQ"UD'L/)SP M4ABV%V9KPJG%@+ \8LJ6DV48N@EG2/+)16SZRD^X1"B6 M[ML\\"0I'GZ5R/4-(=;14A!? 8YD89&VRSFM0//SF2OHQM0XWU/499,#HD<7,=0I[04AJBD '91 MH0+%&I.+LH@UY 4P B%W XGES/D9M@!NA^.H$"(L/"482=[9K(I$A#0$#.@L M9,-AMWF[1&Z0!M9,Z])5 [RL\!Z$10%YW,-O*(:> XH9!=96P O,:_/@[0$& M,%1358#_^#/WF%:@1R.@+00WF! 8)BQY@+J%=9-@PF3$F^="8-&;Z\*=.>8# M;)?DME-!%C3DZ_4$7R_SA)%"!Z)V0%O"$\_TG?2Z!60&M",*L@R%70ZC]KD* M9A@C" XAY\?AE7)$WD#TQY V4\8_/\63K/P.ES.0HBW0 >,K(UU+DAA/.+H9 M=0-[MA,FEE,$&J?X0^2OPKDQ0^ C>P@2-4J2"DSP7S MK#AZ?%89/4YV:NV)1^2]TV@!"CVE>#_4>NHKDBUGKRC(",$G8=J4 P>B@5+? M7<(+\-YH&-(78'O A,U\7V:UPRQ-B#86O*72>R'@>>%QZ"PP;61WX1^0+IE( M$#\5/DLRN*KTYA+;$,$9!/.E."ULD9(J:"P&GDS;853!=%\OI8(LBPI)H'E L4QA*M1Z"6^!$W5V.Q0 T3-I$I!Y M=N>Q;1)1"ADV+DHNR+4(JHNTB@KG0$AW4U,-YQ9?^1YS*'T*I&TP43VG<@RR M,8O',NC967X[%>37#NFJ'@(!8AU"8MP*0-O.+!#%,/\GQ]Q86&?;F9]6#P/P M"<["S[P#L#]]S%;EQ'DIX"7CP,QBV\IDDR+MDXQ"P^ZMH-0F/&& 4A?RC M,)CX+ M=YP"U39\:JHAQHM@($&=#;]G1U]783409V#I_2@0(2X3IFY-!.+GG)R8@W(! M<:(K4AEC4#OT)&#JE(K'_)/R59/B, ?CO=@+%$*W",V,D-D [$4;'IVC+ @6 MV?#%%&)4P@E10%9 P7LV9-T3KZ7)USM#'?FH,R"M+('),- M=Q+Y9XR9S?E?)$R" $&6UA__8G8@F1<6[->A*'S)^E(%@3;K,'-3;CRB'PM[H#ROY)$/!D@X"^B"L5= M<+$TSG=/.E#O N#] .\TR)]"3#?&D=Z.DHH@+F8A7>PQ1K,8IB(6K@CA4NI( MO$8*3C"WAI)6T&9.-E;HN,L?BU(L2J);UX-J/-K*, 6WYG1,S^$,)I#J,>!Y M8LF))8,7BA>)U.(>M M$X)"L<,-$7* 8&J2M(UL+'3'2U@L84N'OY6\,Z4I")P?F]9,0WY,*5-3;MYP^D1Y:4^I M32:6M%C2I*3M! NEI+G!N%<;)3T-FX,[DTUZ,/>TJ[+<$U89\;> M#0/4)\.MHEW.^L">RX-ZGM*WV!UIT!M!_BNTF?AFB,PDR3NJ1KSE&Q\)F$M< MV2A%?2,<:%T3%^$W51M>%VDXJ,EF@<8$;8IH+ [1B\/;JR0GLA>*+03[FX2O M7'\&QI6:-/8T$]JY1KX1)J^6K?>:U0="$8Y9%I!'L$ABOUH]"_5R\V*_ 0,< MH;@$2$NZFCL03-EP-;MK8BT9766H M%E!J!'C,\/6!.6%?PI5#7]I QB%+PRYOV;L0Y!IX/Q:QUUK:&$F%L,-2+"WV M*VAC>+PG(V)OL:'?91< 4D!UROU]?/9%NR]%&EZ'5J?>OXH :/IU GA +7Y ME%*OFN/,X/%(LF3O%K^1YD%3F>OQ6801]C\DC ?>9 XC2,'V8\A"KPR6R_BJ$-LFCI_X M."_!B290]GLC>^I*>E@\040Q1(MBB"7'BZK<0>_:JW5"TLBHVJ 93G$4>=6BU)*1B2\RNZ,MD+ M:+XX5S3O:N+V!:\^3Z"F=0>F(1J1>!\]"T][3.GQ#WUJ>]@[*NO#1>/,S78P M'(Y\)D3]&AHE4K>4*R8+*&9?$KXEWT@J@=B/#$2UL%MIA@15*\!0FC%1'FS,$/TE#D6-LO^<)4A$X4L>B^<3[=MEZONZ8P$)SA1;]E F$L5X@ MEY-&)NI$B*RN',9:TN2Q@9KT;6H3OPXAUX,I9B-_#DR=>1,\R$RGM__Y\BV# MN;AE,&X9?)>60:8*I<[.;F4*]%)K8WN5*RXDU%ZE!K2$J?_OCW:GG-4Z15UO MZQ6MT\Z7C4J[8VB9=CI=S)QUIKCPAT*Z5"ID M2YG_D\N4*^UY.?$?9T;=OP]9B(A+V6-WV MK4S%&$>(1O@@K:)7Q!5!F2Q<#KV!K2*[%5VX4-@*,IK,6S2D<"0TGUFH=")- MYPO6YT2F:=P+S-/9UI[H)VO(D>BVV")%);Z_!LAFBF&5W5E9AC,B8XG(42Q" M==D9'S$_>>)&!0'!6P\ M@E'/8C3_X]^HD_G?_YCOY#V_^!9O2&O.OY6J>R@3!N!TR#>-L1C'2B# $0B* M8%[8'IFZ%H:*4% P,/T.TYU\W#@8B!85F"J%370T<,B6$"E>N' PWCUQC(G& M&17F _-60^%I)ZYK(X3J.G%,=ND)1.A_B; =TMXB)O\;W\ R8/Z3'7$8RN7Y M74K:\8"<>7O0.*$4%@+=+1@8^-P4"PEE*_26HMW4M8'!*9H6-T:N,26GQ%8&+/<%DV_NZ+I%\-VQ$>"4I^G M2+*@W^[)'N*7!$T,,\)EJKYN>LP\C<>FYQF !$7KC/C ]LC D3[DU 8Z>%A] MV8=,X^-S%\!Y#-Z,,U>3HKF+X$(:?--V> $F2,2O= (7L(]@6)M]?<;9(7$\ M;Q'I)/J9!>0(+ C,BD*"2B".16P%)J8\5V(+R-.O31#R2^(LO/0B>"$Q30KC MZDI]\@^+[CM9C)<<'L5=^$IF!"".<-Z(V&YTF8O"GP54VLK03%N!X_@BBA." M;8EQ?DJ$8DX08;Z8;T-EL(3K3Z"$Y%+)F$""=@:FT4O4'HVNCZ._=664F/X6 M;)SZ-X.# PE^L<4CDHRN1[-'< %=;428;(2.IP"%!?AX8<02=J1-"6K0BUP& MH6#(=$A8LZ7'#O!T<($GO@,8$&Z4K06SN8DFA ,FFCC$O0B8F'PE2!AA&1U39PW5J1QP41L"1.(4RZ,_=*BVZ^4"$AX"]O.&+ALX.53$-_!ZA! M,)#L.[\TYFPYLT0NDTQDT]E<,JB^=AT3 <<"=48NJ%+\"2MW60&"O_2I1+SG M:&-C:CM#69/^"S[S=Y(@+J72"*PO>Z@&:%,;Z7KK3E^S>/5"-M8R#OS<*FK2PU&^IAW4+$N)?8C3A(J'MI,@>]>^$+R M-Q\F)*N+E3&LKZ726UE>VGE%WS/E%*&FQC-[4$WJ4A6*9_$JA:ULY7^H&5E< M5$D#_E!;?2/: '@J,+-5S/Z/>AZ4KN!$84M42?%?<\E(Y6:P0-#:) I!XN<4 M=";_I,(F,[#ZBS5%^7_PON^PJN?2DVVS_7I+SV\^?)6KO1M#V^HYVDK6UI5JG;8,G8< M,W$,WURH(_U9*?H*[_#A)P$G0<(#-^]GS[["/GZ8OO@*BQ._PWJ\PP85_:CI@429^;24N9IHEHH_W#0K?NN7/1('AQ]X,-?1G-[;* CDK ML>T8GK;GCOX89L=BLKW@D; M[GM&-].I%+/MC*:7VOE*,=\N%[HP#I#OE?*=DM8KBQ;]=UIFI>N]-Z]CNVP>&8RR.)O!70GNP>@\Q_U8N0Y.#XL&B MDW>I"JX 7:Q4W"K =YY2T!/W^#-;R!0+E6PQO^0.Z:U*Z [\& I0%CQ5RQY< MW M<\W$_X3K=__VAN_W'%!278"3DT7BL5/1,.EO9NIOT?R2TD?>_/_8=;3(P MNS^BGV3NRMAHKB:;WM/:O$+BF)X M0+K+#A'[88>I+L?X8F_*CBT^ZIGF# %?H6LDOM@;-GS3,Q*9?#K]Q5Z,"RGS M<$\3.\Q4ZUKB.'^42/_*?;$7;1HC8S*P+2/Q5R5=^#N1+192AE^\KP[H$MA+AO T/[$E%_ZU\&?R,K&'B3W$ M=#K=&D[&_:VN]K%KE)U?HW#X$]7P$CU-ME*%.6IZ[-6]57+6[*-6XRW-/BL< M6(?N!"!9DJTRR1^YXG^4EIV M_OX38O;,PD8GC5=K6PCGCNOASCK,%__&(JF-A6*-WN]A(UL5WR_%_?(^%+9* MA?>3<0')(CHSGQ^PZV@C[+9W!S@UQ+M]N4 NZ6G$(\/^D4V*V0"\5.BZ:F.Z M"C%"W+CL]!&7+C1KVV,C# PH:12)YTQ034LT+)P>T+H#\;30MQ> O@X5+SJVPV&?%&D,[K@MO MP(W87RT+CSVJ,O?OQ%]G.]7Z]M^_VQOZ]MF%U\TL\%F%=QY5(,$/2.@3="9/ M-(=)M3@E;^X3?\>NVXVV^MLX)@S:@MO_/VE$W]-+7'%<'#JSN3(-!H%G2R4B M&(HADNFYKYDX\,J%$$0P+'8K/9$\C(C1!4J&4#;A235B9.NJRK7'7'F8]!/. MOE1 J#1HT-X)8_5UPB/$\YC_JC5:HMQ0Z?>(@UW%_)5LTNBQ3";L63&G[_@C M8Y%FFJ]R(_@^(G8^4I.^AT>&!G\+DX;K7R8?ENQB.3&)AK M3O*93X!_P(G/9 "'&Q[?%;@2\"@ -#NR77[-%5$$5WN0*(#Y&"%F(ZZ\< M)#$0K:GBW9%637'PM[Y\[;P0U\[CVOE[U\[SQ:W*NP(#?I*GNP,N!XP,$H[) M"9 !.)OK[6+LAN]#9GZ,[R-X>;N4*#)&]I2P+OB?-6:HT(D$9@-4OKZ#0 <\ M#T#7XHKY_=-VW5!2\/<2C,M0>L ATMSP0B!#30RK#ZZ$*[?N:-P%J=-(3LW,AXEP!3'& I>D1M;;8G,Z#9[=H"KT$8>@G,A M:S1$XXKU%)'T"KZ5IPUA9!W$;CJP1P:Y4U,*:=A]DN W*$\GD'\B'PYE.,G- M/"8U6/R!8"7&PJ-%7@"< $OU<7PP1;!:"]A7@?LEH@6D2K2N1J_R1![[CLB]OJ+*MNB@M M/J:9V.$XM9GH95<^VJ$L7@(=/+H @T%!Y4C9 V@W' P.0&PDK:/ M6JW#]Q+W"T##47G\!P@B 7RE:_#CKZ8,8"1=WHXV2PNVD>YN(_22^^(N!A#T M&F:^[6[(FV>WL%Q. D24!1!>02;Z!=D*\UGH\V(;1,>+HIOXJ]$X^YN%7XVS M(/']TNU S2V*,EI+*\3S00!)^"9H7!!7'4P(4AOH$B #E36+DW!3$L%^)$Q( MV*-18I*B2_6%&((LNF)RJ+$',)VN/X8W[ J"%SOX(W],@>TN'T\"VKM*S @/ MC=6";"4.P_4*:2TH*\XVIP,OBNZHV "-(_[X\/!SRX'GP<*/ M*F\"-#.PGPIJ@O:@L9>'RZJ0B(03]L@6Y@GA@H*;F];$%ZH(,>78N\H8'#[+ M5LZS';00L)]H2H$V*C$9^>0C@?H(%5Q,'3 6Q=58( J/SI]9V"WV)N$S/F;V MCQU5P\&LBQH^0]IE/!&X_>*YX+M!Q.HB!77/#!\K:H# 6N#$GO",&OPQ0AG+ M@\3?DOTO',@NASO4S5Z/T*U(>RB: T-X?%OV5;8KI$D6LJ(AG<,1T4>HB7B MGUQ1_I.4AV*WD:KN/=3\5F*#<\IP)GLVL[Q3](=Y18.=V#$<*B7].)5"0$NH MZ;I#F52 AHV6@"LIK%QT%8 O3C&#"3VJ/K/[+Y36%D%&1;5>N$Q1=U8%8MD7 M0\*U3*\NEY<7CQ54N]]XJB(63CYM]!-1#,3L).)18IY>!N-";^/*T(.QI6"7 M5ZF_@R<,8!SG]3V9QP"6R[1T]G6'6( H*0U=(-Q4":=!\>'<(%4 #ZW8'J): M'!/D,'M0Q^SX$!]SJC/N,L&GB*1*<)*Q6-6>(7PLF#1Q_H6OA*L0^8(0&>,[ MS:N'''+I%88W'1)1(\' MHE_W7E]T^OG/C3IO\MO\V;'FZ+1X%#D>1=[P4>3$ MEY\C7IF'(K&AK4%1<[O?=5XO>IXVZ(DP.97EY/%7JSC=I<=XIAL-JDI5.-@V\ MU&.R],*B 2!H@0CA:D31M@F?UHKF0UN%H3YP;-@QZ1J2V)!3YKYEEOAW_(K% M$>-XPC@\8;S19CABP'A=YXO?HAJ@WS!P'Y=ZC\J\ZZLT1* @Z#5(&U'#+2X( M'MY7J1Q28)*'UW2'?#0H>.JIH0U1F1F/[)BY2=E?)Y3AW #M(LWF*JUWX9YZ M28L*3Z0N5W@Z6)E[QEXNSD(9?!(Q'"RVLS^S/BNF-YU MX_'='__F2W&U-J[6OG>U-E<6U=J-]JUW#:9I3=EX>ASPTM$QL_E02O4-KO">YP'_X!AX GOF.:^+;HGAD5-X3T< MN@(OBMBSPYZ1;K OCI+P%CZ? L/8!]'DV =[(_29!W-=V!P%1!QUZ;^!30]R M'7P%_L%1XF=W%]\D? ?'X ].O76!40=)@<9U;Z6M_8U-%'D,1%CI&N:$AULL M*&*!A>GA'H1?%1^[8\!U$)'$MD:1(8;FLYUUU(R/BZND[D-KB:/9N1?6 M,S@M$^RBIR5R$AY3'^R)H/6_*Y;-M\33X$(P3YLV%6==DGPZ>1XN<$&X^<[S MX4V82:1,7.!CDGLHO+]US+W\AD;<-KH:6RZ!AFA: YII&P66(?D*!3#69CC4 MR' K")[%2;>]SCTT E>O1N0?D,4:/+WMOE0+T4.8I(+<0+,<$ H M-9T=M1@+729%\R]U2.5!+[-8:.]6+9JV1:-PTFK63 M1F+_HMXZ8YJAFO[G\'1G2S:ST6OOU$]W:Z>-VB[[1Z-^?+A;;=9VMZO'U=.= M6N.@5FLVVL5*N5!>[S=7'S[!GSY!C__.S7MS[G@FNB^?M$3PH<<$=A4DA )Z MBZ^AZ+^_6HW$;OWXN'K12!R>)IH']5:C>KK;^"?!_K!?K9Z%^O.X?&>U="]7 MSNEM+<^$/-\I=-L5H]!KYW):-U?62H5B,^&3NWNZLSWK[VJU(Z.X6W$JF:>=$7PR/__)U..TTWBZWAND M]T>]W.7(ZVVW;Z?M[.(U)SMY+W>3.Z^VQD?]:=5,]5K6>95]QUXZ'8N#K[U:BV<^WT_"=_'8R+Q8/[>BY]=#"^NQO<&ZG)KVD.Y:.U6RMG)7;5=6/QD[;*6:XRLRL7P2C^Y.;V]OSWKM<_; MQ<5/5JY25]GSEE>H&78]-_"._8M\9=HN1=R]WCJW[-GEK];X^/#LNK'SE*\/ MJ^WRXBZEW4IO MYSI=;6?2BQ\]NFGU#_;JS?W6U22S;U:FU=-BE7TTN_C18=\S]_K.]D5Z/&MK MK5>[;YOG9-*-USMN9B-4_\5IG!Z/Z6&N- M6Z7[BV*OW6P_L(]&+/^MEYGU!_='@[1V.=T?ER^ZD[-?3/0BUO_7;5Z[2Y\[ M7OHJ?3LZGYK6DVFRJT9LP)U>?+SSK\YJM9V[W:O3L_/#ZU\C]EH1ZWISU7H\ MSM32A:$VRUL'M?R]=\QD*ANQKOE>];HX* ]GZ6Q^^]CT*[M=O# M/!Z?/62>V.'+1FS! M=)KN]O8*F6)M?'59*STRM3'IL*M&;(&?E9->O>[[GL6:-. MP-Y9UM2-RU^UAMZ\T?9V:Z9_P#X:L:X7PVF]6GXP2JW4_=EYK7L=?=XV#V_/#N% M9XTX+W>_FJ/9[O[=I#5VM9M:O]T]'XW/V]FH W-YSOZR:B8KH_ORZE? MM>O]^V-VU8C=ZISW>@^SRZ?*<*T.@> ME#NWQ5;WTCIOY^9WJYW/%K*E0J;3+N2+S YDV9GNZ'JI;71SAEXI58Q\L?OZ M;\SMWFK?R=/LGY0J%VQI(HYRIGN<+E<*A5I+FXS* M_;-FXZ[/U%XN0N2N:\/'VG'J]+!F=-PK[>3^I*0Q998+A /ILV780,8;NA&U MB6O\%/]070%PM'GH "YFEUS3T,B@YGNV^ 5Y]/B;D-^O>A2.S$V&/?@%7OC, MY'E2>/(ZQ,QF=BM36,:$'IV"A.M#YAE:/D5L*7Y&S+"?%"1-V3J]&)^(M&7D MG.S'ABJ1WM0;:X4BVFKY__1KQ\2!:F%PF^:XK M]))Y^2-RLTI*;[FDO-<1>E&_?[BPY(CN\I7%GGGY6%B16,UNCII]OAZX68O% MM>_JN?Y-U,Y4(M\,7?PAPO6'9(F4\QK+TMN4-\PJOY/"#JKY/_]OMVL8O=Z' MRU(H5U?"YCY<(A/G!G^FZ%>_ZR16&PVU3OD>&OP3UNJM+L_[Z^,__^[/G)NW M^'_O:L]SWU4:N$;]>M*PGO[N6W3E*DNQT[JXJ)TV$T)+;I:KNP;GX,-S!)N@ M K_!/G]X>+_&RFT#?$/9YUI\A>[3W,%[:[Q/=P;>FD5]WYSI>OD%B<)6]K=# M]<1_S4?VKM:>PPD-?^]N6]5ZYE@;N?_[(Y7[D2#NN__]83YZ/RU_K-L>__N/A*6-V?OX;JJO:9.?(-Q5 M2X?_J=W[YH,V@N;>JK>C.0Z@W5QJ(]_XD7#9UK)OL2N+#J9QNF1/'RN/0[,T M2FNE6\>O_H*^O"P+-TO%9*Y<^.]_PBOQ[[MF,#[]!,7N]-($URI+\['G)-LV M]7W[*/O8:@^SO\;5PX'=KIQG^W_\G!2U1W-/N[^\2Q?'E8O\U?6N,6O!.^!EL> M1R.;$8UDLJLO5=,!S(J_D%&\\.YZ\-/=JC@PB0,3<+B$Y;^0AO_4\':([#3" MSQJ,;W>WKUNGA\/[8MOT*IF:<9WOMW&>(5](9DJY.!R)PY$O$XZ\\G0<-:=[ M]V[_]JRV?[Y[='Q>R=YKE?,VCO#D,\E2.BI8_]I!R&M,;AW1+,GD%C<\]%@/ M^QH;TS]J3%& UWA/JLL]LIN>>>7>S(#]U^'C>+H,IS622Q4+Y M8TWIM[&;L9'\6"/Y*JE_N-F[OG3:=F]8?S@_N&QD)U;S=LJDGIG(3#Z9+GV8 MB=RD0/45J;LSP'TT.1"CRW$Q$1Y[V'7R?9:KN"I;1\LE@JQJ%K'+I^&:O\MD,R&/>[1F[G MRAGNI._NCK8GS7+V:,H."=;1DI52_MM%L*^PQ8<6 -3:SHP'L:4XB-WLF9/8 M^BXJ%BGDS,^/T""IJ^%EVMDM.,/](SU?/RVG\T?3/N N,3M;*E3BH';3AV=B M\_KR*6CV4\-^H7^5J1T]7DRV3]OWLXI[#J> &=)R,2JULZE![FN/Q)\<[OST MY5@3"[I>[OI:+9R3%\@^&2N4$X6"YDX M/(W#TR]C/U\\$$>/=SW_J,7VU5VJ+LZ.:MV*_73G MIN_US*_#TW:EU6_W <(7LKO99#8?U?\=!YYQ-77=#..J$J\]5.[V&H-^MS4N M% M7P].N6[00M!HJJ> P9K]0D/E1)O/LHGY6NVC>)*JGNXG:>>OP[*1VVDPF M3FM-;C?+<>]O')1^3>-ZY@!?M3<[&VF65[5TF+B: )=>=$ZKL[OKW^:&];OA M??-R7.O7*GIZC-CWU+&4ST45A^(0-0Y1-],2O_)X7!N=W,[!I7K<;2Z:0:USO2% M!IRUQX;F&A?P)O5>RS70G8]0&=4]:SC8V^X9M7MC5CH>6VG_A,6MF3Q8U&*R M%-EM$0>M<="Z;J;RM8)_6-BOU\M7O^R:?[E[ZS:NK[>*BMILX/-VIG]02S>IU[=U!PS[=Z5X/2[IF_O>;>NYZOGUW?7)?148U7BL6HX'5>-8]>L8 MX%<=CNNG[L3L.C@5WJO7A<- 03J7X8:GC336UAZ?-ZNG^X?:Q MB%/5%'%<68UCU8TSIX<6>Z"^V1D94E74'KLC'Q9^W[;UJ3D:1>@.8W=\6?!_ M=?*UU*^GTL/EW33EEJO /XJ%UDJRG([G5N.@=1-LYAM/0&E\[UUT=K>G-?A@6]H MBI]1-G?][4K33_6MVG[#>M1K!Q>[U@PYO"%#7"HDBQ_=V/3IIVB] MEU/CK? MP6@_3!1RB%QP.MD*WN6_G:?L'9+YK9\5'_<=K. M$,Q2,I]>/^6=Q!+=QPA(SXBE+(1CQ%$V[V?'+)VK.M9?\ M3U63WT ,/KVN](D*< -\T-]B[IEH,T!?C8LHC$'"_9/3Q1DOK^(:>&)D:NJ0F>T+>NY") M&P W.SSYI@85Y/DX$.?EJJ.X.YP\-;SMFUJ].)HUZ[6=T>TA4QT(KU).)W.1 M+4]Q"66C@K/O8BU7EGJ_,M@[UE/YU% KZF/SH95*#XTJ2#TSF(5B,I__SA K M;[&A.!Z8L#OLO358+O?CQKT_W0M?#Z.Z9@[Y-[2SX=E8H7AFSQC;\8,YR!__ MK%,XWZZ5F;%%G)5<,E>)._[B^/7K6.17GX_VK%TV;ZK'>ZTKMW90 MFS6+DZEW#N<#:!:3Z>RW 09]&T<%3 @F/.W1^+"D\7 H'AU+0I7)Z4X/=>*1M MOO3SM/.N)ZN/QQ7,C>MYK"RR^PFHJUDBI5DH1+%EQ[' MKG'LNFXF;R5YGU0.TN9YN56OW5JA7^@,ZU60=VA1RN62^5P4;M]W"5M7 M+K-*"JC=VK9 *K; MQX?[U>9A_30F+HB#D>W/SDO'C5SZ?'@OG=]J9T?6D44_CR4E'/E M[]P9NG)%3? 77-0N:Z>M6EQ1BP.5+VYHYQ+_S^J8X5[K9F^\N_^8OBJ-*D_5 MZZ;3:/;;V0I!5Q4S'YSZ^_1#LUXUL]@,_]&:V//F]W1W M]NGV;A6.!L)95;(;6Q7[. *#@"(H<5:]J6X?U^) -0Y4-\Q^+G; /:LG;C.5 ME%NS^_F6>7"^[>P?UNK,HZV8<7RGW6D'?R9_6+W*U MQO;VI/VPD^EG,U.0>PI/"U'M5G%XNB0\C>GUXE[/;V]Y%QC&E()^-,W8)'55 MG4[>FV.,7G^_%OKI#,IS_8^G[ZV5JO ':=#]1WL.&O/T&S M[L7 OOYEGJ=W4FP=S"[;?9OINS<(]Q.-E-,%@MQ<34.7#?!Z#TOZ,93QSVZ M'N2,X?C.SQY?-CNURK@*@@YYW#*,*<:%U!5 LNLG)X?-D]HI\-+NU$^;AZ?[ MM=,=P4JPWZI>5$^;M9IL4LI_O0KKI^B0=2RKKK88"R8T9B3XCI7%URU&S$C M/O0,QXM0KX4-[P']1%VZ]F?A4Q7G-Q"#3W?+/U$E?B67U!Z/67#B#C2'/0_I MR=P_";%0JUS"MT;FF(F)_IHOB3MJOC>P'?::^C^)!OW*=%W ;V;Q4<+V/1<" M)?;F"<_V6%2BO^K15HS!Z%G:P[OV]MY%^:8YU*Y/JOWN8?^\WIG^;K[A\'3O M%7$8[4?#L[M#6HY#7 T9DZ4I)CO5'*>=.^ID_+.FM]^KM[O1__%O.)\O9=#(36;)8$I^N)*Z: ME_BE6;[FS!*Y3#(!JY#X:^XWV;>=GX_>KE5R!1\GI/G;XT.M-+/*-7]2*)F3 M0MDN:?TO\=8O"6E#.RV/:F:F-]S_]'1S:;_8'VX?7^QO/XZJ[1Q"%Q5R MY60^7X[+V-\C6_(M,O8KG(F3P]'@JG1IW=9\^[#7V1L<-_2;*9P)0"7*,1,4 MB5']K=-&57996 =ME)AHILZNE^AJ$Y/%'IN=*UH/4QK;S3_;ABV%^8S)\J&U M0Y*LJ(X(K7%J-_9:S4+NIE:<7 ^S5X6+=/'VO)U#,*-\N9@L%*(8R..J]D:E MS[Z%C7R3_&>/AEFM>7RNUX[R]YF]UI5M-ZTJR#_@UI=RR5PZ!C=:B8?-'_LC MS3/TA.T-#(=M_'CB& /#,&N4XW-_MCF?%"[ME]G.=B\.NW]S?9L%OF5C)\\GR1Z>1 MOX^A7>/C\AV"XS>=#VVJEZJ9VZO=UL[.PU#OU<>-XV$5S@^SL-/ MG[X<:V)S-VM^\AN:84RS#=BC&XY;N_?9X8A0*]U=C]!W,\TKGYK"Y/;@PVY?=6DKW?J4O MIA>V^0O/#3/'%79JRIF-95E=9^O[+4UM2"'DF$+0;;\S,M9"(WQ#PZJ,;%8M M?25U,?(KO;MR_?;^329V5RFF$SG/YCB;=W4QA^*;]?L MO'P'"_J& W(\&MX]MIL/N=9^>U+:S1WM79I[YW! $+ 21IWSN2@_-,JB_L<# MTNYU-X?O+FMWONN9O9DJ;?#_F6P@;.8*NAD_\1/*]6:7?:1#+]F!^Q&&_MA(F$ZJ^@SU;CI>P>PEO8+@&"!LZK5B$[IF69G5-]B'78[\8 M&Y;G;K&M?,]E>-.4&GX=&&Y7]F!T\^'?_[+_B(MW1X;F@%X:\">06@>>A&NE M=/I_/D2W=-E"&HYX]6Q>H>U]A6[)5Q;?$/_[__T?]4V#0"75M4>V\U,H4V4) M!F35LZA7^T:JXQC:,*7UV%/^U$93;>;R)2F7M[)YH:A_2H6<(X>B7/Z?1/!/ M>(^%=1]KCREE=4/5&OJ6^!4J8/$[V\6NE)^.,=(\\\& :X>NBEOHV9.?VA?PL_BMVF$$QPC'= 6O MSJ'<>VT5"0\O>M1J:JC0VQFCG,OUNN,W);#TYTM MZ9_1:^_43W=KIXW:+OM'HWY\N%MMUG8;3?9?A)ZH[]7/:A?5YN%ZO[GZ\(G@ MZ1/UO01_?O8!^>;O6VZ528](P_:*S,B*RN^O5B.Q6S\^KEXT$H>GB>9!O=6H MGNXVDHG:]4[MK)E@+YS @78$"KFJ'>X?P+)4+]E"[-?$GT[J+;9"_R38U?:K MU;._W]_,?Y03PL]K/J-7*EJYT]9S1KZ=[W0[[4XOG6X;^8*>[6H5K5?4N-1J MPF4S3P^SIW>3OI=N#(R;G:G5'%UL5]N(7AC^Y+!QWC\:5%MN^NK@IEKO'/5+ MV^EI&U':PI_TLH^#P_O!N-VZO\G<#.[*A\[@'#Y9G/_DT\5QS=G?S5T,[^\+ MC]O'>DZ[N^ZWL^WTPG/>;??M[#G[Y,)S-AZ;E_>Y MF^M1:[;7-?3#]/9HF*ZV\XO/N5VK;X_N.^=&S7".+XH7;O$F9TS;A<5/'FU7 MMF^U[?9-+75\.=ZOV[-AP:VVBXN?K#2>GFJ[@YWMEM$Q.MJ9]70Q>)JV2XN? MS'OZV4G^^KK9FCW=.)W]W1N]5:^VRQ'K^=1]V'FXK3VE[\^&E>M+LVGMU*KM MRN(GQ^79:?[QMO:0-HRQ/1R=-^]K=TQ"THL?K9UU]XS"J<]"]&.STYA5C/N# M ?MH9O&CQI&3:3V,W4HKZY7:U>OFV=5%I=_.1&S]XV#OZ+I<.?;31Q<[WH[Y M<%/;T\[;F8C5+U[OG%Y/:ZVCVI&=N=C+WQ?+^1*3O(CE[S9;!7 M\"^MJG5ZPQX@8OW/;F:FV7THUM-F^=?UZ>Q7M7B_QUXK8@/ZK3OV2H?YAW2C MT!]K9ZF]3.N"735B![JW%^GM_>UB([US8AS4BK\JYQ6;O5;$%IQ>[T[TW9V] M\O!^?W^W_W]X;#(#E]AE-I+G?:J[6S$NAX7TH6C MT:UU6BO>/USLC^YNCYZR[*JY"*FN3'KC8RNGM?8[T_MA_=QS,H_LHQ%;X!L# MHYLZJ3^U#"MS/W9S=T=Y(#>-V(+2)#?;UZ>]QW1J8*<>VO6+C-V8 @_JPD>O MS&OCZJ'^5$EG2\:N,3URBGZ*'=6(+3AUAVUONW#KUXY.#ONY_:/K\YOL%$B+ MQ$Q6Z=ETL^(F*K>TV6UZ(WLJ#(_X.067 M_DDQP90MW8ON.+?S>&/Q4:W#3+[O&1_LF4<:6?K@J\-%_M_?S."EGTU^QSOQ MIW8BD]EZ=GXDWHD_>";*\4ZLPTYDTO$^K,,^Q%9B778B/A'ON@^K]TF\V9?] MX.S\2XF;'?:ECF.R"Q\8HP<#7@UNHEEN:N%.Y=M/(*:_;6)HS% M_[X?6_W'CA#/K37+Q%'T*)UR662[[I +WEF?T1L7@M1^"QJ\O"2X3CEBM?*A:^<*B\LI&QX^WUN4%M^4-K1$WAN8D:I8.")SF1AR, MWW-2(KHGRE$5R#_CG) 9_L1NZ3]@IJ%]<5.,\H?(UA\2I?1:"]+;5#-T]FV0 MS?Y2JNF+RE-F_0W[6D\P_(DCM)[O_N$Q\QJ_^Y^QO.OY[A\UTU:M\7Y!1CPB+R+3M<*S6LM!O5W?T> Z[6R;3R(U M;65NKS'N/.7'SGDF?70UUO7AT?7%HUO]#=R-!\/RC3W''D/[.[S#E>D-=GR7 M[:;A'%K=D0][4G5=@_V?3O!7\Y-*!6/P<'A]4SUII4JW>\694S#UP_-V7H"T MIC,?.,<'CL2GGZY/&>U+K]V!6HM)OOD3E%%/4+;=S?]*E<[*I]>U[&[S_FY: MV#ONWDT_^01-,GM^?OMQKUK+6D=E_71\F*Z.H"4:8%ZS^62Q$L7/\;Y^V: M[DFU5;>WM?2^E=K[U83S5/SQ;RY?3A:+419I Q,Y;YEE:C1A<.E#W-QU?_F/ M\&G7&)LF=G!W;->K]_9M6\>Y>\-Y,+N&VV"O%J$U;AT];Q3LA\=6]MK>>;A7$C0*3(Y)*Y["+8\4:5HM;$:5WC$[.6%O=C/=A7'9&#XI7W<.A?G*2+ MD\[D\4S_=6\>G+>1Q2>3SB3+D41RFYQ _&PC$Q^8=7-17W5@[HW1U#5VIM7: MK/BK/,YJM>O=HRH[,,P3+5>2E57.R[=)O>Y?U!N-Q$GU8O_P-$Z__HGTZSJK MEMA[W7=LUSUS[%XD_O&I?K^MG%=J\.,^] S5'*)HOE#X0' MC].NFW.0UM)&?ZQ3^_S)R>X>G6;:-\9UZWXWF]H^; R>2KO]-K)JY;+99+D< MIUL_*=T:GZ.U\G6?/T<=;5=O/V6VT^EB;W1;TDY/LV>N7C+OV3#G 1++:XN M" WF$[@)YL0DV'6&AL<>+W:5X^:Y;Y"=:1BC$70B6/J)D/S:X\2P7"/"5>[= MU(_2Y\6]DY96*[O6_=[ ]/< 3##[X]]",5DH1?$XQ[F:N*5G\W,QKSHG3S?# ML_.S^J]A>K8];I_>=#NYF@/G!#KABLERI1!G9N)&N+4X-1^;>7G5J3E(C>X? M+_WJK)7:.34O"Y?>Q>2FSTX-]+N5DZ7R"J=FW?,P;W%.+PS7T)SN /U3W7@P M1O8$R!8V.S[[;/WPV3F:V/?\*02;J8?=0*R7*XAO.X09 ;3;G/?K#=J?@6>K[?]*W\- MAX#YEL4LB\'BWK5-@F_:S"/QT>,3KSL2IM6^^/70/'-:L^S,RIQ/BON3"3 7 M,,>QD$^FBU$=S]\ST;EO6 ;0>H$KJ>ECTS)=ST&PT3@ C?.=W\#GY > J99J M2/R7:Q=[?-\VNI/F\=#,-O?:]5)SM[P_!;83F RN)$N1W:]QUC/.WVR^<_KZ MTU)*MT>%J7D\&.X/T^7+8?_X_V?O2YM35?I]WY^J\QVH?>ZY=^TJ78?!<>U3 MNPH5YQF),6\HA$8)"LK@D$]_NQMPB"9+LV)$0]7S9&<9A*;[/_S^\R/-C!"W M(-]G(I8X)9LF4CT1[]P\BCV?=Z3)JN&:DV*&I,M&JF[I\X$^P;R#/*"I&)U* M?T\/:,L9 XN0Q_ F\*D_FJ8#")K\.[)K(P?H38-13->H$@L*"5\LM&8 K< 8 M'9$/M51;XQE!;PM\M5Q]?)99(YD>H6%Z*/X>2R2.#=*._)^1LR?,$/-,'N@\ M]O/5'O.\Y'CV(:%GI'I1J'<0#R#_9RQ!'RL7BM1$Q!&W QS/Y(C4NO!8JC#Q M!)DJ3]9Y\]&>)^I+Q!&H@"'&,!<+F]^<]Y.=FO"E7O!9HFGIF@$I8:2AV9^2 M;8.=L>F1)1J5['Y?7+K+)RVULN$2%C/)$1F4?>ZZ56.>E87U\]0=#A)/+\/& M$LUNAL@T1<:H]#'+-?*11M6'85#GEP6X9S/3LE);6X\OVIB<%C.*,YBU3?$9 M#T*'$#>9C9'9;.1"O8X+-6*M4"'ELUG+*)4*&6XNTD*\UV.,LCA_Y)HL8BV4 M*I",9>4!^E9N242V3;!8K1"]H2,0K$FU0F M'6.2)\0K;M [^S&6J33SK09'%+NM!M%JU.ZW(CGZCZ+X.;>S!LL$GE/HP34NP6H[S+,4[_V,*^V'ZIDOS67 MVO.TTNPLEXAA($1-4S$F>['JJ;#S1*79X[H%_(Q?D T1\#:[9 M(]AF@6CURER7\/R2D1\RR@S]KGY*Q1ZMH*Q90$F#>G&PAH*SU#W+\IBVC(_)1AYJA0NF4N U7/9:$9 M7UD8B9=Q!P8)H4*S7-S M[5R8EC[CFNV.IR/M(E>NSC34]]N;;DN+:[\QLC MU:UA' 0]BI8YS<-U:(8+S\"/BIB&G0/P9L"[KB>M@,VM'$N"TETS)&M=<<#4 M;IH&>@/+Q&V, UO[6&(YUQ0>.W*IQ&F-@9!(Y!E*FT/IDO8B\TPL?;0P.?*D MWHY#*9S*]=)NU:]DHBK[#"C'['4XT)F0VF.;LV8"9B(6?R_9:3ZGKAI@65ATJB5DJY?7,3ET,^-Z@^;A%OT'(G\", M=@I5>EVIJ,RG!XVNOH]7T?4A3%,];2\.R.HKIRI^3UH)7;99^"HP(\*X5\(( MNU?J(WUZ\JYE10-N(A_4K?N@?#K>0'D_22,'#'!\%KEDZ_9Z62X727>ET'%K M;$\?EB.1PB-NZ$R,3D1>I,CDO34OTMELP"5R>=6TZY9>Z[':0YV2ESJR6O&0 M&RH1RU"7K^'X7LHB8HJO]@.=S10L]52O2UJ'%>(U3:'D3JVJY[!N0-W!8^E3 M2NYOT)/S$?Q8 "J NZOW=(@P-V.%T64./U86PS#ASO51]$+AB M)LO1]0Y<',*A#(2A49EQE+X75KU]63![/C/U$N9S^UGOE?7I($Z] &OH-IHL M8B9<>9+\ C![=7ZZMN**6.L&(/'YK"4;0GF0:V0M$FC%W'(Y LL'9HE8*X4- MQ>21JJZ;\Z"&/>[T[8SEJ,%CZ"'OZ2*D,IV/BM(J0>N\HA4X\,+H#_1(I/%0 M'8:*);)TY'*-FM?=&8H]G3^&+7']A+B3G"\9<>Y8<3W?QOR!T&LJQD03=Z)6 MCU?GEJ_(V3N%6QY+Q4:&RC<E%M M]=7JSEN.GCTSB165'2TQ/F M'@AD,ZD8G3EFZ$5^V"_WPT:L=&V\^SM6JCTH<\MR,@LNWW*T^G36R!AF![$2 M&J-#QRCRA#JM6W"[GL\N'-MM5IHEGFAS78(OL]WS2TA2-]YW['KU(J'/[+YJ M<<@WH();:#EWOW&9Z,BO5]!Q7X,S51OQL=/.FJ<]QT*!2]B=7X.EYSMQ;D$EV3< MQ;S?ZFJJWBJ7UV(FW1RXQ27B$A25A+K@'ETYG]#M..*<*W+.V4Z;2W!.G9:< MQS8%5D(M][)N#!_LDM5B$>>D_OJ7_)DZ@7/"[KGY4,F(-G&=SZ\8^8[H,\S. MW B+'I,5/O$?D1:M\4-[E"YI':&57$[GSM,+F,M0SWH#0GY243GRIV?[A(QC MPJM.OQ2(OLTBF5*>H\2\:0A3NE!?I5=%Y]'!+.)!T=MO61=6W!FQ3>A1Z-ML M8\27\T:E)+WHK>(#IV6Y#-]OLXAM/!QZS,]Q^Y[2CR&./ESR7TPKC^+N6(W,^CITF.#':I!)Q-+9"T2N#<[]3,8X[*YXG_*&/%T?&I;8VK)\>ML MRS9+CI"KCQ!C)#!C)(\R1J10(C;Y9#:Y;![XG[+)RX.\F*T6B3F7(B>JD^=+ MY2*/]4<*LPF3NEB>^,WEPUTH 'EUR^O:@B.JA;PS].HSRH$0.B)_VJK--M(/ MZ;R>-TJ%Q51XR/=:4/YD,'Y-Q1+)*)LNJI<,LWZ_"@P^@\/F]!-+<7RN+:Q3 M/?6)JD[H?&^).,POJOR"\.?5F>S:*B[BM]O&TV?P&QBWR_JLDG>%-5^DF/BX M"_=OA/@-(>ID+)T\M0OT_S@2)(9K:9U3?Z*>QG!V!^- "DAZ75+C*7])D*:UM?TLRF9]T(LAK M^;41T(QG$60R_TUL?T7O<;#O4VD5W]E=7ZK')T!U?GG?"C[" CGXS+0U)"A^ M66 "A>$"H'OOW14?H6/.?M'4S]2%3O 50S([YR7]YK"(L85D^7_U6OECI^OQ MJH&$]&1/&?L?0?9%HA Q)AK'B#AO<_;2*12^O^G'=E/"\EM,45263&=D,4VE M$F(BD2'%828MB5(JG4@,@3K,IE)_>4_]G$T]@!Y_"EQZ98XH<'R>[?8XGN ' M?(]K\$2IVQ+:'J:I-/,_-[C&>^U\JUE LQ0+\!>^5:\4V!Y7X'OP9X-K]OA6 M,=]JM+M<.=QOOKMX8KMZHE4D_/7#=ZP\<*\;6GW.ZP1\N^D(=U2IG=$V[D0Q M^$/@B4*K7F>[/'PQHE=N"3S;+/#_$/ /)99M__WYVOI2:LIGPH2:3CA,4S3MDZ(4P*Y9K=HMLV2!TFM50T]81HTI=CLB M[A&Z?^6P-A2Y81X,2-"J#0>5HE6C:DL1=TOY!HCL3$X3H=I?U<'8R4I-Y7Q)2:7 I.HC02 MDX=7CJA6;U=1P*:8.KTR TB0WS4$Z=^.Z\E29-)X@W8KI MPROK:?)A3I>K2Q*0<=;E%,ZH#5@Q/)R7/QYW(C49T\B MM*68W M5V(0O0$#'OM!(#"19C;X%?RR2^!(??J "D.V5,X 4S"FEIR'3/XP-/3^),] M;;XK$[QK#I&58P4+\Q](>1SU84,3N=;?"\/LZ,>=)YKP*>K$7 ;,&?P[CN[\ MRP-#2[ASO\4AOEC##PXNE890PD'CZ2L@"?F33+X#(KWOP3^>!YO]GQ<-ED<' M3'0PU^.8=T/HT<%#?1'QQ)IF.A@(G[YJF,Y/??DHYCYPN[/ M$W&X>WF-H:? Y93!9 /2BZ)F28<WM:<[UNK2H8K66MO=Q@J]JGAT8MG2WZ >CX:,3Y&2[>07_D[,F)^ MI@_IZ!06>XMR(M%S<=%SWQ3S@:S3B^_'G@[JZ"">$UO3[ M J*+)%G(MNJ;D=2'L,(5ZEP^P>/P@4Q+T/=^6^QV_+F>D,Q+5,5P?JO"7(S\8T*[)B\FNF;W]IQZ<0*9005*F? MO0_W/4@;-#6CU\BX=:[6B:O# <-7ZSSB@R^:H_VU/I5/A101:]SW8&Q]E. F M5>5%%T"K74\K0D=\5A%K7'8N]JWZADXAF)8S!A8A'_$)$3\F\!3^_A69%DN[#*7#G8Q1N _#]O:V^[J^QF4WO2"H);>!5\[FN4VY0L2VP\ MR>W<[/$IK??;EMZKT;WRV& AQCVR!3>7[A3*--U=BGC<"I6)D2GFF.2-(@PWFZ%^(=OKXHP7+FCSYXQG MMIQ&OJCDEAPO/NASC4X*R1YB/#3"EXK19.)MR',K^O!&3/P0,^/WC'EX+=;[YJ#_%&:3&.;A.?NL:YS+R\KP8;%4>TW$;%\(X>\@/A4Q8 3TW^? MUXQ7$+,SO3AW3$[3R6=&D-?JFE^*F8O#]C!C] ]#IG=G"=R"F^$&@'B8!V-% MF?A0$AT10N\(H%6=LL8O\[0D3.,OSYE1?,AT2ZR8]8>44^E#F!TYS3_73Q9TG1$5P*(A,1 IU.QS,D ^'-',KX[]/"T M<_2NW]AH".Y&@QMO8'#CX9M^ZU&.U.$;1J,G44/GKWS /-+S(*$>^S':YF248<9C*J2"72LL3( M*DA)E$^WF_E_=! M;=S2TNRQN8_B@LO*LL#-A'BV],(U<_F\\W)T[N-RN,JQ(#U-R9[;)ICW'YHU*RRF.+6=N9E+;4==ISN M')OFF-!D5I=K*4/7"C5G,F:$>K;,'IOF6*N_Q"O:XQ-+\LUU2UEUZ*S@L,>F M.59MEU>G0Z=)SLVE-I#ZR_*Z-3HVS9$5 _RK.QP\^+(R8QX89'AE\>F.0I/ M=;M<3#YQ FCUZ@S-O#QFRYV=&8V;*Y\%IK*RI$)7F-N\N"J_"+W<RST-7DH=7IIM"$XKWVC4A?ZR(G:Z@ZF*2[?;.>$><^8)6AXZ9$IF4FU-DMKG?JSKH%\VK:3=5;41] R.[Q4 MYY_JS=ICZYDLQ=NS\<1,",SN2X]DS,:J_@=QRI&LN>R M4UQ_ R5NGGXB77XK_'3/\X\\%1_BR79A',L9C4*ZB2KXVYG"&O[::00C1N,.L)?BU BH;)G[]X]K=RE MH?O7OSEI(ADRB!%# &]DH#(]4\4MXN\*K%Z[.<;7F+,WV/R"M<66NE.W[Y<) MHQMY!9_@-,A\ 2BTR37'#K<9R<9ICG M6HZ2'^3FQ[MEX%N/X:L#R_96F612 M,3J;OF"7C/#[!J()?9>EW:[5DH4GBW-[EKBDN[..^_3Q6O^3 MN.=Q^**[[6SE@9SJ ^J1Z.Y%_S$ZI M=2:7R8HO=\HMY=&%E5$WT9RUJUK.$O*S>F+15^@VV]R,R4S$J.1A ML\9[3<=KRZ W75-A;F49 M4DC]FWYR?RK4!@Y389N+1(I7QN>@ZD\ M2!,7X+^U/-[D E8\UF^+UMH3A76+Y+KQD&^D5KTI$U^**03 :2CQJ,O"[[ Q M8^? M]ELJ(Y3* WT^+T[%BM.!_ HA?R*62%]XR'VD?T_WXD8,_,<-]/Z4@9_%.J,+ M*Y'1:9DI/J@*R3PVKLO 2OV!8Q.-3)YLM1("Q_(379TAA8O:\L52Z6,*]YOY MTP$T)2)/^L4LA1"+I9":!?O.C3^W _A*_$GO<%I+[S]UEP*93CVD$A=V;A39 MPC.;K/5-O=\9Y!YZM*1FYAUOB&.2R<021^;G1I[V&\Z8OQD,< ]QK.5#*D4: M[99&QD>)H6WPST)KY4]J?#N.%>FVST;A$;M]B\"7JRSIFCWH]?5XN>86^<8C MW#O6F\EX>HWISJOS[$?ZVK?XL0WA8\7(>^#1=P1F M'*T\ +QL/@^V_^SD6S;E6HC$"6BI1(PBHQ2TT*2@11SXIY4I[W-@%8R> M%IDX^\C%.?M!K<^4?'MZ80YL)[2V]3S0&OJ:S#\PLI)]ZCQU$ >F( *T[I>6<[ MQVO KL"F9;4GS9>M\3/7FC\,.GJ3Z>==%K$I- $H*D924:Y;5'5^>^4CO_%N M:?-JLC*CQEQ*ZR]3AK0>SQ,WQ;<=R98-VF5972*M\6I>U6*];BLMO<65:ME^ MMEHHMSN(K5.(K1,9\@2VOJ7 QD?2BZ+B^*@X/E0ACC\KCG]?6JT7_;8R60PY MSI6[G"652R[SH,O7ZNQ/.1/^/[-=5 M"^\B\KJ9)/;P;E8DJ6XO(?OB^W6#KKJ*BL_C:T^_?94SK@I M]Y/=A&\&YV>K[O2Y7>MQ7.W)!LOHM/_8 MQER8"<_VSY_,A%8CF6P5C4>23/'Q/E-_6+^L*E_%A&O^I:@V3?J1 ZN2WIOD M"^4L,T),B!/?J,S1]-5(3WZ[XOM0,N79M?/TF4RJTG!M5B^-'O]31UH!^ZZ,X&L+J/!GMH42U7]NO-5 MG1IG'BB%H3\NRMYZ6AWR7A,X+;4GK=JFA5Z4=1Q+&[J.-)R GMF6+/@6[\F] MI"1KE4)3JI/\0%T/.FXO+M.L2.&1,E0F1J8N;1%\3_A_4XPO@U#^=;J;DA MI;,XEX&)D=B5@Z&("FK#MR[6%7%2\'Y(BFY.E7JV8 MYQNC+I?5\_2(%ZO61':HKW*D&'4G,WHVK)E>>B@DVH.,SJ\R4*)ED$'!D+%$ M\FA=;Q1BB*KS0V%V?(LX(-\;&>H+/:CITY3[L&RN^FNQ-$),FG@O#A@IVJCX M_A:X]DX#AX;MO+333\\,.7^JI>KB)/&P5#J(:U.G!PYO*41Q,D5%N7C7*>.Y M-G7"B3-](ND39O_?BM#L?,W>!(VD&4 @@62@3V"9^2#O5. I0-5ES M/K?H)FR[=L4ZG#M(<;JJ$H](Z6[R5Z,BVZO4]'PWRKE+@_LK:WIN#.!$0WEN M8 AF@$(Y'X0&R3^24!RTFU6!U%Y88^'RY5Q&OG#_K%%Q^J39^B0MU'KI57<2 M?U)I>B32>& .'4M1QSKX1/EWW\L%$3J7^1L,5!G44D]DA:P*=-KD3#E_B:U*BQ").2OSU;X:)I=*G])Z-M-5W\]N$KF;F M#>92=.>IUES74CH0R5;?H>=K5OFJX-.3R57BSY* M8T ]]W0.O"3KTV2J9[#Y)>))!-53,3H3#:"/\L]NF$?_J,#E+>]48E1C>J;^ M(,P+^N#I658,F_KXV)??\>C3BUA/D;7"BN,?ZVE>8>M"O\LB'H6(/TG'*/(0 M\'\[[W6[UKN'%,#_69')6X@=/%2ZZZ15TT':EN55:9Q9"1?VB],\773B M;A5PI=E3$I*6W5&B,\6 MF/529P2K;MR=?IF,FSOS"X1E=V[3S_Z1_8PR3,-(?K?G0 [O9D:2[OY#^H[#^$!^KN9QS,M:V?8SX^!K*48KK#"0@% M3]V(DT^IIEG+2-LU4A,*A;F=,UA&^&1+YK4!$W]R>M(P44H+M3[U"#7 M6HIT$OOG8F0V&V.RT9#E2WOH0L8P8771:4K)K-$K0=3IZI2MC$TQVZ$_'CL[ MB4/&+ZXP5UCG29!&"LWU2%M)QQ/4XOB^1L5>!*Y'A=*MH@/2QAADE!AJ&@ M4DD="_D<@ZG_@SLO7N GUW;T=3U+LV<=&+>]1O+@8;?.Q5\?\$[8-Y%BPI( M4#N!<_$5O] (;$U&R'D,"$E&7>(E8XWJP0S3@2N$0)J FZ-!4AM9$%K/) NW MBG?&P :(!+$%A8N_53 M)T"RD(@:OSI[!CT[$%!0GU]"S,APZX 5O"R="*3S>3(F21^^(?[YG_^Q^Z9; M.SDNFQ/3^A7(U9TM&'M2GL8B=@3B0PM(>EQ2X2I_29.EM+;]+"C[ L#CXS;3S;_9<% M)I*C+0"Z]]Y=\1$ZYNP7#>W:"YW@*X9D=LY+^LUA$6,+B?'_ZK7RQT[7XU4# MB>O)GM[U/X+LBP0F8LP\T@J0\S9G+YU"X?N;?FPW)2SFQ52:SC(9D!!)%<49 M4Q0E#H>J),J9H9K),DDI"Y)_>4_]G$T]0!G[(N #+H(R1Q0X/L]V>QQ/\ .^ MQS5XHM1M"6T/OE2:^9\;"..]=K[5+'!-GBO 7_A6O5)@>UR![\&?#:[9XUO% M/,N7B_56N-]\=_'$=O5$JTB@]1/P!?K\YLT_YR4";MWXW(ZJLC,<D7&A6P.IYU%_O.Z(N$9O_\H"/;1GU<*T3O9[+=9]3,S7#RJZ M,O7ZROA0D2MJJE81UI193HK+,25J2Y$6R==7SE-+J5Z3S;X^+3BM;.]Q,>_F M6)$^7*>0ZJT>V^5B1N@7#- O/1;C!7SEP3J;3'?()59RA^-7M7:_6.@GJ^V. M2!^N!Z) MB<,KUPVRP8AYTM53$R:;X%Q1>7Y@Q>3AE>ZPQ\D=19CJ_"#Q0B5=LV=1K)@Z MO#+9@-*JY?<63J_%#-' MUEEIQKNTLE[JK4IKGG]@\[/^"RMF#Z\<5!>#4K$)W[4_Y_JY=?)EV!*6(D4> M7CJ>=#)5D'I(Z7$]85,S/5T'17@I=7AI0U^DZH_9BJ/''S/IYF-GV(Y+D$*/ M$(DT;376=B^N"*DZ52NW.Y4E/%V1.G).8F$N"$/G).F1 M@S+;[4QU8"0X,M^36NT7$&=9 2[@R$D59R[?71=*,AE_E&<'W*P M@$16ES/MOO2LT\F)+2L=)].$^TH?(<)!*F[E4JERERR)>=!_Y(;+H8PM[,,C MJ*R93LEA\IS4FRD-D"C@EIVSIQ5TJW4<5,C>SI2SL9-B801X$@2;01)K9X%?PRZZ21X:#;PHA MR"Q[4#M0VMA&D5S'##[P+!3\R9X=LXN+O&L.;4K'"A;F/Y#R(,2'O6DI^F>* M><^AN&,:[#S2A(]1)^8RP![!O^/HUK\\.W )M^ZW)I@/:?"#@TNE(81YK@.^ MPAK[C8_.^]X9<&O'GKZPIS/)_"Y^&!W,M5CFW>X\T;%$ M*B8ZF(A?ONI83D]Y^S!JOG#LY\S MV (Z/[/C ,0> MP?1/.M@CS8!JV/D5]SYZEXX^D.4S ))%!&=QI8HQ M7^5?L2KE:R !2G*_%0#P%>3VA15WX26M#PM]E!!^0_C@GN77_5(8]4D@X@HU MFI\ +,X7\:TVUV5[E6:)8/.]RD.E5^'X: C49]MX/EZX_1$L^Q9-5(,?37GZ M>D*)A,HW(I30N0 ^2U6?LC.7ZV7_K>GPY?$U.I09*T_ M512]]MA=V1^O3?QMLVJS/Z#[C6*3E'2REEQSD]$\@Y*QOZI__+=4*5%1[F\[ MO\N):CS=SC0?.;K0FS\OD\6Z_'RY00H%26_W#K M>K9_:W41,<4IK=;+>L_,!;_;C:^URDPQR4O5IG;";AK V:QF& ME.P7MX64PP6;I-^R9^@4BF$55/V&R[\)QR0L (]?UB: ,#8X%'TN2_:8F%GF M0E. 0@S7A#D#B#2,$8%V>J$Y&K!_129?Y$,4RR &<0!&D9^D541.:'NS0FU2]]'S RA364JJ:<&H\>K@RX#9#=' M*:AXGX9F1HRFDY$'*O) W;P'ZC=,,)T+ZN4^$'C*C7FG&.$BC@SEM+,8U@:XJ,4>EC\ND3<6O86"MRE81: ME5\6W9[-/7.V7QZX1FFI:Z#"5GO:LE^W41\VA'>SJ,5^-"3[ZS%PQ$LA@,5G M\U(N5W:*XJ,CZ?E:Y;'6DHN@L4:\A(!R,I8ECWE0(@?LEEYP!_?X4+*!0J F MW\"P/8@,5NAW0/QHF@X@J/3AE,+(Z([.?/% J!PB_OP.[1^1,_EQ1LST MI.F8F_+-1OKWJ['LR?Q0-C03*.RL(?!/ M!:>N#)Y?F,Y(Q.UAT40/Z@0/5:0_(NZX*71Z,G6.5(R^_5)J3FH M)NL=R!T0E:9B#,5$[MMS<6K+&0.+@%L6Q_F!QW("(R,YWI%AQW5DU61+*WR M:JTVBX]T&7%/"O51N5C^PIV@W0)0@64!A7"D5>")C>SGR/]Z;\ UH'.O%J\G MK7R!D@,&4#7G6+)@=5Q]Z(&'CE!SJT9.GL8?D^T.&B,%42P3HQ.)R!$;.6)O M'J*>SQB+_,LJ&R<7";+4ZNG6JE8;3!8L8@SDDHTEJ6.,$6F4R"-[RUCT?#;I MFZ+5GQ6=ND#G6PF2J57FBRD>0PB!*96()>G(.7LV7,V/)6,$%Z89NXY9G+-! M0/HA)IJ$R^$T>(V73T!3GYY/$-G+)[IKK]B:,T+%IT@U*,TL(-F@ +S_5HQ6 MP%5Y:89Z=D/!!K"A%R.I;.1J[> M:[EZP\QY8040E\79?\9J+JO24WK"KKC:(#-)/^3&[?FL@U@-86XZELY$J;SA M-W$]BO-?\II,3T6PNBX:06C^O0;=JDF(<\UL*.7^2Z<-L MWT.8>7^.Y3.H)G]*BZ:EF9ED!+2%AF9B+$)I.IV(4<_FLBV^MJR*>"B%2_B.>,H!*<>HZ M:W)3YJ%,+YCXA)PO$4\A=S=#Q6@FZF3ZASQ8:3YP?#3C)NI->MK>'%!0U)LT M%,[96Z.CJ#=I1#:7)IO[\Y6=TS$*/@7A(=RM?&8A3YFSQO%L,'>U&6ID'ED? M=Y63^1E[*7:?4W(U MW:SH?6,J*+8T%U5NA'@D\=>_B5CF2+O3J/7*'25JAI1C+NO#^B..65>?;'[^ MP'?U>6N<6!@%=L4Z+.(8'/5-)T_AF&_APCH'W*)SL+6@&ZKM#FU-T21+ W8, M#^2!'^)*>\D[,,5/W&2BO,TH;S-"SJ?(N)QK:P:P;6"7K.-3QHIQ\4DO8,X#*+M+!FCTX%(*E=*)OPL"V*IF(IYG#2 M=>2>ONN,LI#J]:LD:9[)3OUGOL]6,R^"X!9,1A_1#_7J"+,30M;)&'6DR4_D MR/Y&V9HAY:VK)&N>JZK&'4J/<]T^V6_SZU3!LISG; ?QEC]^/G544WU'E_>' M>;%8:;+-?)2U&65M1EF;-T%*WS#]+I) $=E$69OG$1"$7O"(%9M0+7-*0(!L MF4OX6)N 4-(9 T*V@*(YA"K)>#OORB()B_@)02KG9Q4UX\VA$I]EM-V$'^B+ MB.16.^9M22(2'1%5W$6-:: TBU!GUE&,KZ7FL9X\YOA+3VGN@2T",F6E.*OL M6B2I=D0*3[>AR!B53445I6=W4-Q');C*Q,0C;Q0P= @+S/Q@[+W;"-=VJH;2 M81%J,!,V"HJLS#"[WR\;VNINY&1++4#!>41]M6J5&3MP^W%=2T_S5#';>)11 M1EC6ZY--IJ*$L) DA$7<\\4H\ 3N&3YW-O/WY^.Y;RY7KNZ$^8T]N/'NKO2=3 M*CZUYQ&Q'ROV6FE\)C-06F2\TU#4,C]+=6LA& ]4WND@IH"8-7U*+DBD12+^N"4H>AY_"*O'>=J< M]J=Z2:D\/TF+8;Z_Q$H#E1T<-KC[IKE29X#48,=Q&; YG4+ZL='T8Q&_&.*>O'#&N-+S+BK"F1 M\^3#>DPSP_53 :IXRL.]Z:-M.B,O[KU[<<,:CKPP.OX [6?'9:O# >"GL_K M]JC427"]9\Q $"/3L53RA*ADI*'NW*T;5G;ZNNC^J>R4>)KD,SPHS?5X=UW4 MC$E76G9&B)U2J)4;E3UAG&CDYO74W/)'?98FZ/RD4B1PHIG[7WEY=/!*,D93 M1P="1=[B^ZTZC+(ZPR24OQVQ? L_XAD[A;N9_/#;F?R]-WE.#23\!7N;1!99 MU%OP'G#3&V7EQT'2FV7E+VT]D\L/REV.9FK3?.8Y/L[H$"TQ""TE8JGCS9DB M)^-W;S885J_)5=JDG&:8.-7'DOXHBGFA5&16M339!Q88(5;#6:9)*O)&AL,; M&?%=V+R5?\1W2DNU!DVMQ),MT*F1>GW=J&&!06XT"+"2QY(Q @0D D!XO^-J:I0%$%G+D0OS>T%QCT%:*N>S11=R M19^F\2[$3_.-+$_GZZ*PI@#7EF9FNM'MB#2>P,/$:"IJ MFT7_L)72V#S"3XE2%]/$Q69&BC=S2 M]XS[0\&S!S/IB[T'J58T:'+ZP&>SO954,#C,JBGL,F,.76;?.B;P@>G9AFP! MR0:HW;EG47P6&HE\(%'.\,V8%7\DY]IPSTTEX*0"\/Z[D7Z[$M63LLJV'FA%9!)ANCD\=TY7<),YS/IGE<3S@$\)X&2@@R56(-).M338%O M+;G"'UD(J1' VF)+W8$9FE(R:_1*$'6Z.F4K8U/,=NC1=239GWLW!$>;ZQE> M>.3F'4K@']K/O#R#F!^/1*(I)I9@CL5+HW!!Y'N\-*+89SQ*;%I/NMB1FB6N MO\BGV]E5MA?/7,G<_G/&2Z>?]80U2VAD7RTD$N;3?/*\Z"#&0^E!#!-+'1G\ M&X4 HA# ==F0%,5B-CYHQ'F;XWM2PZXOV'&.OY*9_>=LN.P41?Z9SO;U-=UL M#7,-_HD9+1$;(N]^XNBXTLB]_P%H#U [XPN ^LA#\:'\?@;*.L5TAQ,0"F%W M$]B?$95JFK6,M%TC-:%0F-LY@V6$*WDQ_ESV9;.R,VQ:XZI>DYK]3HY3X],I ME'UIC/W3J1B3.2R>C!S^UZ@&"!F[AA.;W)MM+L7C=*.V+IBZQ WTHDJM\.YM- &H6(4T(!1[#Q+1=R^M'B&J*U8FY)#3#HP^XF;_N)UAP%1P2QE;9 MO]^( \+YRJFLWX](;K(3KK<+G[T7WU5.W" )?,'LU!OSYITSF PIVYFD*83B M6B@VCV:H(C\>;@2L07QG0505V1U1WNZ'W7;15+(HF_2WUNBEVG.%C4ZN+6GN MB&1N.L>QXFO6-E2]37 L"9%+&V XSKX\"]*RG$BSR:K5RRY%.NLE(7Y';\,G MXAK9G +"D5:?WY/L6XN78XF((7.8AC0:^;7E2!7, #U$_V]+(*=:HEJ-&JN3 M4F+1>V#3H]F$&HD,GM5%,[%T]IC/,\H>_,RTI9 Q3UB5]66KA4[BEHY"]H3F MLFB1\3@0*ZN)K>=-%G$+ROFC8\GTL7A[I'LNE_(7\4XH@.X)O/-8->1I6UTJ M7&E:8B2EDY1G7:QI$-:-T=2ITPC^QY'@<5_@-)]=V]'4]2X!G71\WO6;)%2$ M;4_U5W[!.V N1HL*Z%$[@8?Q%;\T!]Y4AM_I06 MR?"0X<+7"&D;I@-7*%GP M8P-[$$>6-(%8W,)MQR .MP&>DX"2<24'*$&G8'B1[< /\&"XG_# /W,;SCVW M#T>>-LM5-'LVD=:(:,$_YZU]HAD@/O8>_N'%XW='7_EX$$W1%O_^+_P1/$V> M0 ,*">+Q*[IFT',",0SE\"7DJ0R0R1SL!9T(=-!YPC3)'+XA_OF?_['[IEL? M25PV)Z;U*U @.UO@'Q"-=FK>'0N04F4. O +KW MWEWQ$3KF[!=-_4Q=Z 1?"1MFY[RDWQP6,;:0OOJO7BM_['0].60@1339(W+_ M(RB:D#) 0@=-HT!297/VTBD4OK_IQW93P@I,) ')R$E5%8V!M$HS_W,#U+S7;K;@M?!L6LT"U^2Y OR%;]4K!;;'%8J5)MO,5]@ZWV/# M_>;X+;QW[+6(W7<@-B]!P+> &\(U>_QF#T*#,/[Z]T>/S0EUMDNPC98 UTA4 MFD2OW!)XMEG@B5:1$'BBT*K#*_@8P3WFN7:/:'-=@B^S76[SI1;\/OP)*:'; MK_ JMDY"6UX>"=I!A_A6"[X-"WUSA$< M8.0/R!B(B#T10WG_B1,[&^*C8B+8JS"*& 3RT9(AB( M1I>#%9#AO0A[K,VP%?0/;LH,KW(5S<&7S*0UNK]ASTS+XQQH8BU,#=\2FF&0 M?O!U\-PFZQ<0[!#\B@+PVO]!:X @1QY[]P,6,N7]"QP)4I#JO:?KK EHI\ON MQ,N*_0?::1!-R7@OO8?8<+D6%#&$8LHN7K 779FBQ=G^*^'?_?PL] FR%"< MOJ6!A([IV@1$6_ XMX&FLA)!#RX$=P4",PG M$E0-&(T14W?B:'%XKGOT@&9;(W?)^B?1@L<^@T(.W09>!B8!)=F8(N0-C2PU M!^6?@I4O0-%#9_#0QE!JH>85\.+M^0,-+]Y$Z[+=X8:I8]XI>N>;6I 2#46/9BEQM,WK_3/P+HT1JH6%&3I: MR"GXZ_@ ,5%3<@U8<[0GF+JP&P,N3>8]O%7R2@?;B$E )IU(1' M/M5>@C C%C*0BR )^URPD\C\<\_^W%._(9+XX444/'PM3=7@63JL+$,+'*8:@7S\\#<>76)O@8FP TL4I A]J>Q_ M'PI-[^OH\6@]4(1AO38"!K @Z%ACL#!#MY8VAX&T$%P15,\V^BZ29=#TVSP3 MV8#[8 A=84',8V_5NP5& 6((@&T>;H>BP>WB/;R ] "K3*%XA\I"@&P*/%:*$(AI8+(81O: 0O!;75J<9P&@6H]IS/V/.%'(1HI:_B M, DCS>>06,$0T%OT%5,K8OP(3V#1"-J9#ES"5DF>VK M>#CN]1G%?"3RQCO&""0\8P@"60!"&,2U$(M(-GY*0.:0(2PT7?KUS0^-*.\* M?-/#/^Y^BH",B_&L#:$+%!_$$LJ)#1@%"PTA\W?>!B[TC=>A?_A MC[X/_?OWP<#R]9,\08O7B!@(#ZQ$2Y1F,ZB)D-MXAT;]##+OU?'IOV9$=+H_ MB2)< UA)R+S96V1BLTC\0&PTXH<9!K(&9KAC(;H'>LJQ'4ULY.-F7R"RA=)\ M[B(K&YO"[SPGN.J])[P+2R\,"O(;"0WO]!84$* N?X&'=#I4= V@:+R;M;< OZ"$&;WZ,9S\H$/M,!]D5&M0?1@04#PD^@#B'90A)D82PO$06MB ?^$XSQ!L0K&+@>? M0NIW,*KX2;"3B?>QC\P"!.3#D*W=;GM/&0)@$& "Y8J!7]67!WMG=DW^*7J3 MO/)82T#>V7D!UE#P/WU$]A9SY>NK3FD)=$#R=+F'C;-PM@N4?]D!^VCHH)9!IDXR/T M#2_#_I,=!L1:,]@8;&! %;-Y*ORS@^^\/U(.CE[,BR^[4#9[G^R:1H+# V/=F^=GC/R:FC=Q>R"EM>R:'Y^DR#036 MX/;98WA'*,R0S\S3S=E_"#!W/7^D@;?6D2"+89\@_%S96"W29CZ?&?0EB.'- MVWO [F+?6:D7LD;>*00(X"EX3E7D 3]\C ?>9'-D0&I5 CMP3];O"_#--^UW MA>#!O^\QNR0199=$V26?E5T"&<97P#YCON?2#)3P&8Y-^NUGO*OHPZT$5=<( M@BZ[&@_Y'0*5%D!!).JV#C$DYE P;N=[4/AMK+ZU+^B KUL"B AEK&OYWC;_ MBUA[8G$,I:UQ[,9(=AO>.M98[<"=1=X)SUX^\@5?=>Z 4U]Q-J R<%#D2#JN MQ15@F %PA2M4]V%.H-,M$/=CE;Z6?7L)'U#N"'"KK_'5]I%(DQ C23/\U9MV MH/M]^P&O'+ZFK\\\2WM3T.4Y(WRKEMCZ5'[W1/0<=! ;/],)!/9_0E?UDSPC M%_MM0Z$$=[\.]R,'T*[UI-4F23OE&0E-R;+$WB/+22UNK0O22SRQ3G<23E]> M_O4O]?-P[.@YNTK 3R9H-Y>2_<:9$S]>'3!-! &-4![D^04I7WF0L^6+H--4 M21%JXQP+'JJI99F&!TG^?+LA[CD'^<]K=J3"?5KGET!\Y6DI:]:0XVDS0])% M+=]:K$:IUAB?UMMC2,XYK;\/[!3="&P?/L'E\W*&'SA]1/@(N.**( MHH)0M4+K%9K6!%PUM%:P?H4H8BKI8/O^7H#2MMWIS$^>0K:HY,$'[!"?>FXX M[W,,2U"FQ1M6Z/'XJ:$<5J/L-)C#[C]G;+JCL5^*\O;RT J&DNU%.K8O%ECR M-C%$?D7=,)<3H(R\WG5^I 9Y,U :">1*Y.+WG YH=];P2W Y*@X\.($/8F<5 M$%WN+RM&/+O*:.?M7JT0+*2)ZWD #)S68HQ,].)^P%5XZUFS' MM% X#/M;+ T%0CP?K.<^W:9F'9S9$CE%)QI +EA\3)(- 3YX6-K+-QO[Z4\X; OI!"UYYT6'INO1A PE(#Y(])J>5^H-I+NA&N0> MADM2D%M(FJ%0>+#3WNOX*7A?'?<]E06Y=PG21?2X' -C-VZ/L^YP2J;MHL0^ M.\@KW W#^SEL &?!@4U(294TR]M<="%"7,'^RIBG,?,-_=Q4Y%\:(FL"*>%= M3WD,+4QUD1]KX9T2-".@F:!AHM@>V,Q"5A0R>I"?#SX )SK&X'EA_Y_GJH+/ MW)+J-E-- 0ZPIEY6&%HY7(9K^2^"G/-XL)0-UV:K/DR __83'+%-8@[AT4C^ M>C<1 B144*J;[V3#'. E]6TOW^QKD'MF ?ALWV"QX(L;BNTE]P0A$JS L(.MVJ%-,!V:BK85U9Y4"KR9'@'XR:'P[EA!H$]MVSO_ MU\2\TZ CMG.OS0Y[-U."(//V>O]9Z.4@([YLEH#VS/,!XZO@IB@:NLR%-[,< M":T:?ASX88*#Q6[0G4P2M$#/;/Y)[&2B[7,I_&8@R5ZQ[.O3LC%PG4 3GK ! MQ&)>"LY> C*_DW+S-CG[BAEE'CM^!NLFH?4G\?F"[ERI=G+)X1='GKW&P:]' M"+X1)1NHW"QI%*HC02/'A=RBT2]GBS>%2/-X />UB<'OSK,Q],=PB5!5>Q$0 MPAY#R!='? +9!?.C3] 0K,#'0#$V17)_$Z-RQA8 Q!0^:8RE))2AEU#M=T+Q M12A\'Y!D;ZG% #]7#*0&IEO2WU#\J/8$RG7A-[Q0ZAT[FX]== M-"Y\F2#PQJ30MGMR?5K"L%*!RL@C@%=!H]=_1>EOOR @ 1;Z[>#/WAY@,PJ] M\9ZJ5[_F_3^M)&EC' 26XWYH>XN"9#RF:)/GL<5;Q ^(>/_>^=-,6J//8QX< M OLFAI?+OX4FP=7(S+#,%4:L?J'"#H92X/\]ESK\"(NW'1%V2]KY[JB_ !>X M\.J'PD_P?:^R1#FZ9L_;@EP4?H(!86FVOA?YQ\D<*"/A");'?@*?!X)$:GO_ M 4>2R5D^3_3,&=13&2JYR4W<;JK',&6@C+Q,62\Y\>?'D:'9 EX]4<#&:V(3Z(*/0N!BAU.EC03Q/$]> M>@D*86T3SQ1@PW-$C(XV](W3@#<:(Y]08,-[]B/V9^#@&=[.5]\_*GS_W\[R M@E#=;FX&D"QD37ANHU>&FT\(@5VP\RP<^0R,$7@CUX%;@^N7I!UCRZN2VWC MO%12$UGGD'AUN+&;)^$".G,Z145KB,+L=Z*!UQWY&5$QJ>R%R]=BK0.D@2TA&[F" C9?*WCJQWHW4;_++?A(LEG>0+2;K&*;Q MP)>)$\6PWQHHGL?(]^P&'P9>$-5%+JH82B_?CYNK$^1WV7?0;=/W@BR0(!E@ M4T'C_3U& -1OU_FZJU'P*ZRV2M9)2L M%25K72]9BSXK68MY^QGO6M]WJ,:"WMF>)+V"#CM5PA3 S*^Y\>&3LYYYI>'* M L,B_,9>Z',A:1-,HZHD^^9F;%N\@( 50I ;#S[RB4TF2.5 K6*-4 53@--\ M^*O][:D-">%?J%I0AP%/^>!B*2WX.U(K!4_MM'!84B&Z:%]_Y NM[M_^M?!B MM$IS^[5D3^PI;VSNT/?7G*SFXX]@['P08 M\:NB%\+H$OOK@\U91U;S%?DO[YU%B!GOD/SD[9J1QQC'_Q%=>6$A9 TCEW20 M/?#*283I&>7Q>Z2(KL3V+S027<=CVCW;37."SC/(*)N@;C!>^ @!EVUE\C%W M% Y30VV(0"?8Q' VP5K45!)8=A"0VO0LD:#IA;JC*"[JO^&;G2-@CBQI-L8Q M_FTX> J%RRBP7W?VY=M99I]%:KYC !D>V.#PA3P\*:]YSENV?6PGMCUT'7P3 M5&7FO&'B; )\,=^N@+_82VGF5\YYS:2DD06 ?_NM3P@=]<']=@8\;54I)-H* MJIA1-"_&N]Q6W&$&0+5%MOO&&WFN(TO"KS1S+<1^D8?SFK*:VSH#P\M KV3U MK@,SD-5!D/XM!^:V9FR3!K1UABGO):?W=GP%V*ZTO0QX?Q4[#KIM@'W+M^K$ MQ [6.&8@_SM^IR2,;'"I%:XO,%45>2-Q*HZ)H YBGM=^@. ]/0;__>ONKU\Q MX09L>'77WX<8OL;=_9X.T ME*)I%?RTG^"J5R'5;)YU3:V0F@JUI, 7%ZQMRS7VEH*D[2 _"1.5#P;KN&CC M9D2,#WO\4A.O^9J&:X"VT-!KB7<,I'EM['RONI=OY/'A;&]K]A_RML?=\[-# MYM])R?2_A#KV887LY\,%B4/O/ BK[""G#7BP4?*R4[W 1O :GDMSYYE+"XU6 M0&)J@S=W_NH]9&E:SMCSHOHW#$!HS >AOL<1;HV)E.% R,-MW?_3_Z ML9#8?@(LA"QPVX=KB*<\&U>:V*9_J1^!\CVR7NQ(]NZ_S2+&K=J"J(0O1[$1KXX-Z02I!6^E0 EF,L\*:OD@NSW#,M.UZN5U>2F9-?F%4,JJ8JH*=88 M)()7^)E>.P] M8$\H;0*J?E<2:0$L:;3],JJZN27$$**#[;U.B=W)X=WMQ0DVY[&Y(N3SB5V\$" M$ZK/H$VL'U/WLG;W7L.7QGY2'^J)@+H\P4TVU:.:(18LQW\!WV0-\JLGF@KI M;BW[VE9!,MW$N>*X<>[.E4%/5W39W)6\CJW(1$66K.IOZ?$7UPQ%D['.60*_ M<@ R%=0S%H'Y!^XC2LO=9\.AN0@XPD*<"+$]5KE8>T($OC1V-@5;X#A6?N3P M$/>A;T%; !D'7] 9]%*,=FG%M,D9;UD%S88H3IJTU#H\J3JT912O?TDEX*+* MIO# ^\/[+2;GE65JK)3K4TX:3=.S9*I?*52.M+XY?MWMI3AN]Q*Q+Z+V."K9 M4'P<&U+Q"460@]Q4!^O%3(BS?%",=H8\8MM*C2.5)OA?2 E"7L4RYJ!,!1>. MXRP;I/W\G"&\5=:$G[B3QR)HENU.4R"^#K43QBZ"@O -!:L"V\.$GD=_[ MTBZ.=2QMA.5/(#Y]@1K#'L*@NFGK)?Q%V+ME" IH;$%*X';IT.L*$'B0YM)3P9VW=L*EBT(!RDPH_1ZCW+Q,"?H%2Q M0*LJVVHG%?4W,';+6G"!\WX3'4P^NU:.AZ9062(R+E$QHZ>B-_L>-*9PO-Z$ M/E$?>3/X()3QOLU?>943^Y-H[/0\\#?WR&KWTKS\OE';!"\O/C?S)T=-^US M;PBI?M,,G%24@1-EX%PO X:RC'T? A#N[7 MP++J3$=/ BTENLW*(S<79S?EVPE>VJ_2> 7K;B'-=?,&%O"5F!VT7-IQN+ZJ MX\8C48[69R, ^T:)]W9SCNW5IO3[)[%9DN8%EFQW^(P=K2;"%Y;C5]A>PJMZ MD31B;$6\JD-&@X0VM ,1$9"P.PTU9T9A.X-H09 \A'L9WI[DN+O9IJ$Z\DH@ M<.0E-B-GCJ;B3[ %0Y@R!-">';-GA_@^=B\!"ULC1Q&S/R@%>]>WA#4$V%K M2=)!Z03R%^[68+T"IJC5^ ZF\R;&XK%%&//N.+2"SL#R6 /JCCV"&N[@* AJ M-()P,5S&[LR832*-GQD#@33PZK*].3">.?+^\*B#)/ -K1PM93_ TMM.#'N$ MAA@H6-W^CF&'6S E20DZ>$,,Z45N=Q[E-R+&P2HTQ>=5/W F"%3Y=;;X8#4' M=]DZ>K(;&VI?8*!/-NM&7QY!<.7LYLSO-^E '66Q 8N2Y6-G-7H*6WLUD.JH4/;-;1VQ@00/T)T/F?WX;K4^704)F&JH^&([$^:,[>^9AZ> MM>7%W__LKG&7>G]]SDP+V45G3D+V:+*]X6CVU%F^09^?0[#("6_M5/=@0B M,/O8X[$R]P"BWYF*0,-^$/[!"6Q!D-&'J)IUS+>V\%O^[X56]I_TVO\;N"1W M7;PHEW*[AQM?7' 2>WZX'0=S0.+>GQH!,O=JIK15C7!R_T8,BF;>%2 MDTHNY9#TTMH#!YPW?QD/W)S9X%?PR^YBD,O*MV^0LT;VG#R!:Q)[QR37,8,/ M/-\8_F3/@T;.G%?^LZTW,^.YPAP+_E\)UO;*?O)\H/X7DO +6^?AK_^290!4 M=7?/_$<%^W>!,\F?(G\]_Y>CW-*+\7OB' OR/?I#8"2NK>(>F?TJX_^(Z(]TEN:&X/%_D'S_N("Q+4?L(ON9A2H3 M_ZLAK;2I.VV Z1!8H@_"Q'?D26[=D)Y-*S^!4A+?)?A.0$/=79KQ[\LTE52M M_)BTR5IU)0/2&;:':,#E:U@(;<4W8.';*Q*P(JY#';H##0&0E;Y57BC"/%^M M%NJF+"0G+-I/2-MK+P9S&,\(Z/M_,/>>Q<%?2M7<,<#S$?:\ 5[,/'6JE+UJ MV'J^-"VZ#7Y%#9-7X44TSBSLS(@P@AB01V_C*O+O.!XOQ*%B)>)D:OQ2ZXT' M?$=_&%V0#0&PX68 +L.&U]4UO:W!\'W7)LZGE MH_6H5_529MY?DH_]!%@NKZ(N49N]L/-H\!U,*TU$*O[-\BK#3,Q,[X%;5R9" MHT.F^:J^O"![+A*MU3R=Y==ZJ34MZGICOFK9'2CI--5!21 WKB:;Q]P%=ZHF M:U19'U2&RQDW7W4*R0SUTIP7K\.#MP-9(8'X],%N[![_ME-9EQ(NRTPXD(TS M>EZ#>RM<$K%F6IJ9*J]+'2X^!;PT+RRHEW3G+%7Y/]@>OE :!LXW29QJP>]: MU#B ^ >90QOMM^-PY7 J&0J7!2'3"&T)#>J5Q M.,JM^-[WC8]U"IRQZ44=-IG#_U>:SO[9V9+-M 8%R!.OBW=04>Q_W511TV*X M;YJ?E6KZ?;YW%<_;UPZ!X^!V\.HDJ&9#^9!^:_&]U-B=@9+P$G,*>78(#*"B M"AT<6?>C^7X*\!O/U.S=4D%IYTL[6[-)6@5!=[/A^JUK9Y9FR-K,SRQ!<4<\ M4AO@SO^HP@0=S&3M%R6=LD1%4W8&_J+.J9".)"_Z+CM!?YB=*1-OS*.\ED>\ ML/LROD?\C=ST4+K%=]??4M\4XUO-^X9;G.GVY)8Z>WD16MR<3/:RSXGD,BP) M9I%;_*O=XA Q\!L/=IR,K]L#(9YYK"7$;*_1&E[% MNJ"N85N\*4]RZ]YZ!O;=X#[-;*[Q[]7)6(OY2YY[TJ=:@UG6G^VD2)YE4)P@ MU7;LB5JFM-(72AR0*0N76SONA:T+(*ANJH<.-0EZ&;M.L_ MDW(AU/LSRMWL*[RNZ.^J?SMRDNX OI"1]'FG9?:?AHP^!,<=Q_^?O3=M4E59 MUT6_WXC['XRQSSDQ9X36PE['.G=$V/>]V'TQ$% 1!*6Q^_4W&Q)0LMG!#)4^O!J%ZL1$/C5/-=P;WW[>*BWF7[.:FQIS*3JIB*U$IB!$[/ M#$:^8=B]RC,:FF$/#6X5\)8)D?\M]#/LG,/ELHY^/EB;@\;/P#8V^/;/([]S MMBLA:SIP(TASI844^+-D^=\(FE/K8C 55G)CF8K1H?[>&"FR*HJ9.TJ76'7* M)O.=23S'E).S?:E-Y20#RN@O#53>M]WQ44-)>0-ZXE8X@K\TO]"LW%PJL-_5 MBA(=H\V1NL/]"=*$($/A\RKXPYU#LU4H!7DDZ"^VAT62@45O,$P&:3X^*6P+ MDR2WSKG )+A?]WPP"7@WGB'BV%\*FA^U M 8%_,P($56&PQK,[6,B/S% D_AGX8\/O<6\:BD8@2#7XK2(Y^_B9HV9O7.^* M.K<)S ,:*+V) WC<:P_WVL._KCT\\J[V\.CE9[RJ%!]7 ML_0=PZ9@/Q\RRY5I $IW:T!MNT'; VJQB,<@+5B@V6.W"&@=D7-+.&\R!Q1>LF#W6' AM MDD$-&0[,E[/U^7TKR=#0#TV!II$C*:20W5K/TM N.\(AA>C M;\+&ZN[\J%?&:6.2>0B,*@G8.W7 T)CJU796\4?VSAVI'N3'PM[PV>4\) ,5 MN0!;0C7P-I*B\2C[A%*0VG'OR8J!^4DR#/DT+VEVI+CD([O'"[) XK 9H*$2 M(M7,*\H$R1RBV,&1$!SL7G9.=$*9:7/B_-Y"3$:7\RHK:&8+,[[-<^2LNRZ4 MZ\X")ANY(O28!W!"X8Q^B:0=?4\VC1Q#P@O+%;"0!9TD:?&]%=6/#X4Q+V,9 MV013 B?#"LVCZQ+LCH\SWQK6IZH MY^C2W4^%"/;C$72^-8,%U3N<;!?<@=/YW6>G<+SU=\@_?QKI.0G.;N1#N(.Y&NP*Y[0@YK9!F8 CP&\,H_\ MIQ/Y9*&O(1/?B99)O"G8A _[LBV!Q5BH'GXL]/"(#QR(M/ \3('6)QV,+L=F M;[@?.7I )VG HT!>$U:%I-( *3Y3U9Q ,YPI%?R6QSWD@ V!<$=0<@A";'K5 MG6P8, PC@?;[P*O*4_!*W\7E6ZT0A (4!K !&C8H0UKB!+C/"%5!<9A1UD9H MIJ7@/$&! /7;(]!-T8#H=/9YPYM:S/3.=B>1CS9TZFBT"NU M!@R\W;KK6,]9$.N3X?HW/##5\T!>9,Q(11^\*VF>NA39FK5[TF%0UJ?BFHV$ MX\NN%.^V72);[M<]7V3+W"9RXG#;GX'UR+*/@16-%=3C<,+GE$!AXR@4^!,( MJ*6@65#7*-"C;@2(= /#5=;L)*Q23'F%31JG\7L4BX(F!M84)EOS6/D=AZ^ M!M3X\\>B0!:*C. )(_8\$?14%BDVW+6/BPQA!SSN,"?C/!WP3AI!^$"2Y#^. MYS@C778]&:!/XF)CD!P.M3+!$"'&?R8A/G!T5E,[B?@Y!F,15TJSXF8$'1H% MNY6)!*=+F=@Y%DJSO3S4ZDX>+1S/$$![8+H-6/$+J,(/:E+8_0_W5IEA'8KD M&(8X(C:G;< !K0>L0):W)QF8U( T'J$7 FQSLCH['FB%+^W97/B)YMTLA%6R M4=!" !H04@+2LQ:R*7E#")4I!ZSWM\[/IDUX:L< J_B1YU0,2RXE.Z5@W12% M%2? *X*#N4ZT,^_:D*YQ&-J.>*VKK4/JDE[+_Q0")M;MR82$%Y^YJ82HL'H" MSHID"UL[","9XI Y-AQ45]8C@2Q%D'%T"28"+7 >2\@(&@GX<$[C#@/XD(8" M:^5>VNS7GVC"2YMY:;.O2YM%WY4VB[TRU_Q5C_L=_GGH.TY![YANP#/HN\ZI M9XI@U&R-A$LG8-;L5-&A*)-#GZ"P%W1!% .B&(NHYPP-E- !0 M%C#>6%4PA^5BQ]GA=<"9&+P9XGKQV7H:ZMC3M3EOA>WQ)0/CX#(RF^$5^GX% M X+ 3#15IH4J#"UI$V3%IGK.&D"#%;CNW M.-]I..1[6ZA-59EB0@5D1GC"[#)%DT6?@9>/7N(T:@&<8'. "LH/2S" X$=I.IR, M(UP'60ZGT:P[G !CVG>6.8<]VD6>T]%C'2$NQ]1+E,5Y*T*%<]_\WLHI'J4- MS3C44;!PPN\5O" 3/MJ46Z31U[)#+V_3&3,AED'F+Y8AN,%5,[GG%?&P(?#> M^#6.'V.^,JPUR..F9I?UV"%(YUJFP@Z5ND*1@1;A?W,%)^-C% 1HC06R]3#' MBNP@M'7HEF!0>6$Y,53-GEBC,G"B)[G6FO3L(BR!0:M9&V=79;Q@]K*]&!)G MG3,JM\7Y#]-IAN4&SC9IG!3-_"X&9XLE?9 M_ L%">'@6IGGS80I3@63U#G)V:(\@.1H]W=F;.UAO<]12]!QSB+32'T0/B"R M1V:Z$0^8@*]O!2A)E/;J "TQ)^%L"KS-1[=SU"Z3V@!2\8)/'?Y(,U6%&8L^ M+3(CKA!:E\G;)!ES3GQF;OYD6#/X*:I-@4,*[$'V%[;J>!@HEF2($G5H4L ? M.&/:V/+88RMX94C6EV=!6H<91B9FF@EK*PPU!0P)#^@LT^#W81P'(-95P<2; M]B%7W_W\;)2#"PDX,J,:B4A87#$S)#2[@I'V\(5=C_%XVYV)$)P8E^&D5/"1 MV:(/H=@E1>;1"$\3FH+EK9F@I%B#4WC-@2]Q=!-"BPP:*"&P:)$GH7L4M)6M M2[$M>_%JGW \1 XSN57+9MOE1W5)R"K8"4L\,-RQ0$%>&43LHO,!3,,[:<@Q MO]L\=3^NX<'5C#[,[WXK2V:5N9"[/8!!?E56.X.J,*'M.$'L=3EA]0QR]+CR M5G:T3IBM'I:1BJM/T91@W;2H7\G5"5-G ML<"TTDH#7R4N+ME@L'*#E.]!'Q MQ4B8T'!E*^3UFS %8[^LANC,-;.TN$);\%BAYG#&U M6UJ(XV#?C%QY O..=\5A:_+Z%I9&N4U0<$>/6$9:3:W;Y!OT?EFH9;O#J,CU M4N_AJX]#M5XWZ $VE)O7WZVOO!>))Y/3BE+(\>'583>/BH5"ZZI6381T@V1( M5VD@3DHY:XA25A$1.N3&-(V/V)HYW#8/V-''.3ULYM2DFVR(AEJ/-=?Q0C4U MFETI #1A1]H]S:T^265<" MHF)>.IKD_>([!?VW&4O0[!2D)36P/H-3L1&ZE.7.6:44;P\ !<^$=7=V'>Y9 MZ1TR,6PA>H75 #S>JRW,X^&R "16 M'7XK#.K)&(70*N%[O8[NAZ2QDEX:RTMC?5T:*_:N-%;\K])87Y>8NM*H)EE\ M1\6R7:O\#)8TLLQP%;09<3-GXG$"\;CG^;M8?S7^@EIR%8-TB3B'FL&_BLJ_W2L96+HQX4L MCDTR9.N0@;K_1WCA7\!:9%*K#U8'TT]6 [I5F,C]:Q;0F5,R<5>+0"7,2G M.8)6,&+R5J3SO,[?&?5V!+"9"V6[SD#VB+FI(R MV@LK1?5/9 8FB6@Y2FP!F_/@N;)I3 J.H>_PM4A5L!T\/=M-='S'K^.XWC$D M#)(6Y \6T1N!E-B)$]%CCPPV0>LXS?3 M5KJSW1>%P>WYL"Y9\B_HL]& :F'G6?!ZDH+P,5(R1\ 9.Z9PO-1N,]ET,H=@ M+!BA&3[1WDY'^VQ;OQ<,[*OVQ$U[:O"6F.=O[0MV,Y_"3E+,GF"":@)#XL[@ M'&IL1$ZS(V>K7GIOD[4M)!67RM+,<=\\L4!(\8KI0#MSJ<=@U3AX9H]IPH)X MR@,FL@:;N_P ]HKLD1(FY=?@?7 'FS//C_; CIZCX!QOQ00XJW# VBOTM2.I M\Y6 3ITYV.HT3/= K@0+QN#-*,,$6+5$HK80D,Q$?++XA(M!9(::&.$L\,!N5/<^;"!T*[-Y0IH M41\'^=89R20VKED& M!&.:YK8@<\)LS28B#;@"/@VRF%E_9-;90Z-?MENZW$_L+3:'%D4\; M,L#EIAHQ@TA!/7J$Z9>)(I MH/>X_ FW<5_RFY+3._M M2YK8,$>K1/_I\6C"'/L/)Z1GFX*NCB_$).@ZP MN%IWTA,]%J$-+AG-9:8=9JBVKLU(06?FXSDIMR/#/;'G4MN:<(($M2G K0\O M,3&RR(#4!)[<*/^D*.AR/79(Y88/*1.S!F%ER:,"^;)A'9?ZR,&HN\B6Q%:8+.S:Y M45+S[7SS+GC^.PFT?6XY/*Q6N3*UI':I1FFT&]9#U_+#+04:*K<0- WHD2&S!.8!^DX(\+3!!L&$[TDE2 :P+Z./]\7"1X#(_" MZ+HJ3 RT+H*&=/X>;LN'_BHCP<*Q8TBNM,0 'Z7#SA48FZSQJFZA 05(,=]2 MX7CIQ9<]S-^A6YTVICAVACP*[@FQ[A5'*>OQMGQK'['IB+[B1I4V.'*P M37!/D-#UT;+P'#$NI_O(',65<239>B\D@'T&>"_D64('4#.@M6*5CI$R.)-( MB'&"F( ':Q;,WBJ"$&,R.,SV.1YK/T>S 36;'5IS(&I>6IGC%VWG+[P.Z%]_ M8I17.N*5CGQ=Z4C\7:4CB#7(^KB"%HHPT]8Z2F;=/:KBT%9(-Q$7A-_& M=.,@AY=B8,>,M3!3Y:.B^Y"ESW5!Z#&[#B1Z@;'((#I89&2CTSTUH70%EE8B'04G!J%D*W!&9%M5 M=3MM6[>9RI-T8EBM-F:T%%R+\_[P:P$U*Z+^4ESCON(1C!K$ 84R?/6"KC^V MH(\6A^4&SP6(&7H6'B5^EUDZ/D5K41D4_.2 I#^)A=H]URCD9,,S7]K08P< M[25L!R$I)0CF="D98:$QDEH1$M8@]T=W^YRPUYV9[,9!KWIGG^?5;/9 K0/] M<%G@NU2AM+V6P^X8\K(=?034!+U_[I+/K_(LYT80= M;'#:"L7X:I!*@<.H2HJO(RQ)1YO5CO0H#BX\E3L[N7CS+CJVSW#^;=L0(, 7 MGY->L9U4%)Q'+BI8C"FIHLUQS-"C8E3,I(32>AADQEWV72.][F0.1+I=/0Z1/^1A;3 MMP[;606-=HC.!ZM]GD%I0$B)B0)8#!7*D[R2C^&4%2JSL LL3^-T-A(A+J$H M&S+O"R7\OA!%1?PN83SW:I$KHG@N2W $Y++.@)P?UW B]'_XS#GN+B-39$Q# MR%DF\K:G_]\.]1%6VR-"!<3Q27S]W;":YNSV. 6%,X9W!_7%VOYQC# -X+,MH<]2] MS]AKG".,%\C9O#EU!SBG>(5+/+39@7<+RZAUU(B1A>5IJFX"&\ "9U85)I;Y M#6TM>!0(UP;W"YS3H]GWCZ056Z:;[Y$^*8.S:MF+32D M*J1!(?N..PC10.7&@(SY<;85+E0"U5(QMZ<$M9+@J@.YMOWU<<6+L[DF>2/I M 9\.98>I<\>1^60;$T)#4=A7C=TRGH^TI-0OP!(LL.4E[?_[%3I2P+]E8\DI MNOGU4<,MM(Y2R##,\WP34\TO'S@;E)4/.;VX8:*\JRRTF!A:<\R:;LR$@3+[ M]2=*$?U(=NW/_WY7ZMPDT F>TP>7@O#?IJ3Q 3HEFI/D7!@ ."60<\"?OJE! MZH@TLY0?;B[NC<"PYR@UB-0D:2 ,4F IB6A%WY/S0*^1%H[ M'+3(T'"7YRX4'W^) I*'2B5@YIY19A(F<"$O@,4CH M3JH./86VF#AYDK-YG M\D K"QJ4&'E"D DT[_%KXB[8+S($/KVU+0W#T,"-R#C&[)STQ\PD9;YB-($2 M]WIZT6^&)TMMNW6!HW:][OGZ8\B6'(T>>@9+I<\?S693-H(FF%.34IV,KZNL M 4EJ*C?1_2[]:K.XR?ZWO>/]8M_+3?X9$H.I'.&Q=VZ&*6FI-L#;Q!XI .2 MQH$MB?Q."%4%0UQ^)XH,NAV9*^MD.P$UBFC&TAJE(!P]'+.O'9USHL(16^H( MU@H61LG85#*?_0_.CB"7FBSNWQ=?P?S3T:=R]MRC 9)DB"P"RC6A@>WV8V<7 MMA6L,^>RN-[;^4['D#O7;!:VBUP'!+WR)'+)^299SSPY9P3V2/);V$IUPCRJ M_ P8 EA*HJ9N1[\PM"Q5F%C6R$ABDHGRXRDU?GM<, %H<.(1^1T(3KZE,"-] MWACBS&K)1G6J]C>XAY/@8Z*/7NUA_"&E9$&OE,PK)?NZ4K+$NTK)DJ^@$+UF MCSRN%L\H%HC(L=J Z#R. +%"%#)$SK *]HFBFPH0! *ZY3H[M@&OPKQ/,"LM=LN>FV2.29;LQ]DC17ES@ M"8C-V2#BIZB+Z<\%B7>.*Y_ N,QE:P'/1S$($CG>:!>;Y[)Q>&[< +-LRV,K M[M)F(VA[%=O1P.D$?(8!(AT+1<;)'.%&0Q@=X+:U(J($T>0Z2G-#Q/ M&] D,&0,E9"Q25"(=S$;$K?F^.J'7.OK3D- MUVZ>/;_S")==F4XANB4:^8>-X1T<1W/^9I!:(;-*[I:H;=V> M+A12^?DZS8WB-PC #%+W5%"AN0C#$PZV<^Z$-:32&NI-!L5=T?_T'.5'%B@T MO\," D5X#1:-F[Q8X0AKX5Q (IA:V$"H MH^)> \T/$< .H$.%/.ID6@3Y\-JC]#EP$&9X<)6[4! M"0D/%0(:)V&AXV^M89_F8L[>$Z/86T7*!-0"1^DRDA3''G51C][N)>['W_P'P-6"TT4(!#2Q"%_C6G=4U(RA\0)^14M-WH MN=COOG1B%N2ORITK5

7R>S5^^.B="AN.]=0S"#;:LIH@,Q#'T9SP M;+.'SY8XJ&#'' -M6BH".CV9QZ4C)O"_FZPW;3:4I83MT39#7V0L1.VF[,/" M10!&P1L$@@W,(_9 JA8J(XWG11-T$H^^<7(,=ICA?154F6U"MAX-OT9"!NA5 M3;]LX0('YH@W--YAG_[%3J/)>=>1)&8ZU&QO(S"^^BZEB9<26G67V5V"#4QG&O-AXU#6Q'6FR<]6 M,3X:%%OGP1'WZYXO[5)R'.,SR+ ^]F6/$X,8_0#2F4/9.U0 =FM1O/F4=!V8 MG.A'K@#4@!U@G2 V;?GE2E&ATG;#-48]%. ^$U1=Y?"K3F^($P>":N-U$@WG M-I[ CKUB5L=.F\(-V;[FM*RM#1SK$U ] MVQ+F)B1!Y%&6#1 )E&"F_7=^4[PG&"L1PC":/-AAW3 M!-',DG68V&>DH_)\FDGNRM MGDY]JX#3XU=6%^=Q'02*LV"%]JJ![JCA.+<64'\UC'GZT)/P#$%KH43]DQNB M&SAG'(#5.I60.>0'$Q@R%ZS!?#P$"$6Z5(8 _C (?ED9^LW"*& QP(])FSS, MSJ,.52B+==1*0*".R0*)/ZV!4V,0KB<4^ ;PW)U#RH"!H4@&"4(1[P5L,P^' MC:%8L6Z&#>'VP0(,-.4,QCGW>-,T'D+:.W>-G 7R0.RACXY."MS];DU'MHX2 MW]&^SNT:M]*0)2Z5)+^T:O'<[0OEV'[HGIXM@D-UI(CP_"9T1K("%#I0N.HK MILN5QX!\8L+7T)$VXW'8 @;W%>:*&:VQ-V2E0+D$[45G)!Y=@_YMUIA8BMPF M>?^Q8T?2GD=X\Z>NGXE%8$86[9EWV!%%+PNCJ3YD1*-AN]#'1YZD.>] E)6M M_+6>8 @)N*U1E<.)F=4H&ZR2? MP?%+,QHX=OYL[:=0'-"),4>FP^(NDU;-]BI2&6]US]N0(R=XQ8:.)KNBO+(= M?2(]G5E!0LTU1\LY*@5^SZHT8TFDW5\M$/$US+#: =?CB[%;94^%0QCRSCL( M#I$AP;5"8;_A3VXS9SC\4Q-$PF5CD) D7;X8_L!TSN&H'+.7UD3K-QN2S$>9 M 'L$L="EU?8KD>X!Y:>L&LRFJL@*M""06,6"XI*X:(=CS7$G&UOFF(0^38?7 M(REQ-W%Q!?N_5Z+ F1,L3KJ;I^ZH15T=;<0G2Y%KUP_\_@9P=@$7801Q<.I! M7/J:3W72Y*WLT_61!DC-1Z]0@@[^(D EWBC@=1;N_G;>#]J UOR6E.VN6Y]5 M'8$A%&,BWY@3E\E04$=&EJPDU:')\AS(?(Y/"=2\YIL9 H[0P"$ED]6:AC#;N S(KH_QFL $8R\*2?$BZ M)H!$L?LHK1\X@)*@MVPU2.!S#T9ATU"/87KF>%UX!T$ MQZ&0 B7D6IBHTE 8.IYC6KWD(4AC'-U",R/[-@XM[J_RP8"."JU!,]"CO)+) M0J%#\%!)@<2@O:?!Z9UQH(>1$<=!)VB8_!>:ISBX_!NWFX$[(0:CTD ;9 Q):)7Z1UE10^5K(87@-/;DQAEZCY#6?A M,,0<_:"S:6F]U0?55&X]G]9"W68K-RW-?OT))U[B9T ,[^K!!9](J)C+[/Q! M'9V$^"S3 )SW%'(FF54(+X)F$ZH664F&YHBP.% 8+:?E0DTQ>!ZN+?U*\DEI MX\;T@_22&5+":)6D9W1_) [G>C=,K>G47].+BYJS:\(SSBUT &9IJ VZ,6W@ M"G2M!VM9BT KN%+4*KM))I/9:HHV&D]C:-_"Z]YQA &=1+\#:$899"'HL$[U3_XE0A!@32YJX'&=O5-L4, MLPR+0KW;:K]/MD>C@R&Z<(\NXT,#/A24FJ MR?ZR DO!)5>7!)FC\%O2B8:2NQ"%QK<$CYN3Y!N/+-8R(T-/RQ_D-[(@/44I[NV>KL]&:HAEJ-=IE^NJP33V0&2$/I.5H M4BUSU#J9F6N-U3Q-[Y'VN4U@XE'-B.<[U->M"#77GTS3B5*"WF^#\4.U-"L7 MY=0-S_'KK0B8.Y=X9[LOP0R\W"R%,E>RA?9G6AU'/<,.RD2Z[%0<^6&&6#5X MSE&@;^)O:4'Q'^C'TP!7)P!^!0.]FGO&]*:Q!L^/K$K@LU!MR ME,P"7U]T/V"-Y!*B5ON6$%\E )ZG"N"K%0,^@W.PA-7J*,7U[(Y';!RV_ [K M[ZOLCL%*LS9Y;X/3F:2XHT.Z7X_HT$? XJ:X#I0YJB7VW3C66 M\VJ[E\RG.]K50YD>)]7U<)FNYY8%KR>\XO'$MCI?CA)4H]:1^)Y87P_[K5]_ MDB\1+]_U+IQ>W^OJXU:F;&7Z6?!W)/>)2^_#UWG$7V$R! MCC+5D5OL]W$*/$JKB0!L>\= (.L]W#=H^M A\=; H+G@NG,T$2:)KW>WKO.CB.XAIT5) >/1[2]:J8 MQ)N-]]H4D<-#5&/WY39X^4+/.L-*F0PKCC0J%ILW,X'6OL^L M8 %0Z$8.T(_WK#],,EQ\QTGY7B\I!DJ57#K9.];&4NY][_2DRX'%KFC MI9'$%#-:J'7#L_0\:1=/VF_#R)#.\4_VK8]-9YT[F<6,Z0+?E-$ Z[ M3SSL-S&Z#;3+#BH+$. FC!'_Q9+ERJG1KY>9H;>&USM[8DV9LZ3VL4)NDNWW5&7YH&V\MF@3@*FZ&?6VO7#LB;01JX,#=(N/,/(+^,$$W524/?UZR8;)- M]ZHQ-14LWP%GSCM6EP5GFD**RI7NC52L4A/KB0E5V44,?M=9+D=-0/)\]>1[+[EF6F$:_, MU"LSO569*8,+2]GQ/I<<#U=-31/7!38T[94.]*2; N(T\0L_S;IR'1R6=^M] MH$!7EJP2K0W*@=$T!81PZ/3*LI'IS8T\I5*5TFH]619G*4V?@2LCIU=.8ZW] M>M;(-G*92"T]#29F+2,$KXR=7KG9M_EB(K';T>"I^XBD5>JK)GSZV3H;H>2V M1^>+ :K?*TY$KI>(YL4M5!;4Z:4+(-R9"-\4*;ZZKP0R8J,YWF['X?'9E7(U MGZ@+P5"/-D;<(;S@R_U&;SN.G%_)R]/Q6L_+>:K17P]:C>*HE>-3P+T_N[)> M3);4B5:?Y#K#:E%+210UKL[ E6?;E*BS0R-17H3H6$0\%(HC2>3WVW'L_)XK MKIT,K\J96:Z?: 8F+9XNL."0$N=7CK8%O3<1DTVQLMFRN46^HPS[VW'R_,IE MBXNR57K0$O=TM;VK;]L'G=J"[3R_M%+ICH#F[:U%OLI+=6T>BG4&X-+@^:71 M:CA08*:K9BY4HK(B2_?563@%+SVCIU32J,X/O70DQXS:V6F$Z4ST"+AKR&6M MFU"Q5]@-64K8]8J[[:P?W 5FXZ#+0>UU0VZ&2ZDPG2FWY?YTE$[M!V !+B=U M2$VC=$H=2S0_H>AZ-IL9M976..AR &LQF)[OEYL>U>$258JK*X75 EP:/[^T MWY''8KW/]:A,8EU91?+;6#.9@I>>$-4247"'6&?',_:$Z38*TN-# ) M-'*I73Y)ELW,3$*25E= MW0=R="R6*6[F86'0*F_=Q(2:*F7JFP'3%?D&/Y<*#:6NAE)N8F+?" ;I;J84 M%(VJ)/8&U5F,BFW=Q$1K-6GM$W):AO0WUJ:11'/5=>7]R5ZNC++-6"E7640. MF\8@#R3VS(WW!^UII1!HCPYB9:]T1JU1I[?IS]QXG\Z%AS,N+F_H6"O3W@CA M_;86<>5]15GV%J,YLQ:9K<)4)TV]1+=3;KQ?[;2;AW!@O*<;XS38I4J #A:A ME"#W?']O0>A=O07A6^C>Y&T@YQPW?(FB'W5)L.V50!8J5##19?!8B(LVLFTH M ./X>DOZ?%U7C2G#-12OV]QUV MSG.&!)Q<%Z],2^\=_SH!W2L :;,:-[8%.DDW#9GBUY2!W;L#J5X+C:@C(Y'8_:"F;MC^T$5EL6Q*/"!GE MC*$KY -LDJ-/C@QW"OD-3K/]W(G25;(P\X%!O!LZ1S[?\*H.H?/-S<"#2;Q0$>]@'O!@/(YYT(.)O22#WL$\X,%X'/.@!^/IF <]&(]C'O1@ M/(YYT(/Q..9!#R;Y$O(.YHX'\Q]=A=&9FT5BOF(77HF@)=ZS-W>5(!_>F,1K M503N._7^N1[6,(^3_UJ3/.ZK_^Y<:^'1TS>CI[=\=H^>/'KRY)-'3]^6GDXV M":7?G'L4>8G>8)=P6OE&>^(1S@W0SAG'?<[>87EMUDZ0 M\92KG0]5H/M(Z?33RW-X-_/T_+,OST^G=">^H<#C^ M$B(;)LB */3? ?S1!XGQUY_F<=W\$:[3[UN[6E^PC7<)9MPTYO4%F_(:Y]TZ MY'-3:>\1D)M3Y!&01T">!/((Z"<1T"VL\,^WNQ^3AAYVNTPWY2>)I\=,[GS$ M&8E=[XQ "&V_3X*PZD<0UCX" Z8KI,GXGV?'43H=9Y[>MI/!Z$YCQ<+T(%>[ MFX5$G8PS#[\#.LF)1IY7E:5C#1;Z4=B!?K0K#>>[<+H3HF-KJA*BZQ%*@CC2 ML>C'H+#^M;"-WG=D#WABQX-C#Y'<>IFMY ITI3(OK??]WL*/)KYW=;?JNN"GP@E4FT:8%N[U>C?$") M0;C>L#\9_MB@[W]=\,.>_MQ<<'O#AUE#I*0Z1U=&M10[9UM\+_UY![@LQA6V MNFX=<@Q;EL.E>CH0[Z9^_8D$/X;1^^^SU3=\. 1)S*#;)E.^TD1TBUY?!17X M@)QW9SOEKZ:JF'S89<=ZO5KMCT;+F;@>5:B.4LQLA!A$%PL!49KPQV*71\UY M_/4LI>3?FK\^:%7>E;OV^VPXE*%J'+5/=B:I^43JU#80ORL"])P_%+KL&GC, MY2FO!V"NNYG['V2L]IRM3*AXH$-5,MU,M=E9U,K1%&"L&!RT[:>2ER&'/<[R M..L!..O^#MD'66S4:(I,/A8;4?OIJ3)I00T$LZ& PZH_&@F\ST(^H MMGI/@D-QGZ#G91COI>\?+'GX)++H$2)#[D,3;9Z!)\*';#RT&P5*T*I*_/H3\L?BE\?0_US._,'5 MDT_"K3<.QMR0LN>LWDBW =3 \$XKYJ<@5X%%OA:D"MVOOR@>&WXYF MXQB,ST2O"#9[S/ADD"H_BAGO4N=S+U;LME:SP7#4&N48+5<+1AN!56'5P@/Q M8EYM@J<7GYH5;Q[VNA<;UE;E'C41BE6ZPT024ZK#]&82G& )HUYQK_KN!_+A MW^V3[Y\'9,/[!;MNQ8_@!, 371AS5PEQA6:5T41F8.Q7O=XLIR6@J0J+B\+Q M,\;\:9[C#T$Q^BY:\T;1KGNI0:$5WK>G2GTH&IL-R[8+LW'D +D-!KN2KS2H M/E\=TE/PW;.&W3\Q(78LE,) *'&* <.)GE1ZBAC77P3N@RZ2B^'BFV2]Q8YS M?"LK:>W9LAW79N,X"FF%_+'8_8N0/39]I>3(8]-GCG[=B$D#BZ(60S+ U#J^(6,"GNOX74XU%/E7X]CSY"-9@;?R;B\HK;%K;)7.; !3*A MV5J(\2W G[%??^)!?R29]!C48] ?P* /51WFQJDY0QVH^4UV+X9B0YFGANV^ M'("<"L-B$7^0NG_JZ/DX]8N+P3SN?9CXV8VX4"I+[6QL,&C1A6)#+Y;HRFZ5 M@DXG:MV+A/S1V&6$J6]<'/8.^DE)DL*:B(,W1T%_<'GT'3OO/[(/M]Z-'TH$ M7X\:Y!'!EQ/!UW_YUF3R-$GJSP++@,TOLNYC-(W7-;^/ MW[&2P>%^#0E'\]3Y;JTTVS&23G>BE7J67C28=/FF M(8,VSRHS&>PL5X)L*4P%V,.40LQ$:G%2LK/?#'QG+'G.Y#M\I4M\@65E91./ M;&2**1^6DR+39V1Q.T["I'8DY@7C/1"-9V30XPSU.E6L!5TNQE)400QIS5!I+Z?K*<">D5]_$F$/*,'3G\_(GG9R.A = M[W.Y!-7*-9;Z>)H-Q87*ZCDTIYK9,,T2G^+%6&MMQ&,U0:4TR)HQB)40B7BZ MTV/.9V1.E\1TJ9W)=8=,=I;CJ^"SRHZ7NON;)J;OQJ5 YTYWW+E>$J5XUJ%$NAL=JVEY528?@[^FTW2 M^9DQB[5RF7BXG%\'>WH^ +4DS%]'_)'H%54DWR][_1>!,\G>^A\6D_;2%'?K M_/PAT2_'%RXBJI/)AXNE3/P@!K8M;IZ&O*#)D27%(/:+ $?ZO+C-XSY/_7G!JUMP7FS8;)72 MV?9.7+(S;E@I!^B=C#@O]NM/T!])G+O''O-YS.<%IV[*A5E&U9A:?SC.&5)< MJ45$K7W(;B$7)MPG=O\T'O1JDKZ4+Q\_^/0Z?QGU%#MB0Y,FM0YT0K7R6J-$ M>@;Y"\'K^J/A-G@O;CYES5I?A.4)&_XRI=C M9CP6)3VH/OSN(1HBV=M8L+L-O(U7I'TEW:OF0EJM&RN%=*JI XT:A!&;:B'MWH+LC8"M_V$[,KS,?9# M87AXS/[=0E1O,ZW8SC#)295)BDNZ5QCMC0S7X5.0:7'$*A8[1[&[5<3JD<-3 M[R Y.! *4-5,@. WN.?0]X^CA.I?^"$\GQ\62_^.^:Q'K=K\RF*J(_3N-^58 MU^24*^096*^+Q)*E0&?>VPUS5"!=TQ:;&*V(!^!!A- X;NH*A"*/[9ZM@NJI MV>XN\;E/9CI6SBV"M6EM1'5R6CVQ*"=*;1XQ'<2ZC9_7+7I,]_2Z[D$-\*^) MG]V9WRX.C*&;H>(R&MFTZ$"K%$Z5U DU6"/&0W53H:L2RA[O>;SW'2)=7\6$ MDTRDFJR&VD%QG^ITNGJ:K;)CQ(2)7W\27M&^5S7U'4)27\5=XJ33HF/;28Y: MMZ12IE1IZ7/,73 $%0]?4Y7X-"533\%ISQI-_R$M_Q_9FOO@D7JD\J#(2AZI M/"*I?!NIXJDCCW \PGE2*^\A85'NOET_.E6=%X##R?LD8.6?O!5?GVQ]W+WQR,23)AZ9>&3BD8F76O&&9'P4ZT\#;\NK M/F:F\OP2W!HX #+LL990UD>;"ZN;H_\]GRO^0V(X3UU@=UK72GZ$O=VJL.&Y MDN7LXGQE>E]C%HJ:D8#KBVY$?D/8HNUD _.^DIJN=#/Q84PT6@&ZKAOKN4[/ M'J+TWWX_5V3_EM[:IEMBB H$N 0?".E#,=0:!Z.X9-:?I,ZKB#S6_R$IHJ=F M_>/:VGLQ?BY6*VYU99V@A#)7BJZK\W(F^A@]/Z\S?CS+Q8?;7IRG0\OUY+!6 M)6.<18P?@7A/'M=["O\9N=ZN[KT7QT=BO4R]70SPU'J;;$[[2KFTZ#P&BL;K M'#\J9 :,,A&*N0Z].]28;E#C]XCC8[_^)/Q!3]-[//^4/.]257POYA=;G=:0 MIZ>'G!%,U.N-TE*B%L_ _)WED%]7"WQ2#+6-9I(>E<;E\0PR?P*ASWG,[R7; MGTD@W)JQ1R5:GK+*8$0%XN%VI\$TLL7,,SCP.65=Y>;)<2U7B*CY"1?GE\-D M"C(VZM(/^8/7V/+?K_3A'?'.'" 2'G0)=O>X M);H1H>VN1=KF'6==(\R$\\%QCF=C]:B>F3;CFV>P9.92*%&9;.B O"_-D M* [H$E@R,12QC'R*'_/CV/GK2T^>FIT_'HM\G9F7G5"#I;0-0U=&$V8XK:Z- M]N$9HI!2.\I&1#G9S G%6+_8'\R*>=C@%8-1R* _%O%XV5/-C\7+'XLPOL[' M3&(M<\*"RE-].K1G)EJC$'@0A-[7^;@GLF(ZV%OK=,5@=EJ\OF,._1;D8XC= M2?DI3RE[C/Q@C'RCL.'K'!UJ5>9M?34/T6L]$)U1E>:J''N&N(*QGGDQ +5?9]9*N92H;=OA)3N^FJ?IV)U++ M]"*AL?GZ5JXC?D_\^N,"DNNQNU?W]K BX":LW*M.:EJF,:Z)H5@B4.V5IM,H M^PQ!Z:!$[5:;542@^\F1;BQ7 Z861*X$>S'"Y9=0*$+A)WRFK=]V\;796G=*+_&)-Q8*I1"T= M;C9F[6>(7PTB$6:V"7:&XC*_R(F3?-*(;H#02\#XE9>'\ZK=/B,T]>-HP!/J M#Q!T>D6<]R>%"E74(UDQ4YM.Q\-$3%V*SR#.]6Z>SU:=/1 M#(IS-+;%JY3RF/G1F/G&H:57N+H0ID>'2B^_HRK,L%=@%V$V]A2>J3P*S7=< MF1Z*0I+KY@-TJ%X*(:Z&_94>3WO%4H_!YS?FUWUTV)?2S6"$BL6']79#3S8" MDV=H/&B#URI,MZ,@M[1CRB8>@<1%Q2%VPJ2Y$70 M/S%A]LB#VA]=&G[%3.0/RCK"8^^8T"I0G2 3K@E\+M3MR!2G<8RRV(Z#21A M"L7\\>3]A[1Z+/Q*$93'PL\T7_GS&7@:U RYG-B*="@K;TOE651J&2G(P*A+ M,AKR^-=3P=^1?V\^J_GS>3>5&C13U<8VGPOU!KQ46V5'8FP&>3?VZT\D#)@W MZ3&OQ[S?D'GO-^SY\[DXD.M.)$69#\5UCN;$]KX:T=&?SZ!L::EONDPR2.\3PK+%E3=90D008A\9(VH3&7>6C,;GTMIT,1G<: M*Q:F![G:W2PDBKZI6Y!19$T AXO^T54969OR*I!101#P;:HB%_[!/,A!_'@694S>/ S^' XY#:(9);+[.57(&N5.:E M];ZE!V3NIO;">_BO7DQUXXEVMR:E3HGJ)P*&/^"\",4M"U]2'>^SG*< ' M9C\[(A9*C,3L6NQ$Q,I$6_3ZZV9'D;^,];KLOK26EJ4AS?<6B^%^6BW+[19D MO1@POX/^2/+^82Z/]SS>NR?ON02TPH=90Z2D.D=71K44.V=;?"_]94Q8SI=2 MN5)KL!(%J381V-EA*/1FD D3)C3N%3[P]V;"3XU)>8SY8<;L+">'R%)M!:E* M?\EQ8F70WFE?YN"MA?1X7&-#+:JP'8OU4;@R-0J(P5#56"3DC\9"5X:9_J/# MP-<=CGIA:+HPW3NIZZJSQ==;\5)8$78UM^ WKAM+L#CV4]X)<3]!;\OI; N@?+"MRA2OUOHY^>3T M_C*'/IXR@NK;,)+!PPME7O$)5BYNG]MI4MF[^.$*> < MWU15EO@)X%?2Y1_YR5+ =_BG/-A-?*L)[X-OI0J,].)K\QND#JK0$IE-HP@ MP;W'6_'&^YAKF<#.VN5*XB$E0=( AZC(/#;]]CSCV" G97'P$%^9M=]+98P0FRP7,I_?5+QZ%?8']89@66J*L&?P_5_P7Z M $LL\^ZF&<2"PV96&O^;_.%<,NQA!\0";)3?2V870,I_PQ?75;(P\X%!O"'7I7RBL9=0]#4KEQ,V+O>' M[# %M$ZVC?P[ (W&WQ.59\3 %NS3?U<*%@B_\;#M#7]R3_,TT(/)I]-;VMBO5X O?8RJ E['^>U=_PSN)SSJ)Q$O2.XA'. B/)1[E)#R6>)"# M\%CB44["8XD'.0B/)1[E)#R6N.U!O+-^[TUG[E->^\SQMG^>>,]F/';R)G&V M$9,K=F&+R7ZB2)R5/SW_[__]S^0VZ=17N?'F@1F6EW5>]_44TJ@2L"E/> M1N27'-TX5%2!JWT_-=7&B-P[!W]BI2"X9]L+[2YK.3HF2/[SR^NUWG MZ[VXKMM:[T8:E1'$3&I&,<8H&,G=D>M&0[&;7U ;BN[KQ5&],&W&Z^H,<%W$ MXSJ/ZQZ ZVXS2.(UCBLOQ@6&J1:2N5QL-&MM"L-T6^ M*1;6X6HSRPU3@.-BUW)L6LWQVG0:CF6& M\<+F?NP8DYEB-JSLPM1>RM"O0[$SKK6L1GWE&:+9;Y05)I4,O.*I^*CJ5=.7L_ MPUDY"-F.NAL"N9$89.5:OCF>M6?CR-7N:NQSM+C'2M^-E3[NA[[.2(/\9#%= M##JS7*">#:TG>H-KU5-W8R1V'1D597I;R_7C_++4*9;7?!J,=('B-] M@6OY.A,UPENCOQXO2[E"+4&/NZF$MJ'OIXUFA6PLG2H-YU1 [0N+9':MTS1D MHFN=RA_*1)_H0/X@QKJ1M_@ZARV[H6G?F*\S5"498@;E,L?)A_OYB7*6W[6- M8:TC\JMALE7IRZU^H@4X[%H_\5H.^\9ITJ[*<#PZ!"\9Z@6F'L:O)+]!Y%F' MU&G>C&?XL#C+-B+4NJL&2QNV*NBE^XF88CA=&ALTIU,!+A%9-(.!X;"Y'4>O M=BE#7F#X9_/:-1M3_T_*$[X_A2 >V8&Z*'93 6IS&+<7JUR_%&NTV-5F0??N M%X"@N<%DU"[(A=PZD"]2^9W$S[(M(':O]9T\L>OEXY[3P[K(@E&FF.\NNX-R M+A,6EB6."Z^KD_N%+ZJK16BWK@\R]+I13U8+5&)8,*#ECT_ M5&AZ&:,G\&=>8;-M-DOU2KV*+H:*B5%%+=46\_3L?N6%/9Y-M2J'9$Y02E(N M6Y5VN2!DLVL]FVO9[ XS!>[&&D\T+6!FCB+U*1B+'_?M^WUF$8[?-VAV4*L? MIF ?)F$GM#O$1U,R2=0/.S:"@ #X4$8"%^!A@+8]/K"D+WGZG* M5I_[5A(C8PAZ:S6,*J !!1:6_-^MB_=Q/&>P.D)SAV,/=&8'$>Y78,$/BD:/ M;L'QK(*%3D "&_C;D#E>A7^=?8WN]1NUUL)6>0&.]/!!(>5SR"'M(=_TUY^& M[,OS$]5@U#TVWT(Q/UQ\T._+0M1X%0Y^L(#Y&4BEF+"T.3A;-!.B)^A,EM_Y M.A#5#[ZJWU>M9OP^3H'D,R'C*0!QM@Q>TYD^/_']0Z976!^1B17_^@$-TYW MA-' U>JLH&34^!S /'PX&7A7 V.]QT4&4^:8%&AMX9'(@AH7(9&5N(Z_@(1 MXZ;RN8DXY((OA-2 H&M,,H\W) M_ -KS$T,*ZTZHZKCC)9-=EO#2)$J!(.-#;-AX]O%[->?C@$7CCKR0>/&_[@\02$Z)R+QFM=\7&4LS5EY7I M(G(R]/8]Q.(R$XG01MO>PP+<\(R]WRFTW:[$(\659G >7U5S#*WO-JO4L#DJ M;7_]H5XNCQ][#^W@B3O,R3 7[UC_YECS8 ][< M=3[*]/P S-[@OTD:I5>-3 MA5 POV_!DXS>YB09/)8'3K]! WGL?7KQ->!,GY,1.=8P&20Z'-R/),2ID6F. M86',]2&<6 ?^+2L!RQJZ8G-3-UNCVJ".O@< [D7XOE#$]K;>8Z+&HA?P6?"AW&>_R4*/]YTM]UDB->Z2QAUJ3SH[7.!(;.K%S)-NLC,@%,/@T/P M:=:5W&RBK/6EJ%*9"F4T+656FU5/I!O\(-79"]QL/MR" M*R.G5^Z;H6B]G]TVZ2 E)GN+7J:$V207'#0Y> MF3B],F*(PU%XO]SD!"FBC.*2/.1ZL,V/.KU2*+7VHU4OGA,!HT8JO79P&:W" M0L^S*_5\4:24;5\6>7K<*I:HCBH49N/H^96K>"D;EJO) [6N-,/-D;"6VN+, MK.PZON<@+!Z,04<0EU*XG^UEND,U!XL1SG8I-C8BQ40GSM-,HCML#7)&.#5. M@8_/WVB8:NCT+I_+98RJWJPHZ_1@NATGSJ^FL6:8,85#*#L3R,J6E MX*5G[S1HC%.QK) L4ITB$\INN$6"VP*Z"Y[?M5&B0LM$>M&C.S$VN$^KR0I? MW\)+SZ@DEJ9* ['7T,5./S<9%6/%2$<&"PB=WS72"D5[HU)\G>/5.;NHM;GF M)-F"EYZ=5%$<%.(3CA[2ZQ+=""?V5+%90Y>>O=94K.OM2)>;1:?BN@B2T^V.69<3A04H[RJ M (,NM#5*!P5^4A4U"@FN [38^!<5&LI>.G99BV$0BV="("K&I%*;#I*%E?5 M,#C8N,MK10;51)TKY.A"/U)+K[J"WFB@2\_NNIFDZ\E&K)S--:B(, VLPEFQ ML(67GAU!CQ**E))H=!M\)-4&E[HPP5Y6.GJ2CDEB);RD@=N;CBB= M&;ST; ')F#&N:X?RC I).7&T'W#351K=]6Q?6>D0&^I-*B<*DER65\KXM"AN#+82I#D7W<]IHFNQ%@%1SX8)P*55?;U=QAFJL0\U%-3_D#]IL M''(A[7:_;HP:47E$-TK[;'57:?1T%ESJ0H1\55,C2FB2HY81?KT8)M58?PHN M=2'"4GK,!_7P5,\)(2HU+!@ MS4PN/3'9\ \GX[XX49JBNNA2@4W-",>SI=HLD!K#2\,GL_9>OSIR#T/N1L%& M.,%!\\F*[N-W*YZ%XQ)U!4^3E"3\;\]Y_5LO)T=&4-*RN9TPXNGJ\JP//3&7 MSJ9V=*BQT+NY+D=M6C/H\@1OXO*X1KU0O ..%T6S,\G85V OFG-#E^"F<]\* MD*+"^7@4%RDSLAT7# ?].*B)/&-9\3$<)$L4 _KL,.Y?47]#]M48\V7B[XUQ M-A555X6=KZK,8*\0J_DZRE3?PO!V83DIVO%,\\*C:*8SB+DT)$ G"@?\21B/ M]X&] )X0W$4[:HDBE)+U)+!!&P&.K27W>?JP9G0S ML=3.M_=BH40#3E3U]'"X_;J0YB#;D)/CPJY/,\&0FMKP_1*M \8.15\NC^Q^ M5S#CGQS=?M<97GF$X+9C3FS9J2^F%'V,PRF1!GA%O MA0P,Y9 ^X9;C%CA"ZB5^DR/\]T>'I3]"*K/HH+C>S+)S*L3V:_QB$0P;HP>* M22OM66,3K=28]-.=Z>L!Z6ZZ$NK5Q7Q>K*BE M^"8<+@QVR[ MMDFN"1*/LMZV(6A]?M$49"7%X,P\]U*9@$M]JF+ \][Q++($3TS"J:( /3'A M-[P*;$8_RGY/5(6!]^. L:@*$_PS4@GV](9B?)RPK SK[ZO$#-I^L%#>%#3" M,I;8Y/>S'-5AE-Q\,)-ZJ_KLZ^R,PR):S2QJ/8IFTK&MWI!BO,P#91%*WLA4 M_(B9D>(XM)U0QJ#0QPSZ)^!/#=(N#IR .QLK*&J^7@%]C#)XF4G.1%H-T4MA MP#&9_*'7,&ZJ@C+6'F:<6YA254;&OI_6AG\UI@U#9Q4@_9!V*@JSN2OMQ/IQ M-K6ILV$Z5#FD6U.N,IT=@(8*4B_4;504T &((@3@=#)[E!,2 "4!L<* KU0@ M@61@?0"-@+8%EMSH0 ;S.B[X6@+"F^QMR4A4"EG*%76>]V?\MXLQX>W^\CB; M2%?F%;6-MZII[U07;Y3C.+/K84U/!T69BL45/34;+"9Z=G:E\M*W"E9OB8'[J=5=9Z32A* MN4:NR\^7[(A*,,"T"-XHO/RH?N@3GNKKGNAHN:Q0N^JL+S:F3&Q2J.O53'4& M#_)&:OY+/%&/4.Z;70JNDW1*4/([L2$=*NWV1-?8?.H!LTN6S_U(J:7W-&Z@ M%S[="08842QC.^T3RS'T;7E;$0)S$UI:Z+6AS0SW#]E?VF_G&[NEJX$J,%;C MQK9 )^FF(5/\FI(37%]CAIO4.'22K7[]8I2R#GY.ROJZG;7OF(3M82X-/TY4 MCBGX/XJZT .$&I6L\D0\"PTR#[/2^-_D#^X20\GGB4D_!XXE%.PN.) M1SD)CR=N?!+O10%\RZ-[A%GFGX-+RSO][HUGW M;WHW=^X>_4N2.=LHCX:^CH;>$O(>"7DD]-4D=+(K;X.&O7^+4$+G1OOA48DG M:#R#[\%YZ &IY:-VH)G.,OVFX&KG0_AC/@*Z\=P2V@(%>Q8I_9TH# OO[TU@ M9A.*1UX>>=V#OLT=;'FW=@[:ZBLY(Q\3U=Z;G%TRW.2J3B;^$R&X),J ( M_7< ?_3^8JSF<0G643'Z[UL;JE\^(^EOW;W;1B(?:SC2Q]W@F\KKGTXCIB#V M2,0C$8]$/!+Q2.0BB3QFV/"]AIJ%*QN[WFB#+=)^GP2AX8]:E'VH1@ WCS@ MXQ^B']TU4HF3D8I$B'5\.$U&E=PS''GY'&XFSX3RO M*DO'&JPND;"C2Z2?D_HMO9@VZ([:6_'=,%/MA"#.C9]*?@SGXE^_A9;U](=V M#%;2W&O[-=U*#*A*;-;K"8E$OGWXO".CI4(TF(FI6BX0B6;E^IA;U[<078KZ M6#O8OPA(PN[6?OI3.^W8J@96^2TM:C)MQ(5ML'_8*)/Q"Y+S>_*3I\9A?4X[-'MCP_R MUR:GR9-,251SG7J3VY:7Y9"L;@%_12#@I3^82/PX_KK'"%2/EY[#*OP@-S6W MPM/&[Z&FYB(^5 O)FH#W*A;'>] MV$;S57;Q98S!T52CVN7F&2JC]QO;R2PW@U- (G#^2I+RA^)7J)EOFR#]J[B; MXH[:]>WRI%_H7CY6S/HOI0X&+HW3"NQX0>$SZ]JW!S?EH8$5&,=(2H6"A2K#Z,-K*S#!R*F+B:GWYN@AYX M9[ZMHHH0IXYE5H(.05YM9#X+&?H_OG]LK%", MHNF-*8ENY(#CK>_[F*4RF*-2-D.YR*]#(UHKE]EAE]JG)_EN0)GV)B,X@#7T MZT_PRBNNY/3>W>^$WKI=84?&KU<(-I.RT:_ M,F0"4-E!YY4IH&R[F0 ?SM \Y"'H\$:B M5_#0T^3*'K/XZ0='T2[GOHX%3A@('$XQ8.C@ 22.Y]O>/C@7=)%,P7B@),B# M?"'7&(RJ]?YBD&)9J@C^^9H.M]?L'Q]Q^'[WOS6[_]3 MSOG+FPN\8_:.V3MF[YB?,9C_*8TOL$I0UGV,IO&ZYO?Q.U8R.%S=YL"?\;PI MKP_FGMX2GD']P=C^>M!(E.D1K^4ZB57+B!;FL5;[ICY5FV>5F0S'.9<@"PI3 M 99WIA#OD$1E2G;6X8+OC"7/F6R&KW1QP/K\9#TJ9PH#D>%%O2KPTC#0V8Z3 M,!$0#WHA1Z_"_?'9\3BJ'Z 6^WH\TS1H8Q%M2I7IX# /I9Z"&0UAGBRW:_,. MM9=:RUILIZ?BA1E@QLBO/XG@_7O./6;TF/&CS'@:SY\5V-BVN=<+=*874=(5 M*A@-IYY#-]:7R?"&/^S#5(R=; [Y1E_.1UN '2$*A#^8B'D,Z3'D5S*DP!64 M2FA'C\50>9DJS95QLA6:/05O=1NB$(NO85GW?-K:]?AVKER O(5ZP>+7*+OO M$??_&]^YJ2HK\*9[!!7)@U-8P5)$+ZST?,F QY0KW\T))OS2E!@@DF0N1UC& M13!%%X&-U(CP05&8K&M&0^L>1N76.$@AC]A#4?L&P=P'0]KP3OQ13_P1Q.P3 M^5/O$;.'0*[9#Z49G:HHR32WJ!<)>Z/K.$QW0]EN@?VF=[#/VJ) MB47614JD][%49)7K)<+-X0SR#W"@@K$KRO>];*2#ZMJ0=@/*-&!HO)F2]&(Y M7N;QX:R!.SE=1YV0MQ!EB)\:4UKC+T: L7=1*@MC1&=*:N:V)]6J 4#+( @ M@M,(A;W@JA=-7Q,=\>CBN>GB.=RYKQ"YP75V.HZGF2H5XP9)BFKLJ55N"T4N<.$BK\Q] M\S)@?QKZG%=]D@(>H_/J\DXNV_<7-$^; ?."\3\M+NB=^$\[\4=P\)XH_8)T M8EW!^,NOE-Z41([N['?K<&[9RJ_#A:7&K MF:<]VZ;E:FJ>J]29TK2>:I>[B2UDGL25S./E75RZP"3[0+P PG?-NUPMAFX- M)_E(J98[%MLZOG"17(E>1:MU@^D)U8FUXO,6&^B.V=0X&,;PY><%MS='=/V1 MG/B(H;SG8L1G:^]ZG0V33#:M466=HQDCLZX:H4&RO-Q"-H1-7O%S/"F/#3TV M? 0V?")/^"I&+%'KP$ +!G-4@:]JHZRXJ02,&61$X 8'_9'D)V"<>ZSHL>+3 MN,A7<=5\7388)EH;4/S4",=:D=8^4FM!KH+^L3_J,N3K5JCGW\$?SO(8*\^G M\AM>-G@O]/9\&:V'D27?W\TE[-+&W.+F]6Y6J5:'E[-T9Y1*2:T\K88*P-R. MH':N\'D+MS?'Y/FBW<_%<4_LS[[-;WVFLR^NL\$559C^_^Q]:6_J6K+V]RO= M_V#M^[9TCA32GC!F=^M(!LP\@YF^6,8VQG@"#X#Y]>]:-B0DD&R20&+ +9W= M"5EXJ*JGQK6J]&6[@^;Z_%R!>"/AII93K'^,MQAO<>!Z,N*T;%/LVEQ]C7:J M7KF9(@V&KP:( W%L&HT1%R/N7N/3/X-':)2I-=[#+;0Q-LRJ.*V*>I>!X G" M58P\9<)D7-'=D\"J+#@R8HW!>P?LC.NY<3TW$F[ -06ZX93! $J-)R0=45]E M7TEP:8T4N&S7)KPLZ[5I"42WR;?.T,49[#B#'04P7D\,?"H45;//RZ-$GF4+ M'6;@H-DDJ;44",4W#M#%4+Q5*$9L@WLL%Q&1B\BHZ"@'<:?J6\NO94KK.C]' M^W+73,[2F62O%[@^;YR>B\N,1\J,JBE:AHRXPOII"ZX?IX>NK^88,9-S^RR/ M,X*WZ>_O-&-76+^_T24Q2(X,JUHQ-$'=9)*,7_4S X;'*.CO)Q\P.ADGWF.8 MQ:6N+P.MZF9F+7,@&IRZGA%.E>4K'MZ"0*-^_9-*'IZXBF$6P^P60Z.3$>.. M"E2QT\\K7"%1K'-I<>9(;04BAH:F*4U<+CBZU:+64Z.1YX )/.1<\"'OXH3- MK5:X(A96W:5@1#&3%\M%+!>1=F-^,EHX>R^UY[8,>W^#)KD++'(I,,A[/I%_ MQ"/222ZYG%0HATUT.&EJ>#3C]4 ,D8(Q!$%]0Z@>0S2&Z'5T+OPZVE:=?I.R M*^Z"4UN5G-.<+//UX0JBC3X5;?=$39.@X4UUGUE(?]5J=/--2 MU_6U#8P4#>LWV -*Q8GE>P!AK)9CB8BH6HYP*>)$'4L-FA7/)=:,ENCWEY5R MV:F6V4#'TJ?KV)LM1)PJ:'7918 L*2K@S;;1.?+77L/$O^&'D"MQSN)6ZQ"1 MT4G7,Z2JNT7,*1D/&4[8 W0'#W(L>9AVW2R9;*BL9[I]H36?\XDIPV/IX) - M%N_LCY.'T<1A!(93G0^%B>9*:!5P14'5ME11C7P57UL!"D&\1CW0Z"F;&F(< MQCB\TSK;^9 HV0UQ88UTADV4,UPG-<76VJ(%D1@T3D1C),9(O-IH^:= -?:] M(M6KS!FN,E\-I$[1'CN#%005")53#VG\E&ZDT:R:?518ED"!AK7%WU-5 M0. MH82C:";.MUWAV:2/O?FYW_]>^'PU6[AC-L=LCME\%VR^^]1]7@6^K8SHZD1& M5/-U$E_8^HN_[S Z^AXG[XJ3^=_I!NAA/]2I.H\'U5]A&BN:(W4_ MM2%C]Z4P/*FJ2UDJ/44G82X[X]>$F65G=1"K!!?:?6=Y>5VI.O5ZW MN"!8O&W;CN_P_<4@&NTFGM_OV$:UE*FU5YQ67:#&N%#:+(9ZOH"V>$!?_-<_ MY .-'D['C"%\=3F-*T;PRZT=F12K)%O)]?R589*HM78,YK=?(!E<7DSBK^F*))XGU)M\)S"D\MT$^ M)$^QIS=;_/EL9H %4L[?:O8)4VYV+- M)%",!,P3T _I;_!2[A+B4!_?$V9)+Q=)H<$54*]D3[.C>JU\ M#5'(:#6SJCE[,N<2)4TJSGI&LB\$^(9- ? 'G#X<&!P#/ 9XU !^CG3#^Q"? M-55VTUQ/VYJQ*9>T5:9>GVZNP82;S4IZ,E J0TU=^FI22)G-/JU B%-!;(/& M-CR&>#0@?CZTCLK3&CVMEC&T,RXO:RJN5>A5ZPK0JI6GRPV7)SQ.[<[G#3>! M#[TF ]$*6\G!,0LG&.3[WI#0M05)#A@8;SN(MQU<6R)A]YU BNM0B'=[#:BL M/9N>&F*,@5UB3=>C/#2QZ5?T#5$IM%HK'B>#=A)QG2.N M,KFRI^#:+3166G5 M0U&9R??'QIQB^@4%@I:*[6P,VHC%[V_B;R6U)+?>E_-HP5Z.6(,DNW7Q&O#G M:R-INISF?+2R9A>"RCC-23XPFC!T/\5HWL,.@M.EMFZ9"=$RYK(K ^E;RJ9@ MNF>/Z.\R,QEO((ANW ^G481"SSR=I]E>5D-7E2Z%E=NLW*9F>$72;8RZANU5 M&VQ285*:4>7Z?7XVQZQ:=SQK\7@29@"2[*)HOS.:%@DFN=8Z M PE.E=""94DK5=?CU&@\D"Y"CLF%!DQ\42/MP/). M^]_#<\MSMU1/4T/4Z#?J3+Z!%XK=%H]3,!. 8P]4&HO+%+<_4B(O\,1"C#,0+#9GX?B@N\BFJ M-QIE-ZB<+./=F=-^64MTU$!IX-?NK9@.A/9!JH..Z++AD5!: D5@N:R MZ-3II?164B%6/)Z"43.1?*!3MU9?BR9JW\S$QZ#]"="^#,6;ON,ON!8]0"N4 MTNNI-)UO;WX,LE-KSFN=2:: RN5Z?9KSJ,I("2 +XFL\^8 1E^_0%T,VAFS$ M(/LZ:*\FYOD5ISDFYZ74%=;?K"UC?M:@_2.@K=1FKFDD6B[;:*>S:RFW'%2Y M +04W,'[@%.7ST['H(U!^WV@%9)*L*Q!^(V=/$ YXZ=1/]OUV81+BZZ!J\&V2>:GK"]N4./Y'4 MY3__!?_L'D'49<&&D)ING_,)'O!Y=^$F^J^+)+%$&8B:O2,03NYM]?] $HNB M7E A>,/@W__]G_TW?58("='2+?OW#O5[))C*$)>_\4 !*')B;,N"EA FX"E_ M"_I*\)V=CJ$?\:>$X.\GS0&)AB0?:?I?R/./\#T.Z&X(Z\0>=5_L2 B_M?LH M4!6[SZS0)/X.QR,L97CM%U<-6.A:\]\X]DA=B(.O3F80>_P2_L L9&I#O?)_ MW4;V&'>#GP% @<+0P[NN0HYL/_KU3Q,R+Z1PB<2KU=V"!7--<9] MC]9%$\N:1Z1RI9J28'BXE QM$?B& M+#'NGU8G?QV_1P% ?LXW5@4NS34]$Y47J$E+?4<8+B%QX'KLU8W>_0KQZYA> MC8@KU9W*3V/RCDW0LV5D+,.>JH(!HE^8-4K?WYT6*OY# M,^S:N[MNKX:%KW9:E8%*/I+$>R6[/=6Y=WTH)A,@ SN:['Y/0,?[=V@G5X ( M?S116_^P5N@CFGS'OPB_]Q&OZ]G?N' M-6;,#S'FCUV- M8L[$D(D9\S('DX[Y$D&^Q(")*&/2CS%?+LB7#V[%^:.3_!-4>"?^H[]Y$\X% M"4._ER(\3JGQ"63:YI'&EBX]E1P.__WOO\>W<9KE%17?VBWX13*&^U[Z\OA, M=(N%ZU37ZN9%:[L[(Q:L[Q.LP 6Y><$*]A#45%U^2;7/.0@_NE?W4S[##TW< MOD9"W57?K!?4"8OD=0](B2I>?+?LI>8)4J9)^K2TXEF<\C+9E$ QHV7KQ7Z$ MA".+OR7/AD&2(YNO-R2\_41<4""IJA/Y:?L!,^UH+;>;[*."E/(K-X]0ND8B=\T)EOPVPIJ5,215LAW;7-=$81^ M:W4Q'/J=3'*P*27+;$%9=[/FJ-\;$@H?S+:.<1@Q'(8^Y[WC\+O&7>-4P1\/ MT/D&E4=$O;G)<4)7N!P26_VQ@Z)98J15]%F>(_(9'KO6T;@ M1IX&MSNBYLI<[O='9AGS%;:<9.>:EF <2NN9R8HJ7TZUK).24FR:[)!=4'-! MK]4&=<50>.)D9YOZ'AM_=_#Z0^'W%L%UZ?&PQ-BT\YY2T=#$P, 6!2W<*FL[K-9AYM/4N)ZSK#K<'7JJ_QQ#ZX*^\GU!Z_*#6>FYF"ENVHNV MAJOJO$5-UO0B?SEPV76\V'++*,I1J#F>6]JXD4ZV>.)DE_A4<-U//ON" QNO MD1QQUCJZ+O2;4VL:]E(HRYF$P34:ZP79\!?=_NIRJ>K&LCLHE; M991*#8?'.D[UGN,,69RIOC(?^TWLI?B-R1H-8HHVZDU.E J#:2O!7 Q[N,@O M.:D[KK*=\C#;%%*)#KM1>/)D]SK&7IR=OCHG_$WT+:?";*/5E@/6*Y&C63;; M7/>8RUD^7Q22YBC;*[.J6Z%D@W32WK3%DR?[WW>>D?Z6J6J1IT*>XZL3_%/^^7#QB(A!F K$PZ>S_G3'9Y> M].453L-$\O+8]@3;1W#L ;X$^H#D9/!&M@N[V^S: MY0@0"J$,.U,!"#7\K2E;6FNDJAHJ;(WS5X!\+/N?IS^%'^3^\_<# -7 M28P%!ZR;V]82=JZ#5Q%URY.VGP,:&T 3BC*R C>96AZ $:",H 0Z'PG.W$+: MAJ(+1$Z<@N^!RZGB5A*G+Q&P@B"<@]NM@^8]NH_LV'(*>?[?Y3H&XH$M1:%A M??[E-,=U1]JM!?1IKI5I&4Q/\QN51LEHN]G6Y&5SWN0'^@PV!3^PKUUK.R%@ M]S"R4Y?=QB0K.-/=[("G/H-4:"#K@FWS7(5GEI-.MES@-.#Z!V)5"329LE6[8AVGW M+?#C%.I-^)]D"RNH^,!G3Y(?BFWZ/XB\VV4H@GNH+C(1Q,#8;94G4/1.P&+X M0AY0 X)A>6:H[X/2JRV+LKJ$9GP/3? 9?U(.PTD47Y2[B=J2.T8GG^;D!+V8 MRMK8YK35I^7N2'_+G9BUGVE8@ 3//M.;"VO% ==CMGZ&K7E PQXDX5%.YE)M5QYT MNR5-&)A.+MML5I<]Y8R<%-S <$C 0D >[AF01Z0!W+)]BQ(LVC6#"_3)'OH# MW0*;3(1NDKR>RR*TB\"]&T/O3]?#WZ$","T#$$0_:LH")0;_&G2A4T,?U)T" M)P\QP.V AP@55$5U 7)8B)F7-SRV* MM4[!%CE6^3F/9.):/<.H=8?<0EPTT$;%2:<[P!(D']_N>7PYAV3?_WA$&$D* MR F51Q =*]#1%?<[.\,K>W.H0W[>N'Q5-#)R$A-1UJFSG:+8J9!ENIML?-Y9 M/=X4>TO%%^VQ&=L6S#",<-KPI\:DX;G -92=P/ 4 ;*/"L^ZWWY[)_B'C [1[(!(@M)X+?M W4P6B)-N0X3CTW M&+>FNE_!@,Q@9W9!7WN:-Q!F1E\BOA9G>EINT\HEG"KGY>:,-5X,TLU>"T8G MY_$NHAIG7B5?WP\TNQMR56E4UA;;3V4929TV\PEHZ\_&RFL/-#W]-J+,NK4, MA!"A/IKS[DS5>1=&FTC)%!^?H\NGSU\$EV_EN0UK#&LUX)J6![/=>SENF)&$ MQ]*#7]Q=7'LSF6\, XICYVL^_W*2"H$T#BBRU2#8F"^:&L KVDARBUPEBY*& M](-Q9A+G11XE.FE4G>NI],@PB7E+ 4Y"^DRQPK<%FEDF]R%Q.5%:P&7YNFL/ MV 0IE5C!6PZ6V7F:7K9:1R#'0\WO@']T(LWLN(W/AOI*UCJ3 M)A#&,;!XM3C2/-,@]2M5#^\'FJUA<=,@AH,Q1_7;O%,R>T+# #8$?Z3C0//* M!>)K<>:JZI5;G*MN-*I<6CNH/E'55I"">'M"]2W$F=?(UO?#3%I?U;4%C9;9 M#M[A6K)@UA;"ZHRY?ATU7B4XUE&.79%GE9Z M=*NFNAF62F:8!"GVDZJ[.C:8<3.<.5FM/J^BJF_SY5%-3,T$YMA@QE8NW3.X MHK;5> %RL=3W"*8U/2-3S! M^A:%9@:,MSM%^6*EV*VKME0H5]A"VRDV%Q.K6FGMCX5\6CGB"AV3*"]3FF'W MAK.>6)OYA+(]./7R[OQZTQQDLV.TT9P0HE5E'33= A;TX)HB9P_2YB"51A.U M:B%9F,U8=,GPZ<.568V6"V,YM4#EE=^:3>:==4]JP?3OP5(S0]8#I075L'V.$4KY!6M M3!4DDBPH<.FAY)DYU46SLLE5J"JKD1-S)?#HRB9';#:YZ);5^7"9IP$%C@@*F=3KAIGL>VA!G0[5=%7T M$F:P]."U^K."N,GU2A4VT<95EDJ5IL7\"BX]>*VTPJ[JY82;1ZD^+2RKPP$[ MF8"E1V0%0\E!N=WL<5J'PQVG5JRETP,%+CVXZH3"RQE12T_13@[7BIR>$"L0 MID>D1:]Z;488-O.LH(I#AT_(:[Z]@DL/17!<38XS%.EI'93*2WFYO^:$8.G! M TR+XV2+2VWJ;"=7&CJ;I%;6@+1BJ<,'D!6):73)+J7A9<6NC->47(*,/2*O MY199SW*9I,WZ@L>);GL.$P/ ASQMX=^'ET43/9]IA01WKI MZ'A>--MEZMJP4N/ZG#RJ=DQ<[O%'K8"653J>Y[DE+>NQ9GZ6=-JS^5$K,&PV M5RA7\!4M2S)>MS;8+-K*4=U>RJPW6%H>S#1?*8Z[19OE\WGEF&ZWLLGU*CO' M.*XS7QKI;KNP*)JM8[J=\!QZ/O,;#-K1A[*1+;@U'6\=T^V+5**3'&,DCO;) M26_2*A>->IWYTB#?Y(<&^5*7<$_/>&XF_^"KEMBV&\W*%6,G_+JR&IO M)*_DV3!/%7C\,-WXX=&Z[PPE/I-#"'S.K>N,/K[T$(\2*?@F^H%#4N<:F[OU MCP,O6_!<:_=!Z&,'GWSS9-UD\I$D[W.(V]NB$8\YO&].I!_)F!.1X$2,B:AP M(OU(W^DXZ:AQ(L9$5#B1?D3O=&)TU#@18R(JG* ?T3B>."\ M=CSV>7>3"$Y,):]B9.J7!O'N#D_?RBC>B$H2?14#P[\B2<_'(V)1NJ@HH56I(M.FD?)6Y>DKN4*^I=&@6^]Q!]H$_ZBOI%ZQ'?44DW@!KJ_ M$^%''W4O@") M121B(H)&;DQ,+"*1$I&M-W?3(A+-!-]'_;2GG?/4Z3X;/+G[@.@R/-NT?W(6 M"9*[X7F&YV:F?T7BH/2V]3:ZWWH;^UQ+O_[(K+E]P14USV@X1G:2+J'*RTX+ MQ >.P.R?@\[;EK'W#$_'78B]XRX+8I"PM?FJAGI9:NU./9V:4,RO?[ 'BOA: M]Y2_'_8;'_T%D_F2+4S![??Y,ZY(5OR^DEEQ_ MV/0U?>ZT\V/FV]C61(WL,M=;M+E*?5FV2E:^(%& ;4D\_36^75'YY%.%I$L, M@7A_M]>W38'XV+9>)((@N["%^U0G$.)I2,1\Q'$+ATU,69S!VMG!-%,F*;A' M'8==L!\PXNUCGC&:SK5/+$939%R-+\*IU]F,F\RB44#Q@ILW>%FO^,L5@!,) MS-@#'J/I;"F2&$W1=P"_"*9\7Q1YJS)/:1VI.K)U?C,5)&B;*-BGZ@%]QRV, MT72NO6DQFB":B@N>GI&2@K/R++T8=JQ^PE=_S&E3TYII-S6ZIBWP8;LBIA.. M,F0 ,.A?_Y#T XF^'>?>?G'T4TFW%]VCMNW&;JY ^G.!9+22U9_4.&&W3/+L MFS'O5"ZB5PJ]"DOTHU'2.\T(G_5GUQ9,9R+;P'8U0TUZQ(3I76:1L+J9B990 M)TNQHJ#S*0G/L8- "4/?;B$9@^[&BLNQ,OYYN8AB1?DJE/&9PH+SJ56^O>@G M>DTNK76\ ;/(8&)VE("MG^@3U>H=%]ZMX\UDXY3"O12/+F53[H'C<8$CXJ[[ M^\V?CYJ97?=G579*INC9QY-1W7$FM6B(HP&ZR*PJ#8\S\@G@R0 BK(@\X<4*U,"Z*[(E777:1E64' M,YU$81Z,%=[K:H[\]3Q?X6_DWW'5Y,:K)B=KI;\B:/4OM GO1>)F[\99RW$; MDUT%ES5=U?7[(92R(9*89R !50;H#>YX1*<-J.&P11GL6#,(O:R*7&8N*RL^ MZ&1,'@[Z._M.USM%7_1J4U>-OF\I1UT"?I(^I).SR2"--H; GK5B'Z?*W 9QM:@RZR>$9G$NDT W $ F;J M,*]T:-VB62R,I@6+9B[MNZSW#[?7.X\FB07E\H+RP]WS8D&)GNOQXWWP8J&X M#NWQXVWN?D!0KJ9B$4V1N>.([LT:PTL $0! DN7!64\10-#MY%PNW!;@ ]55 M[$AHV##Q"9I/M JW;0'0].6W'=PI*-\H/<2@O.9"Q9E0 MJ5@I07!@HQQ_J:8L;[/.U!D%H)+\]0_U0,6YSV\^-A.#\HJK$V?"I&:B.5S2 MBB-4Z**VMJ#1R41= 4S"_7G80QJC8U!^:T$B!F4TRA=GPM:B3,Y] 3I6%CN ^MB+ MG_OU[X?-/WQD*6;S79RU)X&&&O+WH<3-WH>8-HQ$J,PS*2#C\P=G!.3KE'ZZ MGNGR:-FJ<1UTN<@E4)0K-L^:Q%MI$<07Q"+L4 M/]#)$WJQQHB\C0,)T41DW1YI?$NH%]C^,IMJIM?I;H*^#F-7LL71*H4K$INH M$YLN4^=GVDR!X**#[A?HW23_/Q-!MZ%X)JQ)PG/D;1@=9Y:NKAP0-S.[M\I MS/%[*Q)$TW'X25?^K9:HGW8U F/8F'"._*:WT?=EPF\NQA44I^A)<5C!3'H& M0FLL<.636-QIZ_KK--%$VIE<])\ C3CLY[74Q*UP5&.4%,UJA];Y%00-?2)H MXJK7D:J7_LR+.%UPHQ6ND[7/N?L7W$E1:^\/1Q07QRZHLM:OS-#.R%4[TEQE M.@+#8SBL;*525-S=YVY*6]<%Q"NL9KV/Q)3+9SH-TE=8P6U57(=H)KAD@,2@ MA32:.CS7$F/Q5JM:UX7%ZRMDO0]%MC2:+;V:.FI]3#4UR"-;1*B_8)J[Z$12P\+&(ER5-0=;]5 MK)P<'@Y";'DIF][9&TS?OG;Y\1)69%3)[0>Z.[2T0[ <44K M;E$:X"7-K*UXC CB7O+PN.K93?P](.Y*#A=% W'7'='^&7(=09RBHE3:<%E\ M+-,KO8*28P9"+IAV^@U]W.\!1CDZ? )Z[J[DE@518<&;'&X+T#=L8UW5NMZ49L[]Z=RD7T2HRQ7$1! M+N)RU_U$#>$HC,#R-IX,[[%]()-L(YVOMCD-]Z@B+19*I22A\!CYUJ[/N.05 ME[SN.* X%5?E9M.?2FVGI>%ZT7+:A2Q:@[NIR;!5#+2H%[XB%F?= \?CNLMM1E GJ]:,(J()O8GQJ \(.:)6TVECK4#5 M"B(H\@'%X@)G7&ZYC^CH9,STZZUY<=UO5#1C8[?K-E\AU58+8@;VM7Z@\%.F M2\A/P:4PM9AJ31\P6J)1UIA9IE.AM!:$"XP_ M'S#RE#T\5U,T^ZC\+(&V##<(_IZJ$F! ""4<13-QHOI6SQM]C!:7&2]YI\(0 MO4-&L3!$K805"\/]"<,UGVRYP'C::\W=YU7@Y95D\[_3Q;Y70;B*E',L")<7A*M(C,:"<.EWOY+LW8>(<34YJ.\9>>* M5Y5M1%!L63; =8%[9<)^KWK8+&>JSN.&.;>:P(KF0*9/[:G8?2F,'*KJ4I9* M3X%#F/W.^#5A9ME9'801P85VW]F!H+TO]-OKBJGB>N.N[!8G].8J0U>F;IM1 M(K%Q[/G]CNT7FZ)TJBOT)UUN4:)DM-&=]Q/=%J PW*5!/%#$Y4>JW2G.HY>; MO&*<'^SKN!30>Y6^E!2*JQ)7X1J-M8JF^HX=C7/V[P.]*Y;*K#EN5M@^.4QC M3<$9S%@% IW\]0^-HC',[R7K?,4P?[VWY%(H7[$CHY!9:076,',LU)DK8PA9ZCFXND$I&C&^]#EBDF^3$C*4M6S@VJLB.11#L3&&8:&.8' M@C@<$8 MFP"5VD*647)N M54MD:@M\T^>8++6"X"5A)(%^0\;@'L#[PQ74*P;O.7(![V-W3O4Q-=F>R2PN M+ONL,$,3#G\-N;Z:9/"I8D:CV02[EN<-C[4SRP"[L%\V]G!LGE4,WJNK>D<; MO.?#H401!9PA\@-4+1DB7>J6*D[U&HIKJZ9L$A5-7[-^N;G@T.%,X,H*Q"$< M*XL]I)*'\W2#>;A W_(K+TU$Q=]]7G@YT8!VJP.W% M^,K<;ZO+J>"\ ^XD&,&9>D MXY)T]*%]SI+T ;(-E5?G-1^OLEF!2W2'G*$KPVO('F765K/JV/VL5N@..SP] MD*GTC('(ALW_#MN2Q,B.B] 1CU'?!.FLN*ZD3&)(<0MJUFZV!ERG+UU#>,K. MUYU^L=PCM+[9651'BI[OA""%XY^.- ^*Z\[/;0,M,R%:QEQV92!I2]D43/?L M(>GMJZRX\AR-O>U G+?2S#R=\-BU(903:TPVRP37(3C5IM<2GF]<@P]"5YQE M1:AU9YR:S[?1H2%;G ZB"R)H0$A??B?B]!ULUB4?-P M;^77*\9\6+N&*E:_Q574((^560+EB6M5%V/TY3Q\+((:KHKG!2]0]0[/69?Z[$- MV<$L=]T=L/UR1:BO"F6N"ZN%9# >.OF T9??U7:G@+V;J7%1 .RE9A1\/V+K M%71)^P::9#U<7BFDC9>U>H#88 \Y2<7-)>)Q?=&[3"/ *]XVC#\21D<*TP_IU D9[VC6XZ/9M/!>LH3;A\I@P,(/U)FQCAO&V30ENMGC6Y-:' -<;5LJ:)U?1PH@6JT31E5&1 M@8 #\2_U0%&'L\-BO'TRV(WQ]@UX>QWI:EVRXO>%U)+K#YN^IL^==GY\5F_[ M(W"CZJ->M]F5RNQ"DWB5Q)/Y*7-!ZXAB#Z3^ -URIF- M(/K\MPO#X!=ORYGR%)?/=1%IGT00Y\;K.M"W.>BN>.)]F5,T$H!10 M!;_1QQ,X%'P3_O'4=PL$>W>)K?X3 >V%N2/_WOVP_U3P.,'VB0QAG0B4@[E[ MKG"/@N"YUNZ#0(V%G[S8Q["_L2%< S\)E3&&HO^";^?:NP?;WA +W_JT/!"5 M?$QB[]DN25T>N3Z4S@D0O1W9=K\GH+7X/;9E04NL )W^,[="1^)W."]@*;^Z MYM:*!#?>+17&CJ5[KOSJ1;\%O.'"#XC&O\'+//U[42\BYL1W<>)/1U-B3L28 MN#=._.F\1\R)&!/WQHD_':*(.?%!3GRPB/E'Y_5GXKWGK],?(4:T4U#TR\2+ M",(9V7Y%FO$)=%F%0!A;NO24H3K\][__'E^J /JM.RE>4>W/Z:J/D_"I\'@F MFL62=&II[]8DZ;FD%HO2147IL&IU:Z($JT5=6"UZ2;//V?>KV!<8S\G\\4-$ MD:H[A163N@=$0A4OOMOH4J-UVE6\Y)7E=(]K:%.^7TZ59OZ@]:(XE7!D\;?D MV3!D<63S=77J[2?B@F)&59W(3[6H2@KW2=;>Z*R;$K/HU=\U ++E2L-6D: 6G+RIZY[, M#50L>3G@.9Y99=+Y04\S>OE$H[?2>*G:XH-NF:+>17(OGOMUJ][WH M>\SOSZK(]&?=->4+:;10Z/2U\;+?=%;,Q13'/.4F,C2CN6QC;0JD5^FD5R.% M)T[VE:GO,=CW@*7(M<*[ B?X?3#5G"G*UER&1Q-5JED;C!)Y7+@5?5(9A.=7^3,9ANMC%=]/W:][%4:8O]AB_GVVAG/3+G[931 MJ]K*Y0Q3OS'5G9H_UK*)<1LK,6W-MQB>.-FC/=4PW7 V.1YV=(\YXU,H4_\W M$TM$G,R,CA_WYG"$)%&LY_H:6^ ,E4U/6;2CMA.KBYF=A)BM&DLOD4"%;G/2 M, =PI%7+MKI>^1LFBF5U1$$VZD^WKTE+>.A(7':\J<+_>]T.-[X=3Z+RDQ% MJ[#HJDJF:\I@=3E;7:IYZE"M:+CFYZQ^31_-E?%RQ2=/SEW&Z98X=QD!G_<= M1$UQRY#)+#G4\)1=38WP7J5J7BT_&"3-%70Y0K?;*[@J";Z&)ND]4R(Z49W/0 M1)WJX9X*J+AUPON9T*F,*-N>BHAEPI8(R)-3]( \J_-@M^W3ON.PW4(HJK#! M@N7 ;@N(@-BRX^DN8DV"*XE!SPP98AT 058 /):"[LF(:R&69R,@6EVY4V2N M"^8C\N)1!!M M_ P'MAT*=OO4G^8J2+)HA;HCH8-7_0V">MF&/QW\.;C\[V!W^\F'H7[F7;_P M8K_^:=H6DH>Z"&D'(N9 &6O,MTU8'.0OSA0\"2@@Z>_SO^F>.9AYCJM._'V# M /^#G/M(GAD*^T0%8:JH"CJBFJ&:#1I[A" ,>V*,9=U:(8YG@-N!IW$01]9E M$?8JL9^I8#U3 7Q?0.: 5,'UD+'@J$$G$W6"K&1D*DC/?5(ZWGRN^T@/B(QE M/B"#9NIT.291B]H[P0Z8O^CG:X I 74@B\O M6> WJ%F"/]DN5&:V/ <, >8464T%-]!M@NAZ@+7'^11H(L!E\(EJ2?!Q@F\# MMJPL3Y< IY:0^;(9\,S=];?9Z39PL5?L>]^ZA&= ]\ZVBCHPGM#7FK[20 0D MY"4.M[YYC@@G]^;$?H"-%/W&6=?__9\7IWB?DJ*PI8QE_]Z= -HCP?;T,!YX MDXJ<" \)"Q/PE+\%?27XSJY#%_V(/[7H^OUTB@@2#4D^TO2_D.'_ MZS:R1T\V!YK>A)C37QQWVGX$,!MH0R#V62MH]?/L]PG[_']+PE\2_1@UA9UC MJJ>:1+?!XGW-2Q$&G2^+E#)1H/O^*[S;T\IJVA7Y82*+H^JBB YR0XS-R"VP MDGR]LI5,YYDZVC-8W-PHE;[=&2_7#%A)O5XIK=-%K[K2^IS,IFJ9%:$DN"[< M)XZ^7EE$1TFFD/(]K>+T^DQMR=HI3]F>Y7BQLK1 5TNCY]-<8U0Q21-KRE-? MV>X]?[%RSD6 M3QVNS%682DI:"#C;X:>KC;?RLZU-BT\=KAP61UZR,9;6J(R3PT6"Y7FTT>+I MIY7'VFIUQWQ?&UM-S9YUT<2RYA&I7*FF)!@>+J4NH1(_;\T^:;,\88T M[!:&5OJ&)&F507OM,&]UZ-L+GX&W&#B+I6=+W@7WS.B6J/W:,5F6BD*UL782 M:#;32 A5NT[D]=8O1'9$80ZN[]J>'"5F'XD5X@YK%/%($/?9)23TF![1Y#N. M4]Q()V;,:\9@Z",5,R:"C &(H6/&1) QZB9]D4IEP7S..8T)QOL\;[?M/%Y89X3!T*SBFT.1256.%\:Q.W]]V'*Q:X0K-/$1%JY/:W)8CKHBLW_#"BST!FY4QK#H>PCGB.UO M))J_'E)^S[59#BXB'Z]9 B5A[?%W]_.RD^9U1_M)O )]-Z M;7DIF]Z-=;8Y8]+JK#GQB/5<2#[BYPBE+SVQ]\1M?E^L@(DT\$#"I>=*\^5O+ M0/WZIRZ[B I/P,LW%31&PA&.O=X(>[U \$N!W%EG?-YJJ(UJ.;FR!H^35_@E2F-E:6$11W* -9IH9 MI]#B9. J8<>@-/9 I.F+N[;W;)2^)X%YC9#Y.:?U3Y!AV*Q3GF_&EH;7YKV: MP7M^=Z2$/8'(] .!)2_EN48M"#Q%3EC!-L%3.?# +>),!?OL3NTU4N7<.U@C MF>7]#&E^:.M&G-J\G=1F=,N5L;Z*=/XNHL7=GQ$.ZG3AR B.*L9109RJ^FBJ M*JMOAE:?BN=6^*67M>R&7&06Z:%GCUC +1(""TTSEW%N:L?P\Z'$UC? MC!TTR?1*[5$SCQHR)BG*D%BNN17 #O7K'_0Q>0)VKCR)]0$/-Z?"C@S2K4>" MD7![(Q84QI[PQU7.%BY'E(Y7+PUPJM^<<8)-N9M!JY%M%&&CR] 7OG#Y-FIX MNQ+W.&*(C+35CXK'_#8$-^L-Y91R;E];#'I$D5VS&)EB 1#GYF*MS+&6QFC MC;&H>-9O8\S(U'*E/+>8L%0[U1SVBG7#-J&9^YAOO9L'\WIJ3&1:_>Y=\0EE MGVK\>ZE),S_;SOBIOW>]4A5ZE9C=!^NI%^O7+=TR6^TN@--H%D,US)5?IUI'>OKON:*:L[7G0&*LYE-.U\< MTX6VPA.'*_OF*E%K=RL-MC'&65T:2F7#A"L/WET;EC72S'91+;%RB/%H616: M8FL[,O[%2D-L6$N'DQJ GKU\KB/V.EE%.=:MG1T W3V<=E*C"C<3S@FKWX'RBG.J(NN5X0)$>M@WWJ!3F#"2SR\J-MLAC%VHR?F!27]GG_2DU'[?.=)A.%NE:MD__/&VP0=]/^P_RU],E M_@:V<0*M'#*!UPAG70E...H%B*P,?A+<[8R7L8S8LBC#>6F(-PY.0F)XCPZM#(L.Q8<'$G(,'>@C&]KRZL#,'_LH$\,^U M@J\!4@3/7@++@'/H!N-UW!]@NAT\+9RM8*Q,1;1G<,/CS=P]/^MP0JR?HP+$28UUU MIC(< K='J:D*Z&"+4Q\!?KHXA0RR;$ U.,L*$E4UYQY@H@$;S" M.WE%^B"$@DHQF3O\2X(:0 RFLCG .H>ZWX43X0,1AL"193X0/^*QW75FV:X$/(H1D\<; I( 7!+?U0_/K@0=P M9=O8#1<-[+NS;^!5.<9CC,<7>"2.X%&13>"40+GRS#T1A'AP_3E\;_ G6Y[ M29M ,$W@\$)$A5=*_\>!WHYJ "$.)F&=VTE][36'SPS6@B>RP$^2#$$03-7U M@A&Y^QC>0V[P+#N7U)J'PRRW=PZ^ K2*!*(9RPOF3HJ",T5@K_VG/T)Z[/3* M\W7? =CQB81!8@?*9]"\/K*N+)Q6+-BV#\DC&) HSD[19"T#7,%_YC^D%:"/ M*(;+PB@ND*&_3-G]>^]/<\&'GP>?@$!?>A$VA+$6/! #IQ++3ZL183ZWK74@ M8O !@"3LN;M_"\ M=22&R/SX3+2O;%>]V!"T$)\1'GNRW5=M4,CZ?5/'FR)PGFF+ MDTB=9_JZ0CFK:HU%A([*Y'>MH8%&SK@0=:SS[2[=Z,8T2:_WVIW\EN0^NUQ*21%(0?[DUW M%D$XJ*TB2,&O5.5Q>"C9Y5MM=KC%>P#09^H#6\U9WDW7>H_L 7@^V=%_%A@>B7T MB>4GHEFN*Z%/+#^Q_,3R(J2BQ/;V0H8GF*Y2F6IP@5]\ZX>X+8[I[(4 L=M:1U%^UO ME 11Y-)>7F$^72_]@EUBQ#]24MPLL$F.-BL*6V%+ MULBS3,&281MXZM<_!/J0)M.7W6 1(_AN/8SK*L^?!VYDFL3JY) O<,)D0E=K MQ91LME< ;O2)<'O1L#'BQ?97PUD.?@\.WN\U%!!U6; A8J:[7FT[Z8?/=HF. M F^>M\ Y;VUGV[QVH]TBP;=F !_A6Y$38 MF4&8@*?\+>@KP7=V*H1^Q,GG3K.[5R!"H-+TOY#G'^%['- ==LW;H^Z+KGCA MMU[VQ=M^]H?V$%L6PA:B./9(78B#>TH)_D?L\4OX [.0J0WUQO]U&]ECW U^ M?K=#;=#?$;:CA(H@G)>QY;VPS_^W)/PET8]1,QRLPE-X.BU+5)I/B9+,DRE2 MY 6,1/GQ!$N.R32=DO"#H2TZL:PTO7>"^#[YH >4/WY MACDV6&=M$MU!B\ 66H?FLWF:LY@6=G2P3I6KUVS/J=JHD&6R#I-=Z:D.&-X3BUVANL\_SN M95'H4':QCE8TM)IMD)R8*:R.\=TW.W0JRW%YK6%J,YJM9]K3S.H8Y=EE8Z0; M@U(;S4JBE\_02A7CCE+>+A*5EE[/NIS1S1=F1+G4KU(*3QZN5-%:'BN9Q0FW MP.V!;=2]T49L':,G9\Z+W8HX3[ RU:JP*]'','=UC)XLH4L9>D 1^B1B4JN16L]O@[()+N"B+>8A+P! M3,*>EKZ:^O7^Z*)M,]CCWSJEB^SI;6<#*8KN2+)(-23&7SX(_O2CM%9B[1II>^ MDG>_D(]WA4=_+]A@\UZ%X7K/@E4P;76"K-3+NH3 @L!M/U@"E6I??,_0NK4E4J M6!5\S?$:7C:8TM3BTRU0Y.N@*[)J8CV-Q@[F)5FA5EFUT_W%+UWL]G% M[RPRQ^3XZ21D-,D12TSE%&H MQMP^FW\\AH[9'+,Y9G/,YGM(_WQ3A]GK<-&_<;?9[3=]NT@%X2Z%Z(X[!\9" M% M1U*M9%V@@6QO7&'J]LO)LOXRN%^Q8*+2^L#'@/!TMZVG-2>2EVI+SVDIG M@I>&2E_9-I#%\(=T^I(3>F/8QK"-=!'Z/!BCG7HVH_H9DFLX;;],2'+2;S%A MU]B3,'9E76._O;M<().PJ]E'>KUVGQO*(<&Y+P=13=="Y+?WH((%HNY!U"$3 MW1+9X,J[[P"Y6@'I=1!P&<<;.T":7570=1^Q)A-'=H,F=G,+]D.#/>LF MNB>Z(9F"+G0BT"*":B(3S_5LV/=.L.7$6'!D"3R",9=-)^P])Z_AS[+SB,!W M>.]YP040TW+!'QU .?"D$FQX-Y4E17[1,0^@;K_!'M Z@#GPBU, V[U+._ 5 M$6_;<"IZ%<6"_O6.=](@'9"4C4T$Z?-;P@CL!.H5M)RJ0@'@. MK\WX3+Y-#[N:,*@QBEA26HWQZJN=ITOU_ E*1'*4]=XVEM(3O3O!LS4F@-J& M979<2]2*LBX]:0XTU!QUP;9Y,NDGAO/F&VM&97__@-/:0HN@C MBN-T4B(Y&=S1=@$7Q.!10I%SD)7J3A$!"54WE!E@WP0@,G-;%8..N?_O?!S+ MJ4N@1 .%O^59N\I:"ZDY&+'JVF+3Z,!#*;'U59[A7^'8EE/!\T%6-64[^.4H MRRS5F'&^FJEIA?ZZ:@^9!IU(*;_^(;!'(ODEACWN:]HHZ]7]KIN3'>IW:ND% M_%4'_ J4KP'LK(1X+C Q&ZA?A>#KH;XS+$G6D5 1@E^AHEIX%A1,\*@:4*M/ M=[(\^Y4H"Z'2'0NZ8(I0I\I@O01U]E^!F;0/,#MP(@30^6"!*@B0HD M,%2T.Z4/E\$W@FD]>/8W4.K/?5"!S7'E0*D_(GF@6N%27Q: <9-->).M?D:> M53/TFX(;@A^P0%/#)U),("+@(9ZL#?(7_!@H O_O4Y_4FGQ(&WUD\5__[\R. M9,X+_3@>Y[>N9-HK: MTU,9EO!SE5RVSOJE9J8R;Q1Z)1;H*:"F#K34WQ_B)/A$!]]ZB!9+L7V6XA=@ M:898*\M:9=7A*@-F7:O7![SXO2R=;^KB.KUFJIR!;]RET&W.\PQ@*?YX.)CB M4RP-\!XIKJ+[7,4NP%4_X:NI69?2T HV%/NC3-DQ,>8[N>JVZ 4CH#C%>FO# MM--SD2=8X ,2C^2Y@ I,)7#JXT MSG/9A@P"!FWLOPAT@I[@"P\ZP38(TX*>X(](1?:!F%IC\#++H/UUZ!=LPS_Y M* 2CBPFU'4BC(Y_%X/_XRL)OSA>-GH+C?+1ICQ+>"*OKTY[XUT*+54'9NT/ M :ACNWQ; *(<:"OX6PUH)\,SMAIII[]J89][J-^"='/7G\LO%-SK!;GMR[?! MNV^OE2+YC%DS4!H5G%)C7>-FY$IXH=W0R^;+7C_CT9"J*; LU4Y)6:UC%ZC\ M>-[ .WGHJAS+G)W.R'_!1$W$.2^L+\3Y[K)O^49K,64KG#+@NCV!H>G(<=XD ML].IB@H2*V=MWL"Y]GI07 '.'SO;\P'.;V,\>6M3I)=1H&B#9Y.#Z1!0:0@F M")IT9*M:D5 7!1ID?ZTI[=:_4#*0H'M+EC"% @R_(SP>&W8Q!Y8X2,D%,=X4 MRL)3R+?WB,8S[9[,X=L&T$3"6)^TPKZ7EJ4RVMW=V*PY2PVSO9G1DH#GF]@QQ("?0SG'& MX1PT^9@B[[.9;EAA>T23[^3=?K3?-)6*&1-!QF#X8_)..X%_#V<^N%_TCRKL M)ZCP3CCVG=VIWU812GQTD?*SIYUGVQVSA'/V6GU\DX]M]8S^'MQ_= M4?0I"/[Z)[,M3ST7T'<%&NSG(/%-@F7!-<:V"NY3E/6E#-\=WE,P MG<3VQM^COG;(C%0?N:-H/"WM=\DM6=@E=E(V-]-49IXK2IR11BM.5N &,_7S ML\&?;K67D>BK[O0@\G1>AI[.RT#U*;$17.O(/K".5TOY5J6>8PM\WE@U]);< M3L-AN?BO?\@'*H6]F=+XHDK\&?U'G2Z#I6T6!9G8EH$(XL)30P?RK&W_+NQT MW+*NBQ7;R?7D,^JY1)'7TJ7R(L/AK.>EAM--JIUDOEW/O:'FFAYX(YC7/*;J MFA,IDR*TI58PDQFFOUE(R=PJG.%-/!#$83GZ3*HN,M[?![1?=@JN(,.4+WAP M98K,;6NBNHAE!]N$D-@#C*I6C#W 6%&>H"@+@FI6 9)+X?8!J62R@FV"9<$VX59BR>AYDP^H*FW*YZW[B2RDXDLNK"$95C+;>D+ M[I:W;!F\$R*OPW)9[#%&0S?^7-[JCXKRF-2 MV^&\9.9#E+-;D!]NF'O6H%QU8[.]C37C!%*HYP94H6.5%#X)->B1HU9_WYKG M>9:\(WX#7N>7R7/N4/+,_=JCYIA] M)"4H.%-D+OB!]WOKKE@TE%O$O+)SD.GB$>N]:[N.[+IZ&**^%Y&.5XO1JKB9 MI3@CU1*&=#JQG*T9G@[\-_0A1>/'HM*O:[[HJ[EW*Q^Q!Q=[<+$'%^EJ1;F5 MRD\6T[2K=5IL3,>2:,M0*%;N00J"V> P-G47JECS%LU0JB-A-O/"A M@XCVH8R8'_GZ+/<%%&"&6NBH):V[:'^C)(@BE_;RRO=O<_EH^4+84+U>B]S8 M7(7M$Q+-@-B#ZDR6/; =]L@/GO%X>3(W20]^4QLR\KRA69W 4\2'%RS3RWYJ5UW&YK0%_5B#KRZ5(0S4M'7*Z>,H@]ZU7P+ M]3$Y)30&N8PHKGCR:>6%>P)4+<%TZI8K.UU;D&3&E!JPCQ[0-;(:J"('-K'0 M+:BI#@_]K_A<M6.A27%401@RZ3SC(,^V>U.F%F=@1I[+DZ7)CLGN( M@*,!;P%'\V&?0E-Y?K)#5BZ;':U=Z]1MM*_8Z=2PV,M8"2;NWW!5_1M2R<=4 MW"8@BFT"CJ[Y"V[Q&N4'E'6+@^K=R/'JO[G$*/VK:>4UX_3$X+N^2TO9>JAW3,/8/TP M8 RVW1K;>73"]0VYD['RF\6DJ@# D PQ$.2>GL"WVW'6+#1JN/\1IJV!?TX MZ_^S]V6]R2O9HN]'.O_!VGU:ZI8@;6PP\/75EAC,/(.97BQC%\9X @\8^/6W MRC:$!"E"UYIZ^UD=D?*(\L 8XI<)^B=Z#5G2L12R7/A M\N^[-D MJ!NTY;E;3_DKXY]A@TXXM/9;U4%10GP8=/F9^&D!ZV4)E"ST-Z,YKFMR?]LD MM921:E8J.:\K6#(52Z3?:CX1>=*W\Z1#S5Z_UM5^E9^ XE@K*;^9,IP]'Z]G M"VU<$AW(3\C13L32^*6.]J&LXR?D\WY#:8K+VFB3[R'-0VTWJD .",B[<^EM M#9Y8@6L>/S].(N14=[RA/G_7],QKCX+^@(*Y9%+S@2$8'P G%0C/V>')[.T! M.P1D*I5@UGICPDSV^G@][_[U-QXP3OUCH[?-D^K'8X: 6P+YOOFUM\7#18+I MAG@HE#A<39'#&E-HS@J942')T;R+AY.JE2@U\^::I( M7%J5W0$&NKCFQ,<"DD>L'[$=)T[0O9E0J4VJMTCBA9E8;8OL'DF]P&W)!A'*Y'M[@OSD9]]\,]W,8$_0#9(:+3-L7,RF(Y,&:?I_&17W; M S-M__=_GJ04'VUC5 >D&W\.!O )"/Q49L*UA440]S*6N3G:CM MSSP0R4/T[,_1B"8]GS&3^2?V^",ZQQG<48G1"72?E!!YWWI:1.1_]D;:M(]" M2U_](1(/U(TP^,Q"(D_PQ;V!+&QA(([_QZ!=",RK=K.%7QM6/W#Y 3(!&H'] MI(,?=XK_ERC\*="#H'DLVMPVC4ZS/MBI^'K=ZN^:1())L=V@,M1Y<9.F9L*F MP_2WEMU1&0&W\KF@XM)M/270%-TNT[LX.W5&@V:_PXO>G?.S@E49Q OUZH9B MVN7*Q%S*,FG9N9.2T>-*;;CC5GE@]_ 1NYVH6G]6580N]!;.5G:E49F;-HIQ M)BXD%\JB.JZTRCF6.E])\SJ>5=5&7:Y/"WNMQ.1F+)ECT^F8;6V9;:*[Z:+Z][.E5+>^7*Q*^QJS MSC.];=-.?5\]?*%)5(UWJ/,KYQ> M?NXIGX;'"^X.43.807!]ZSI76[*=;J+"V,J2*%LKDUW.NE%]ZUW5MT;SR<-: M%!;-)P\I8J+YY.$JU[N/UE_?4QL2S2C^2F7YRH=4/ MX3'HN7FRQW..(DZ+."V,J 7YO0DKTF2V81 M*/_[6E/9Q _HP_UU@T5O(>R>D-RWC&C)OL&0'ZP#/2?#VR8*)=B6,979+M.;C;6,_FPL\Z\Y&_0U-KFAU6>IV\GJ2&ADY+XF>B)'D58;9 M!4FL;Q%/%X\(.*<+'X38"KY-%YX%PL%V!7B4)^"'PG^K&1$>Z12)HG>/.'X[ M=>1=DNGHR@=(IJ"^U#:1VJR+!9Z6.AMFQ^GJ-D4[7DIP(H;CZ5L)HK"83I^0 M32,#20]]/C?1?9TA0D'$B9RDF=;32[O(C@JAI J7'74=6_ZKI[-?671=9E2Y M7->&3!<@S>3!8-(M[:<"(^VSN-\1:KHWNRC4!>?16-Z/C9=\N][FEI$C:.O4 M^8J^F>!QB9O:(K6!-B\[6\(+9DO?,E&(K?.XP,#9&)@/]I7M-P G_Q.U(S-Q9 MOZY?(W-N'K9IE]+XTER4NKZ@UZ3Q&WD4-@T_>>"-E>?9ATV M\(1$0MU9#Z*0.FDA;]<99YQ2W5K9!E.NSZM+M5\=,LD5F?ES:U_HM>9=EE_E^2^>733&H6![O6;+8-R<. ^S29MH#4[W7<()F M-NNUZ7RD,OT57J[MQ6127/7W;2>HK#Z;QUM.6S*6>%\2\]PVL^@6IH$SFSO3 M;9:NI6I-G!"JRU7?+$]))Q1;HFWG]GL6A+/ MQS.?5SIG<^9F3L?'NKPFU7VE2I! 8FXUR?=,W#TEL<^,6::>C5EV3WXR7=F\ M]7CE8'@'EY?CS7BG9H[!".\G'$M-S_)C+N%$Y>5W55Z>3CXDB-]9*QNVLF7B M@?BE]>1APT0B\9")F"(4J(!,D8TP$09,_-X9R#?"Q'O;S+^EJ;_DV)<45;KK MOWK*\>NZ\^:-%#X3<;I=YX2W]-A7U9)^)I1TLZ'&KRN6+Z&8RQ/+?L44X_?% MMJ\^PO@>!.P/$:=OYI%_6/E\0T6_)V7#7]'_&2E\U1'%-Y:\-R&N:";Q)T3U M5082>^+Y6Z\9+SUO"U@8]&IDU'B4YU;(%,8X 04NO>R0DV;60Q1\/@A]\@.CU<-)<@, MN1->"+AJU9:.I/::MB3'Y>D[*E'"/);X M1U:A7)=AUMLJL)J3)B^#=*[M).F>5)QVO4'%))Z]_I3B<+I1?_WM7:8:IY>I M]^4OA5*MAC@#\Q?IV$,BDTOC.=,$UBNCR]MCD#1SX[)"$W9^6]53N52-.0P7 M3L2(](VU:/A$P^^;)OR3]>>[F$%+S';#MDAM\#@U6"[2>T&CLX>!P60L39VW ML_@]GNQ71AN_'1PA4:AWFC#\VY3L27[H!+[<<O-8").K=(&_#DB:\.7PV-=/M$7<"-Y_]5M0W$FF[L MBI+)*[II&P%E&#F*);/]5G."ESN3>+,[VA2&TJW*,%ZI?3F;#_^90ICTLT*8 M(R2.MG%HR.>OOW/GQ;6N&GO>)@TI0/\8B-?@3Q+DHQVD&W5E2"9D)\C%N$O&/PRW+3D/DDS)=-RYR(OH%!U. .X6SGPZXHS+-.? M^ T)''@:UA7)/H^COR'E#=\'?T+,O0.<@78K@+,CD=[!#M.6X8<<5.NJI$&Q M\[RU$P],N"\#TU'2+K# \0 2Q-@""K<9 )HK@ ST)BAK>-UTNRH8 "ZT'^/U ME^#DQXN>8VE>(D]/A#F=;Z?7V>IAV@HH-^\XNW]U3<5PF!F1)S.WP MJ4:*0<6&)-URUOUAIDFKPT;6F2B;EF@&SO"--ZMT61VO59E:4E0RU2?+:3P7 M5&R8'Q7F9HE21S*P299O*%UVP@86&]9);BM."]4$H^:(0K$T71 \%3CM=]?. MD VP*35P=:34]E9BU!BQ8M"TW_8XWF?[ L/31&%?X%*+;8ZBNT'3?E-@.ES4 MA9%%@XR^Z_17=6N?"YSV:Y#%)=[<9)OXCJIWRI; F"O<"9SVVZZLLWAVL:WI3[#I9,)=95+9*9Y,7"&K[IAV>U:&R69>"&; MGNP->L84HD9:N*>:MJW:AP]$:%H^1#BHSJ@<)0F44\ MD+]T0G38,)' 'S)1N6(H4 &9(BKA#04F(J;X[LK1MU1U& J;O-^^HW+T=>7Y M2RM'W^+9>ZA9NEGEZ.N:Y1=5CGX_F82D=/0>).P/D:<_JG34XY\0U_N%K73T MQJ+WCDM'PT]+WU@[ZLGGN\B%*^BF=6UQ?!<'OY%Q$J["M8_8;E>EAOM(/(^H MX7)J"+NM>A#X[QH3I:LK&VI>#!RND=Q;+5.?6RBGX=[,U7 5&MS<:7LSTSF1 MN(.J ?]FDWWQ9C._&^Q6(+>5S./: ]T>US2!.@,&NUBN1]1 (/.RU-;'.;*Q MZ?'RI^:/!V^I;.AF4!%PI1XWJU)].69&FR*A=@Y8\S E[AM@4_ MYQ4_59L?J;5Z0JR^@*G-M$)\IC5+.#?O M=E)]2]OG$E\H8&:V;L3Q RDTI4E@5Z-#:6=H+2/=]YX-R--J?@F7S!76;P][JKMWJ1K]08B M9"2HJ3/$^:#0W^JN'P&)H8GIG*( 7,D:X'QM@E/!XS(=8]<]SM4]JBJGSW^ MH7J@[1$D[<*!LGU1):N+HD5WEPI>KV_(?64"MTU\HSL&5W.FUB@V=]U-781_7&0"'M2Y!,XB<"R?4[ NA[:0L-V12&G_2T;!/XJ9S_,;'?W*O\B/E-+XT5-:';J M=)MBF+/6B>MU7;Z[HG@)4!0TE*% M'LVJ@+$[5!>QG)MN1*2B N*O+2;Z=B\E'#9"R!R6GVHV?&')T0V%6+]IK%L+ MQ2HS]IB>*37>WK*Z@V:)0+LAV(&)X@H_D4U_C&WQA15,-^1+HILV$IXO*&Z?(G2F\@?;4NSS>><*;46X]T$;&F%[3 @RH3[S]H$25.A]76. =#F(7:/9@?5TZLOJ$P,NK3 MVJ05YY)T?ZM:O=2PH8,1='+<3F=D.I9.1ZW.OC+^$&;."Z4Y<>4<[1NR&F/T M#+I0L3D<<*E&L=MN-1=;E]62;@H1E;I9Q53X.*H%KCZ4X5?J[B?B@H3B0M!M M-"(W#/+B%VKJ%^4!I/< D5 WY(4MZX42O1-5URR) M-G>+(;@O#E$CDB<7.>^0'ZAX\/D)W7__]W^>3/L]^BAQ7E=TX\]!8)Z P)\R M3+BR4P1Q;Y@P-X>[_,,I#KAI:_^$(D'ZD88?';O1I[@BWL# M6=C"0"+Z'X-V(0B[[L]00$!1K#PQHOR/_OI[@&0@IL^Q I+XIXD_W"44_A3H M0=#D#H*[T013-L?P>5FRLTVEF^-E>=)EW3H)]VW'E8DIM9SF6O4L355*@&2J M7*DL0A&/)/S3E M%E)KHRFRQ/DSYY6LDW,H2Y?+O%YOU,W,PJKG6)+%GZ],FU9MN9+*"88KFRK9 MU?+FK-IED^//5JX&G?6(C><7=+F'#_?) ME53:;AR6.E\IYWH=4=AM>SB1[%>GNES5)TR739^O[&ZVEEB>:"E9XJC]/6O9PM76B]S"BAR3L\WJ":_<9JW\^DW/S7LZ6[/==<%>KU.D,MN8U%E$=5 M=>I>K9\M)=EVA7+&\SG>U_%$8LWVE87415[S8>D3W?C$I"G:ANNE0_S[1LU M/[']^^ILGU2-;@*OCU1!D.OCWM;,/3=47G9=]JF;&K655@2[OF&E<+FU2=)8?%,K*9 +1O5O"9EF&#J\F3,V_ILPYJ M2[> 9WYGO?_%LYQ= L!70GI2(C7UQS91;N2J?C(O6TG%NA(4KF"F?,$Q>%G4_>:)K3]PD?\VYW6,9AXWY+TQX +E2 MY.I$5YT\7X?/G"NZ(:) ^'TIDW@8\-]\6$I-S-UQ;; C*K,/%F 42$BB]DBE?C9Q$F(J:X5U3\C$NFQZ]_W=#X MF]]$/9L)_S04],FKJ?-_[Z9R]AE8WHZPOQ]&-4ZS.6/G 89,Q.[E'N82BGEO MDY[;-&;Z?C(A'](?N(DYIXP?>6G_(^7IZ['U#\+F3'I\#;"^/R/Y"\0PBB'= MB^B]"7%%M/0968WBD;\GFQJUE3.OGFAU%P?_%26C'['=KMU(,Z*&'T4-8;=5 M/]1;TZ\5PCC1 %XULML6RPOHZ)JYD%91V6JX7;72:.=P>C+=$SY>[/T!INKJU$9(%XM#?*?O\$*S80[+G,.ZA:)$*A%+ MXM'$W6-?"HA6"^X)LP"_T'1%%W<_SN\)AY(/E]'[X_5^$6R HJ^ ,#@2=@_M M_=CH:CKJVU(_K>%2W4EGM!4[KW-?*J::/=W:Z;-!E=YMR.$ZG1K.^)K#>B6D MJ52,RD:]L7^)"_KS+(2WV$\62QR9G:83>"U-CGE2&PI>:WB-;*Z627&/# M4$.3[+3,[(I9(/9#9:4$%4LF?FFKJH'!"<"%;^3-S916D\E!B_]X??<'^(@?F8LV74XF M&"YM-':C1G8IJR+K%K)"/B*#QE'_3A>^I6MQ7E=7P *00#9 XZ(.U5'3IU^A M_R'I^Y2?.UY1^1)LEYJ,E'PGD<2I]*35:UO9=GSVI1)L6YQM#"--6+BM#>FE ML& V=3O'IMTF%60LDXU:1$4MHGZH0?$*8VZDM3344GQ1'M7PZFXY2N!)\4L9 MLR1H]*;72P&Y;^\F1EI)IJHR8DS4(X.(D;?K)!DV_OM)V:AA-!LUO28&(1#(=(R.'_0?P0BCUZY4[17WDHERP M3$TL9%JX6DO4FE)GUK.WB/C1I(9L-I;XH8.@+J6 DZZ6&'?2OO+'.=?ALM2_ M.1?T62JQ&?;3EU MK*KR:)&Q[55G0%0R(FI BBJ+DIE8A@J*[42^ZT]DT!]G1X0GN_ARCER7E!RU M(LP<+8F[.."'@,-9MR4P*DM*9&+95%!"P"\((40)QU&@X$Y,@6],.+YF45IRN%7^G:4[_G0K(11IR9<+ MM58K/\-7@W1*KC.31FZ73K4@IG?[C243Z5@JB@W\ O8)I1+_NG3H MR_DEH>*%26X[)_'^=K@>0VS69B"'^ 4U":&RL53R9]8A7^SD7W\>_;>?.R3J M]RV_(&3#N".5?"IB@J=S,]9JRA7-*HX7M&*N5J^N&\V2B(9RHDMY(AO+X#=6 MO]_.7&'VM$/&4;]<2P>SD%$D4VDKD>GBE&"T\():KO(;R3D;>[6"7QW"Q7!O^GP.WX[-=D_JQ+S=SCB%TWAWC+CU MQN8E\[ 7R$%0-6H8;QL&T/@=9AF<9GI9LP^G]!&:<;Q!).!(U@+CL+G+Y9@B MS8&+>1]&$"\0!#K\A]=5"!\HUGU"L$TPMQ7XA0TP'[!3(QT#VQ703( !'_V M,TX#(8E6\CX!S@!V -HE)_F_[S=$4M>7HI0G15N<8;"MO3/%%\/TF*;D7;NG M=3?3>2WGBM"'EUV:BS00_$1Q><+')SR'HN@.PM,*$I\NF']^*3)."9GVZ+@% M=S5P@+(!3;C%A1F(+#$I#EOC:(F"(QD M+,+, 3,3J#T&CAZ(D!)KYD%5SO9Q==5()$#)3J6Z""'40U#/WH\C)!4AY"E" M%@8 @2BI9@5\)>7&2]HVAZLAO>[0A6$7H@0Z/E=%"16AY E*2M"X"\0(-5^N M$]*R5:';>3,II8HY)S]RH(I)/[R<)?,1C*0CC#S%"%P;B)&R).IR;P#&]&X] MZTOF9M;OJDCIXP\OMSSZ"$8RKHD<(<5'2FYN >-5S"1';&HY(9L*72]WDD*3 MI#),"RD4\EK2"QIB!N#01AXP^F 9SVW+?K3'GQK8T((V[=D2+G3]$<7F+=LK MVD.^R\$_ 5O?GS&@=^95?D,+W$;>AZ8?GR\@I\*K#8?/E=W(LR>+/ M5TX8.1F731;0NXDE]JO:4)9)-'7E;"54 [;6'0YD%N8MN$/4WBZ M_G4V9"4-5R&F<'&\UL2=Z;7R> MKARIQ>6P.ISE:6Z8W)>3DTZ\ O>9/7]FNSL%LU5!I9B^TT[T&VNAEYMVX@F\/I(%02Y/NYMS=QS95#6=<&! M8K8HF;RB0[H# _C\O*+SLA^WG+%4&6_L2(+7Y#;5[E0:!7R=J$"=!: R6,%G M688-KA95/KM:>26V]_Y;FI9N 2]$G\"/[4X(/$'^%SM XGAG$1J9_=??A[TA MQ78,/3H+H'E1.:C7) %XU("M.$EP;1GXV-,0I#['.&QFFY(&3!1@X@$03"_& M\1BZA(O@DS2X30D%F#$-0 UZU'-:@-H[:D0O8/@8+W$CU% -JRA0N0?F20#1 MU<+BX4QP1SS GD]41Z98XL^I_KDQ)_3Y!1!L!;3G!VB?[I_U\1#Y'(K$_PY_'"Z991>O_"83>6V<1<_VN%N M(:Z N?6'LRW]\(%[9>1]XM].>6M.KJO\->B3PV48_D]T<,LX;,Q_8<(#R)5R M @5I$_!\%!*<0]H^@.WP>QS=UOV900-5CCL03O]=Z1['_?':"&W LV?ZV'!? M?%C*S4Q=L2WP[*"WJ85XP%.OW(]XWWL'I?P'GNWX[TT3%B/$?!-BWJP9BS#S M?2SS:F9BA)B(97XF9L)>"7 )%()=%O=IF8,OY*[_(UGP3/Q/*1S(/#5O>6@H M N-UV'VNL^D-NIS>OH[Z&91>2K+Z))B>.U[WDC+_ 1IZ;Q/45QNBWC'AD _I M<\JY!#CGM')GY5E7$,H_1 0_#S%IM/D:V'U_%W'#R4 M WU2/-]9.J_/)K,BZ/38H/!-+4T'CQG]* MZ4_$*^^T9+Z_UB>!,D]DMLNURO1H4TAWLMOL()[)W80Y^GAQ8:X3)<9F-N,I M5\M9TQ[*,D&#B*A4+'&[OEK?PP/OZ*.5>WK_W+6!:7$C,+LW/^DFD:F[B4-] MF<+T)(8^]E_)^5LR)N'+[+ FFN&4]H>6 F=]9 M*G#CQ=B'S1+SD^C*;HU@!W7Y0B:ZH#S8GFYI\6<0Q!9E'_H-F*.4=D@2^QG>70?US\=W; ,:8O]=%ZNOKXG*EW*IM-+B,*K=:(ED%BWUV-<]6".$)U M4TC9$+$L]3,[X5U'_WAM9"*?*?*9PG(3]D:]ST4""E'U8M90>%] Y9U>-I': MFKQ4N0M_23E-%X=!@L1F:E<7,O]I%R?F4%9/>D%'WE+D+=V' M0O+(UJ-:7S.1>[$MXTI+8.K39HY?\%TPS'^99JJWN3$;YWLM9D=-%EJ?V$PS M.[<_&$J2CZ6IH%Z(D<]TU_P5%IT3&JOD/6KHI*^FCCJ5\7#_%M)(S]MS1KY4 M*&8VA6L,W#7 B/WK:Q7;2WWH/JF@!H_3-7*:T+$-R#8FR'D,!9%RPFE0;T%H MPO<$*+ J-6SJ];2=PM5UTXIGRT5#2#JH:R4*^B5B:1(_TV#_CIRK:++RAV%W M<_Y[EKC")VOQ="?3&M-$<;!>.JE2@U]^/@?E2ORW("IM36WQ';FOU*8 MQVV7_Y+(@$S@YT'W?W_"?GB) .^C)<>38FV@";&_8B9PI:* M^GT]#Q*=G0HZ$S+#$-U.C:1&2]4!#N*>Y&M-#X+T\6%88VB'0IP\\]]ZVC?<_^R-/JD^"BU]]8=( M/% WPN S346>X(M[ UG8PD"2\!^#=B$(N^[/D.F@Q%.>:#3_H[_^'KB=W*&! M7-#=ENSF$??<)13^%.A!T'P<]]*O2,N$,:88:LB7989-IP9.-V@PS#JOU'=Z MKSO RP/>5"OJ@IE/26J><=5;,K&B;Z>6; M>3+;+-?%DR$N-QYTX'NF9H?;(&^2Q5NJ^DN.'8K>QV])A9LW]?],OL3M M)D&\I;:^JI_X9^X];C8&(@04<_E%_DWG/KPER+^L,?C[@H57'_H0R=,OXXXW MV^Y_!#;?=6_FB=D0-]Z_@AB^ZDR'>R2N+Z.EY'T,<7B?K+[*! =//G]K-M[E MQ2Q>Y);7U1703&\",II3/ ,:F$LG=QU78J=OA\IW9PO[0CA;XEH]=7->'BF#-3Y1+0W%=RST"R;O&&K@C"RT)-?-J?J7A]BN^<$'P)O&:N3Z?BHF2I MS3TMM7>MLHS+([S895->GSHJ<6,5^^V,$_FSOTCIOIL[=AQ3':6'9 EO=VIX M-3=LS%>=KC]B(T8F;M#T/*R^;-M: ,UF7 UJG*:YWO/CFM(%&>(*]-_H19U M:?T\F_QE.<%3X]68K,?KC)VM5>(UH;G(EQR6Y]CW2)FX*E%Y>B3(-=(S$(^_U*[W74+,2 M>:%N+L#OSPP)OJ,"E U D$'OXS0S?OY2OV#MKG3X>QAL-0 3H;J7-S+5QZ=<3DBPV50N43OYM ?E(B['W#Z(LN@^\;2!$AA>:. M-!1 >M* )^2>4EB;Y[P2/L4DC5=L 1S_!K8H#Q?^P?"RKC!+QZR%9 C8BC.L M'?S8!(H"#-/-TC7T':>@Y\0P$S7TEN ?8NY?#L^#ZRW#YBVW^3;&+^#6@?EP M%V#[1-\#KU<(6U'D!)&FTFF<.G0[N7$[BB*86:_U_N#J^5:;+&5)7"V55_EF M/U.?$=_0^\,UAA%(/^Y9GC0"(8X%7P2>(/^+-71-C ^ H6(('D>GZPLHZ^Q< MEW#G"& +;@-Y$#.!)ND&_!\/L8>89Z,K&Y=QX*^2A:JP:GL[&G?Y]0[7*"&I('V_-F;N"TZ M>5XW#-U!)^&@VC_-NJ$\%FYQAL&R\FB5[O'JC-E9Q CGEW5'H+HH!1Q_>#GE MYJ+V?_ 3!:'ZD?+T W#/:!!JAADDV@TG*6Z;%P@ 3 0:7*Y O!LKW4#TN++A M3R;2$)ZJ04^R$%U*&J?Q[AOF&.17'?WHZ(;LOHI;219\C : 8/KZY)BY"@F[ MK4'.YEWL8.D8AJ1E#'/@9E1$^@*FVT;0=B$EHEZSZ/4055 EP8\%M,FYH:N8 M7R>)GI9$JX]O@!^D/69Z_LP%=\I4'Y;MH:'TEI.>R]-A@Z='9GV:;X_%7"Z? M>T+;T*CC_PBV@7H/0'$5I( >WXUD\ GAYJER;4?W2@PN;=+[.5'LMY/-[H52 MC\ /1 *_&B:Q&QIB&Z8DJ]"95O)TOT7. M=FNAF^S-Q:N*U1Y0.:A3-/$RP=ICJ]F6PXQ$9BT/\VJQI,O,_MJ"%>W(A$CU MAF,(KG1SB1$1#;=:&?H&$I9/;[XJC[F_/)<^/'POE,#09.=D_AA4W5SP>;H62:Y1E=R#2,Z: _Z,83W>]3]44@*1JG.$UZO4ZLN(50 M83E*_.OO%'XMBGS CCLQ3Z37!'N#,A(1B M29RBP!6*2X5%Y%D84*1ZQGGVOQAGFL"".KP(H*?IF@.0WES9NENYYBLG;%!G M>&0P0'$+_4?,<&7RX^:"K!-H;AQ&HKVT_QEG(MO >UL!PD'@,"CEF3X2]RIP M7Q/S_B!! !91?SH#:\_G )VZAPR%?Q6*[=Z_T;?0,WQ*PMKP^!KR3;#2T:KQ MEO?;);A\I=C(BL%0E,;R\H#?@ZH+F1-:6H M=LER/=ZH5N@=+AGUC- 8:TWG M76-./FN7O\UEAR<,.4-"RA/!ZO'['F;:!F-V$%K0'_/PUX8TTPW_ <[8J3!S MT#1INS3<\EIU54O>R"2+Z#2Y^*BSQG2F9_90!.:&NG.TP<.31.G+"H:O#K M?K=:TF0I(RN='#_,I%G(HI]D3RC,[XM&WB70OX!&TH6U.I@IHH37G5R&SO4R MI411_#H:29[02#]%Q"LMU9$8:5^3(LTE:+BXJ@/2 MCWDPLI%E;;X@O1^P'(94BP USQRX2F(&+ < [$]79_BFQB3T#\NU*R.]*66U MK9T2 "[UY]EUNE18JFVH#)/7E'-HX@-R?#SCTY5XR-J$]J'!.9KOB9O!$1N$ M2M>2%@-8I@P2Z:&V;:=A6O#BCJ8I6-#:YIECK M=-']Q.=(WB=C3X-ZE*T'JEJDC*%&?-[F#84M29=0T7=F_KBM4 4&[IEL;AZ, MTO0U;S1R-9SNTYE>J=YCS!4M7C48A:Z$GH3OH=Q_P$:^U8:$HZZN%,DEG&.( MZBCV7G2U7R;'KY:4%Y?JFF@.7>"6W7N%!8?N%"S7!D7.O0(L"]V!PW/ZIT=Q M"Q2[@[H>N@'*+E1<=D&2[+N(VSO]@;[;CX#)N3(K6$R"+"FLU37.2/.9(?:8 M>*>VAF(2?W@YB^]=Q/RO\$#\HJS)FT,\BSNU.D=.@%R?MU)3*Z6GMN(U(S2-YVS*S:J04AIBF1C(=I_'!\*0R":'@7-[9FQC MF>H/5GM9326H5:DYJ1 9)VANC[5J$L7$;IK&P:0]8]OC2;QCH95G^QPWM1:^ MUQ)[6A)8G4WE64[-!<[M*742 \=(EG?R:-A(6LPT8RP+N:"Y/55>TU9UIIEB MUL*R-P0+ N0TY^OF]C2 :0)P-&0:@#.!>9ZB8Q-.629@,A9[VRCD7+$O>>T$,^3^AQ874WB3R/MQ**NW'7MIK9DH(D-O0>-P#* M1L5W*Y&-94/ICH&U+:V0W?J M:&$]+_J/M XF(Z/83)[=1H)>9ET+[4%+K_B M#Z+CHVWK_O;LVC^>3A;[:H6N,791RE9R*X;6E-]4-T:"QVPP:HY+NV,W? M.#[FDJ'0WSIB"7]U1G:$F.^:N(0_4!%B0H@8R#&_=&9BR!&3?4A&B DC8B*. M"2EB(HZY+6+>V7?G32OY]BT>+@!+*$;GO&6VWGPRSCF@PC<1\ T+\JLF47T2 M2C>;"?BZ4OH&"KJ\%1BO^H+I4B8??F0#.P&A4>/7__B/=A6+^ A/F3 E]44<45U^'>!K@=?3Y M58=+WE@L_QA[V9/3(::M#\OQP&&3$45%%/49BDJ$WQKX0$#CV]KG?H5)@ MN+E+?C^@^!I)>Q>@N+D3=3^@B*CB!U/%QW3HMW:(_F#@I?TL-XO73>O:"C5L M]QRN@5"'YO.?!-25ZSP^F.OWT8$73U(_479@0)=LN=%0!OW!QJ#M M;2*N;:MYBF"ZWIS29"R1"2KVN&(((6R\='EP]^H.7;@8*"CD] V%PL\Y)G'* M,03+)VOQ="?3&M-$<;!>.JE2@U\ZM^48@S!+C=3"+M$JF[2:BU)W7"F(WMS2 M9"Q)46^WE8^8)F*:+V0:_)1I$FQES6:624$D:+#,KB=]?13?29\8.'8)TZA) MCFE4R11.V],>[? =GNJ+B&DHQ#2I&\SZO8] T%]_]Q>Z8<518.Z25D+R=$J2<<;_ILD+YA\%#%+Q"P_P#B] MB%GL66NDE3LE&2^0(-X&VTU6(5 3 JURKWJF+![CZ\.O/[0490U-%'64 \N MC"S;D]KL(,FS74MC'"QI.5[H+A+SWAQ,N*XW>SL9RR0R4?3UVP))H6:LD"KS MVUJ^KW&2T.PR_58QT\#5R92T^,9THZ9%;U@WY*1L$"=%4=F(F4+,3+>UC%]C MIEQZGB%+E+2AX_)L4TF8W<&:SD%F0@9Q#,]>:A(?)B\^[P=S]KM;N7=2H,A# MN]) U+9XUM:#1.BY187B"7V@%L7 .! (D3QPU_N((TV^4*'XO__SI!3SR"NH MXXAN_#DPQ D(_!)0PN4-$<2]2D]N#G?YAU,<;F?Z(,ED/,?"9;8_1Z8B/5,L MD_DG]O@C.L<9W%$SDQ/H/FE6XGWK:;L2_[,WRDU]%%KZZ@^1>*!NA,%GPI \ MP1?W!K*PA8$8\!^#=B&P'M4MW= 09RE/S%/_(^@6N0UD]#E6T-U.,(^=D+A3 M_+]$X4^!'@3-8QLZ?DP,AF5"+N"<-!M1U951S@ QJ $@&Y?,'=M1)WB?+&6K MF5(^E1SG@AH @J(R*]9[286IU^M4)B?2,WKN!#4 G*]3ME!OL4TF/F?'(WDV MI?62$]0 ,*^GIK5%O,[@=;J%+\56.B/!MPV>\U5/K !8%FITH5!TS#I-M#B1;O6V9I5)Z@! MH)@@C)384DUY!^+DTB ZN>TTL '@LKQ9EE)Y,)#;R'OKE//%K>9,YV(0Y(6"U-&[Z=$(5\G%U)+F>3+;=8*@).ZDI9W>D9Q< ML+-<;=LO3>NK;A"4A$1G8K9&#(W;*H2YM5T3VXK#DN319-! M7NU9Z?<;"_[6)8W*+N]L1MS"C/B&/F;_>0:J$)WJK[_[:,0S0!TJT81/SEQ@ MJ'<%)FF>R>J-MWOL\ON\"::#^@6_V%SO?01"O(8F( MOK.7VD,F0DPH$1,UN0LI8AXR45O(,"(F:MD54L1$3>Y"BIB(8\+6Y.YU*SEJ ML7"IV7H/D#I+H_@AA?9WW?ON+>LN(JS?V/ LO+FV47>\T!%+Z+1^YB2^YP;\ MT@_$ 3J2!L6!]2?N?13Z'GJ1WK_?*JN[ZZ$7V0+W6VP1-=7[81[?CZ:H:S35 M^XK0P5UTA_H:&^$^0!$UU?M:97X7H/AY[=-"KG_O A0_CRH^ID._H4KD"L[Y M)8;&8^L]-[E+MRUT;6-BZ&V@S&F2:P3$R?69RD>58QV/(+3A,!PIIO$^LS" ^7#*YN$_]FA?TU M<:S(VGU=YO302=ISQ@0YQ QMGQ6J&NTS0DDWGLJEAN\B[@($TP[?;W%3F5-T MG<+EKLH:[67"\5H%9JCD;0WBW\Q,7Q/HN4.-?5M3][K\$2;>&1E^4U'?W(4*;W[K6YKSUOFKGPE, M!14*W4?<]\*:A! 6*GYW9=G[HC"_HI3L>^O((N'ZC<+U%J YDR51G=BU9/(5 MB\2^O8(GO%QW-R4[5Z@ ^YBP_M:FBS)5&,Q(U"+8N)#2,:(!\I#\?-.^3\AW3#*+WS-WKB4V E6 M$LIZG=@RK$S4U%QUH;/9+B'>GMCEI&-:O;C8EKF)T /%PGJ[9[N0V),7(A:J MQL?I""]1>#@=E"LH.$$R>4A^%@:A#[!__?/J6NT7JK!PZ:L/"/P+DRA6M@'8 M8IX9)1SPB-L=9T_OJ08GQ,F_AX?O ST5'TZ;L'R;L###1.Y9@J M$2>.4F0TZ"FU]&A>I#FBD\ [*[T]Z/I%*\3#S3+TOCJ]Z-?G$[W/_;DQ([RL M-+^/$7JE/9NQ:$ S$B'5L_V^(,8SHE=\0CQI@G "^EJ M_NEV[JRB 7QO7M%Y^:_#$(Y*B5PJC5*J@;<'RT9EU$B6$RVH( DV!5\AV78 M(,I5"F^NTDMZ($,^9*..XF'LCPQ]_%^:S11RQ"3(AV0TMB(4G:L_+-6BUF:7 MBIEO:!(;ODR0MSC^3MI3'DV_IW!Y9RCM]LR5>;?0"3#74?M7T^O_>C"]L2NW M5[XQY_S<#IT^0X7X=O8Z#.>Z6.8UN"TT#2"H=]U5)Z_-;J&!0TC"VSXCA>O2 M*ISUZN^/>;]S8OHKT95#CXRB#5IP/P,'*!O0A)M;!+7-8.T^K2PVV3Z]KG+;8]2_'8LEL4 '^K[5!J,@&B6R02+*<29:% 4" ;%'J MK3%N*7N)KH.DG.+(L2EO_-8XV>Q;%^\_U_1(1Z9'9'K\)@%1TFTC0#YL\^45 ME;&@[=%G*4-OI+K)O-%E*="1=H$&1[5W&IL MM;+Q/D/Q^RG53[/EMB*R:218$L1;3:I_KN&1Q2"J,6L!#,#-+6#\*#ODP@N+ MWWA%$0F:SPB:'&*55Z1-N:&5.B#%T,QN039 HE!BG;;#9I"T2=TFP!HV[7V) M_!GHJ/69E^*X\J$;636151,)FU-A$R!?A%ZU2&SG1%\FI)*2'O&SO3SMLEDD M7]*Q5.8VCE+H[1D$T3^8I*YLR^UC#H4T,*T?9=*$1'R$V'"Y!LRP?_T@4<)H MAZH_(-!;'B[-J>BW +G2(3>TF(CO&DS?VL2EO$*;'=IA$[A[]T.=BY5_1Z;+ MC48C1-;+NZR7IQ*)A!))T&U4:A$&D?0KS9O+.UY)," M T0VD?#,&?*WAF<*MF% &S"R7Z*KH1\J#'P*#Y )Y(Z76^9T!0OGSSQR' _;;C&)TYUXS+Y M@JZJDN6&]@HN[$2@\1(PR7 $_8^+G99N 4^*)Y+>_^/8"0QCV!,H MNI>9CW \LN<53^H^Z(\$O7^)?^WL%QOYCX,@7C@%/A5^X&/, 1CJ[X6&'<%GS0&4 MQU E+S@#N$H%^Y?+EHG"?XM]QONQ^-]_NYA%P]WC)K L!7X#A78ABUHO?+G0 M._WV2N$TTYUFJ=L&)D@&X"W=\.@%J"M%WT%R>H] +#SN!YT [>\!*\/EPT]YCT0;@:>&7W)V9V 9N&$.%V9@%D7:X=S_V M]MC!$_&ZJ$'D"1AGP;_O,%': .TI3&<Q\1T3=G! M9^KFZ2N]IUD+SE_M_K3@-@#3= O;P8?, 'S)V6$@IDV;7[CX6G#P(4CGGVY1 M% T@HB<^G@ !V#NP_^:GT$"-2@Y$?@FQA6ZF9.J\P1TT0U!AO0FT@Z@73''[ MI^@3=A^1)MJN"6T/#RANZ!"R_0IHIKN?@FY:D(\F &[S -ZC?4)Y.J#%&0;K M+'O#DEK@)O0(GSA#K;#@9UKNK[\U27FQ4\]%C8\0AM[SA?\+.6:"C4,7,05( MW'V/UGM'"7)5+'%<=HR M..2X8"L(,N V*8*2E(?:"_[=%$_W90X44<"]PW/O\G0,K&VT?>AJ21NW M=X5+0PB44,Y*&J_8[@;GBNZ:_G&WQZ'_)7AF!U*DZ-1JQKD"AL1ALL59GM> M<)'<1_BI .61Z/$3HL\J6\TIJ#*+JZ,4+\SRM;1L0Z(G,HE8FGIY9N=%A%]$ MAJMA02P\H3>78#E$N\^(^T?CZ9E>>?1M;74&C".VW/T&HJH\+L?Q45ZNT0!/ MSE?3,^TD9'I&I1P%;0Z7<2YUBTRE]'_)4]Y0 L)^@+&#E(%-*B/ZF-F MFY(&3--35\+DHU#:S MK=CQ;2M(7Y#VX#,@(#G1]3PP-[_5?8E/9HYD+3 %VK *VA9\M^*;ZP>5^6CB MKG34=0UY,H^2!BI)M!\_H 3W RD9\/[@3E=[<6CS$'?P:V ^1R#5/5WGD?II MJS^D"*'D>O28#MV7'IZ'7)XT+';[&IVT;^(5P!DHDKEX%@,A$1G$Z>0+_9O^]W^>-*HZAF%1_SS=^'.(M9Z P&^01;AA5Q'$ MO3Y8+AW\X12'VYF'Z'_F@4@>TEK^'..UI!<_S63^B3W^B,YQ!G?4FN\$ND]: M[WG?>MI\S__LC69P-9V,) &N\?@W8A"+N> M0-608E.>"%3_H[_^=AM"(C9 LO))#(0[Q?]+%/X4Z$'0#!J*^U:<[+L:F;JL M!)6^[@F$N )EXQ](X,! /YW]V8.N&QF S^\8N@"-:FP$53PRO^]#XU0]@>W1 MPZER.$I%UR9?&?I&$H#G M_19H3 CP&]#3,/6YA7[R%!HP-M# \#P9%"UY]$20J(>:R4VC0A[)4;+ST"]T MN[!ROEA'[T"1D].\(/?IQ^=P/&_8*(0"G;#3UJXG@Y_/'N![26_&UVY@''TI M'>=]DP#9CS-X/I=K.:B'P=W$2*O:P4,_D!O'0X?2DTZNTB_#XVA-28'TU0)6 MH9*/8>-.WR42=RKX#AO"Y(&KXS-O/(4N.+RC>2=K N2ML*ODAB,7]C3+U*U:?%NOK,4J]_[(SN%V MY;"GPB/M'(UP"_YD0B'B45T.20O/,#1[Z*?VO&U;D.: .>04&U2@G@J,[L3' M7:>WS133,E?6]X4,5U3H;/>OOQ/)S$-0GM+[XSN'$"P4,3ML!M">4*C&U932 M'..!X8;.#; !FOU4NEF0<('EV_BPBP_?;5T5YWJ#2_!.:]V11[C5 MU-8UTG:T7.#HD*#(ZL=PW(%'UH62;O0\L'4>H3;P@':"X_IV.09V+96GJ=)$ MIP>#C6J5G NYWW)T+ZKDCHUZ:=3(103AM?AV-1G$XHD0>7B71,@=+PW>&7^/ M1,DE9':>VG@J+_:;S#B7W>$7I"H0:I%BF /4;1\<_H*N"=&+! #-19>WW =@X@%: MF&N:8;E^ 5J]*Z@8DA0>PP[WJ(] /=RF>L&:1]FD2,@ =F-T$#S27.+1?>GQ M\>:?.[=(J_ 4"KI@M5%8QD"N"8K^P&^KWFD]F 87 825^D:/3M6SD[@&*B2U M'<*MR>]WV449/% J0:EF7OMY"'#DX0HQP : MUL$G0$]UG^(:W_Z#D$^FN,>&=A?T U5.]&\;#LZ>B0INA.-3GC[;#X@^6FU0 MMJ+C>GR'G#8%6]J"Z%V^&?[5._K-92T37 +-Y_0'#P$A]Q@F?03&:3@7.IP" M&C)AP#.J*'B+#N5-O43&(M2./#C>XKO3+WU40!$--!,\"A[/^SX].,3#0H)H M.2Q%7_?V8^U6*,\2[@4>9 70J1ZP"A0;NN%]_BDW^Q5.O'=GN.U&W)\?\.Z\ MX4M"/">:#NDYW3;/E-Q!8/FD?8 +$B./C'/\Z(3JO,L)R)&C$YOHCD!76^9 MEF]8P><=,HR@-Z=!+6QY.43H3LR]5? 6P3? !_DY2<<,I1A4X,B\-1?2Z@0@ ML2/7'8) R$F "M?T+$FT#?@85)_V_"^N,$7!:,L-,'A!)6.EN[?ELUU$&YQ0I!KI:1\:)[=[9'[U97C)X6T69 SRZ M+814P!]R+X GI#V1<% ;:&,'.O%$P[/K0Q3KYQ<>/@W@7QH]7K2R9P'G77[J#\CO;7#-V<(3)!65J[YYO>>8\ZN>/R 72*G =LA(A$ MD:"B\Q[L98C)\*.%K@O>9X[[8 5E1?#/K*['VRGO4!X"GL01$:14W0*O26!7 M52-E4-'6OQ(X8_V*D+[*+!1(SFA3,V0# M \'- 'O RFZNI>LVZP80=4@MKAPZOP8("M_O+@[0OY_BSJZ HZS[=V;=N[E+ M"UV!Y&S2;FX7REM&,Q(5E^;.$^X;A55-*8],D:& U$HZX\*$9<7SA/O@=3\C MX3YUG'8#_7[ROYB;4X05N!4*V5PYM_XJHKZM835;\:-7"!*'\DT;>"+E<.:1[OR#_8OZ=_>?I_D2_T7?G[X Y11ITGR MWM\.?X16C83,&22F9UZ6#1(\*)L%O@/^)("9=?)"].7-X;OV#,F9E6O104,. MP!_1@L/?_2M5^!$ZR+\VC^\\FL7(2$/&M>#FVNB&:[5 0:@]ZBDD357/S 7" M\ZRPYV>+/=]O#/MU^2^I*/\ERG^Y5OX+=ZAN=/:-^8QI)=;B4O MMB?I13W'$N?[E+.\X\S-7(D!K2X>[\D3P&;0RK-]:GB)((>]/,>4F7BUW-7; MS6'%@2O/]DF4.U.=&V>[>"'-D^QP3S=,PV')\WU6L^7RU"F4V\QH2R\;A-1O M:@LT.?EL93<]4?=$)E>6ZZFF)>YVN"9,4<_SLY6EECJ6,X+0D]M&/5[3N71: M*8DL=;YR/([O+"$QWLGQ7GK><])7RWZ]4YQEQTO':[OZ=&6N8I*LTFGGF7@ZGV5R-2?7 M2*%GGNU3+]+9:H%*ZS1!;LT5P^];Y2IJY7JV3SU5DFVCRD_POKG(R66A3>XY MDMG MSA]M_32;H)!]CR-C__&7PWUQ'QY4$B3.V/4Y!;3GKGG_>&,,G46T')ELKL7V M:+#Y5\4)8UE1,^7ZEK97E62A2\>[\]VK&?DOE'H]\2^JR-(3X!F@FO/2#;PD M?$@2[I^"L_&3>%TMUVI"1NYO]ZR"2W736#O(#O_<[?")D>9.#(=.J?"\FA%[ MV;0]N,H.Y^79"0;GN%<$CP8V .'$+?$@0+T'B#=O> MC>JXP0KXK#4"KQ_N>)*)\^R1'LV?D':U.%P.JPVG1A,5T5ZT4N7R@NU> MVILZ]9G4F;B[6W3=!+?T-(_&;W0=>5YO>EY7T"?>K$[)EAQZ.(! MW=D:QR>X-P.'/Z$K%G<[\#,O!&BZ-8]N*9!_\:#YEXV0.V=N738B8&OAQN0T M-Z+H0NC,SS=1&I&?-QLBW?=E;/X="J]6$\?#<6(VE:4X*Q8-5EO/1^)5%9X; MJ7VL;']!\[T@[^]'I6E^H"Y]T&B/Q7GKSZNHL YM)PF.OA%:A MFC^)92%) ;PKQ<>7)/##6U!:A']OZJ@R3LZV% M;J""\H&>!X^+@^O+DZT.L/=E',CEY7B(S]-Q:C2!%F/Z(6A^U@<2"I\6V1YK MZB K0:J5/>&*[E!XH"C^_0QSN&W$$"V=4J+CWE3.W#QE:"+Y.3G&\8QG#W.% M.TI-05UK#>!=-VONM3M &LVE22Q[J-A^?X+\A30'-PC88IX9)1 MSPB-L=9\27(?B0X*[D\08%:S2ELMGNC@1',TS Q26RNCBJ<$2%Q:+=ST+MN@ M<$:Q20YEN7L4]Q*=Q8D30MO0S?_/WI?V)LZD[7X_TOD/J,\[THP4Y_&&;?H= MM63 [#N8[8ME; /&&WC!P*\_50;2)) $$A9#+,WD2>C"2]U+7??>2BSB*,8I M&;:F#'T;:6KLKS_8?I[[OTYBM U V:J?J3?0 >@-ZO:W:BCV;_! DK=.9X4G MOR19\ *2LL[<@-^W/3W(2@3::7/%5K/[GZ"=P9;]UI=+_.]:[\74X+ZZO@[RO^13;;.DUC#D;\#2@2H1O-,V%AN$4->2 M$:29;:X4A-G=L6UYH_$F85?:U@+]?:.G6$5T9''VM"G E148E0\V1EELJZ0A M*H/I"CIX''/='"$%MALPG/G2N<%9.JYBK/,:!LM-B5%P24,)>MJ\P+._LKI) M9*@"[@$'?*SY]Y -&AX[7V'_9L98=G@0U]7D]GH@JRX, M&E8+&"7:$L/BDHIH]469_3[(>GTTO,99+]ID#VQ!SK\+6/4ZL3GHY >M"6=C M3JQ3>G9W8%>7_-L,#O4@+W'GZ+0\!RQP_O/[FO%N::S('F37G=X=U;_/V@#O MF%EW1 DB$/OQ;R]>G$K)Y2K+43TFFQYQ]?%\5;]01!MH!603JT*?CTBR#+Z) MGI!>L*'D)G*V[M8IP;23J:/\WOZR^U0PUK1Y(AAED=;1F6U,,0AKB9YK;3]8 M![6"3UZ%OG8:?F[6[(#6Z\72H.@,GENR8@P821,)#$A)4PD M,9ZN8C[(F#^_=5R<_[/\\URR( M3S#DN3=I;ZH#^7R.H0YOR_W/M#N?'4NW8*%CW#_O,\VYA.NS<^'B?$,\T_N, M<\S>[+/*&15.Q"T_C5M"=X SGYW?ZC&']^YQ_>O/OU^\OW^=PO_Y[S_J71S3 M'UZ"I; S88.P32L\YO63Z[Y\3[&! BYDPB@R JP<>"Y[?FP[&__C#D$QVG/AG4^,TS*VRR=+RQ>O8C M*5P"= @V'Y76=&F)P82*W=>$NEC)M 8LA 8LC$^YG#D=!$0G,;H4$%(9- >F6DZ7#-EEAV2G-VG&SZ MUQ(:6_::6:U9RO*B@&)$MI\BI#@+A(8*A 8[>,R$W_,914QP#2:X*4F3TVW>\\M53S.RLZH^YSE<,8W":M"/6RAL M8T;^^H-3>.1 BF0K=+*%[LH6)N1F C,AY1'.*9/$K->T.LA2K8= MAK)6;-1 M(G,=CC):&1:I6+0P& '9HG[]^6@D]UWZF4Y!SG"#MY/+7E7>1CZG1_(YG0L% MK]L]D)'/Z<[=#5\^4OXR0.1RBGC@YWJB0@!1D2T/ M]I8*@ZR$-Y;T=O"[7*!9VZ2=(JKRZ?3,29HLP9_NB/MB8I"I) M:8Y1G..M9EU@-OG##+[?WS)R*)R[?B5DLA,B)W:XDNU7 E\22V..YXV$8.1; M'M(?BU!8R ^2[2/G2R0O/S35/H70?F-26,U%L@+=7RJ?0!1 M_PF:5H9HON*FU^57QGN^'>$1FG?Z]2OKOT&MY/4#:.2YI:SO,9=V- M/!@K -="3EP/WOEZ<_S_.5)6^&9:$/%ZHHB[&8KWB%ZOUNXXO2HQ.G=&SRF- M[VNV!Y/=6I5+,U(^FC"LO5L-DDF2=GHU]_L&?Z M+,WMGT)%@=-S/RY/ 6-%=7C$GOI:-D,/"JC1Q.@F^^L/?B8*!.(1)B*2+0M#APM6RBP34GS13NDYT%"DFA1+EWNH(^E+D>O,Y&ZY MW]-Q<3$Z-"FV7T\A!6^8Y5&1&PQ:%=01U,G!2;%J<4B-BUZVRU=57\HLJF0G M._0/38KMM'"\L%"I.5]$TY5\W\HFAI1'O(>_6VOQ Q5%BRK) XL-*6 M2G.V618<2S0:@$;H_E)[:%06""54>"]!9"BL,N%U'K (MK]TD93B MJ1;>S7.SV4!WS*F MS-"<[,>.WIAZZP$[4!$.1 ?P"T23L@H;V\HQ9?NF4_"F:VOM9<895VN^C#@+ MYZB.MXR:A._'FG)Z_7;O#.IPL@S2:]HM%EUJ35[*I ?Z0&8OQ+RWQ7"//<4C M$?6+?H^)HBD>$6&B*1YW0IA(8D)*F&@F04@)$TWQ""EA(HD)W12/#U%R./M@ M_+W\]3K&7GN(Q\6["$4S/*X_PR/BH%L72473/,[!-Z>V*HJ&>9S(+*$[QYD= MCUW@PJ.?\>WNJ"8X=-W?R/JC#QGG"R,_>HIHQSAP"_E>YWQ< //L:>9HS,<9 M 1!K_WZVXCJ];.YB M*R*NN'(WD[O8BKLHJ8JXXFM;\;4S] ;-$NFLE4F5N**6FTU3*:.;<6$>-/[K#X;B3SAQR6E?IYEOQ>#Z&R/,4 M<47D>?H,AW4""T^18R+8!G&D;.L,K;_-@R*/4N11NJQ'*733OK8X?RL=[%HX M*D$U;G6XUU\K*($]8 !4*W;0A+4W7JNK@2H@RX8ZER) 1%0 M)!>&/RRT/LGB^,=#^6Z.JC^J@"F4EE79^;VBJLRE1['9*SAN/!U2_,<#[JX)7ZMI2^;@5?1/#P1F&0H1H"S1?;:3DG-E-V?L("P8-S>N.7F=/[T&[R M Z@>$ F02 I\YZ8,$S #FL,AP#L-V"/G>33+\&?8"HT7>0AT9C!+O-'D-UHS M7A,HSXUK<2W%JOE9#Q.%EA0RK=G@TKUXB3%8#FF4)MG%+#TM&9MY2]@3CE[8 M8HA$^P>/ 0R9W?&Q,'.97+9DJ%93\Q(Z(XA+:MKU0B;,FDC7FS.%SJ$S,RO- M)GQ?&7O^>AX4]H3A[P^)B((#T2S/L KQ23;,QT(\7I:R=&<^GVABLINA':)G MUM6P.1"*W95GI; JMS10M(J7N_Y\-5H/J<*>4.)BELR#F"U[V3U20)K 8-G\ MJLP\=0ZVW72OD/KSD_',S;N\/*Q=B+C%T[[^.]GG!('JMOITDIB6[F;;?EK>ZG>VYMP;%'DQ?QJK/)ZOC#I^9X*,Z,CA%27E[NW*)W9"6IVK MLA)TJMA8"HT29\WD6K?/J0N+2Z!=#Z6D^IE]6O@)AL+!D8TOY@#Z8@Y4BH]O]H4"HGV:G$--%3+8\.-0Y#.[N M"-6^HY\V0G- 0V4R_5P>O"K.=5JEV@3SFL4Y71%Q^_+F9W)JX5\=Q3GLTA*H1O+-H_[+)2S-4"^?'@V;*(6*G=E)%]W M@;/?EZ]N5AOVBFS*1SO94J/:+58&$SXXQ]9(^XB.)P'2_B?(Q[P 52>>XZK# MY2XC'47&]?J7] *(H8^.AZW?N.(9X.&DJ[Q3(.?P(4_ATXQEQ]RQ$ELJHNW$ M%#AZ+[:96!@CL*<8!$C!3SQ(SX1\]A1\09Q.=2#] 6];P^ CUU9$QP-?7'>4 M,!1W;,DQ92'I'KSL=GN.>:S;51&9KBIORNJ:BN39JJLJ#K=YAXQM&2G+F'IN M<*WJ<,\871Z^0) !+3NCA;!3NNFT-AL6?%8.MFN3!BUU<^VA/QT##:%-B7P* MXYI><[0KROE*Y@1A_N9KL0;0V.Y;T:^(MBVPC;+9X8I=ATLMZT!K>5PQZ;*_ M_L29Q!/U05'G,5SP%#*>>:]8)1P\,QQ7&R2S6F91980ET::8D]KM4/(,;:?R M@Q+MQL$15R"* [5=JPP!S^ 4_<[$@^.Y(%!3X6*;]\HCPL$VI9:VH)5 MU%-%@F^@+Y]B0_#,P0'W,O5F?>9MQ]UPM69,=-:GHN. $U^.36T+@%O9^?M= MS[05R1J9X"R7U[=#!K#D!%8\3!7365]56<#?%7AUQY/&KY\+7$=T8["(6]S4 MKX"ONU9LZ+D>^!! AKDJ*3#!2[7 K0U15@Y=100$0K84>MX%+0\%4L*E VX M-SYO&A$?DD++ZSL%#>#V1-KI:YK!AU+T.RRB-(5F1=66M)'+NN5>/RV/H.@3 MV*$"Z ACG)51NKE\K9)=J+PVHU+U1".3]?JI>A@992IHTPHZ(E&N:0#@/&%F M';;#!G5Y'_AY(F!Q/EXIS.RL:RT<7A.)JH1YYCC;+OEAY)6YW"C/FRFUPU=G MZ53-(#JTF/%__:&Q)^P#I\7W 86O@./ZQ2X^&EY8$!AL#O&Q"!N\@(LHMJ2" MSZ:(.(4* 33;5EN PUA0W-A=U+P :EF=ORRXW MM98RV&1SM&OF0W?<%E= .0#_I-IP.*#N.?!Q? ;7 ME)HU;,1X DE^"% 01Y&@/O$M6W84\WK*!*Q0L_-&UN'%PIQ*C4FBV:+X.R;I_'B))W_\*"Y&7.H@ H"HHPQGBHLZW$_YR"4 MZW^?.2),\@%_% BN-1S/5 3M9"B/M>K)ICD()1#!Y@5W(-..HQ5'M99;BVON M5 /L01( M;Z?IW2<^OBR+^-K'HO79]M7/1:OK_(^FKA!F.7BH2-Q&U<3LZM< M:A!W,53,%RN>:>4=-^4+0=KS?_\1=U:NU'*^4F;;):U::36=4B:N+(9U(<@ M?;TRO>BW\LZ4)CFJ-4^[16PH8P0K!$EQKU?JJZX[Y6H+5%-P(96NR":!$SX0 M<_3M2H^A6#5!%%#>&]7')--(DWP?KMQ[S@K=)EQJU>MPLURB)RW$XAA;L *^ M_YQ-?I!+MWO# HK@Y+([[!=G@R9<:HIHCI5>WT8I59,IM-D:.5U?(/:? M4W*39@\WK2)?I3A_*&"X,P+/2>ZO7."8FUD(C1FJDJG%8EXIF*3)"O']E7'6 MF]AT,3E"LTQO45HVRI42"CO3[ZTT2_4\K9 OE[ M*4(?^!U/SS:J6*ZR3HK Z/5_D5A@_B+!CL5V-S56TT783'\0.J.G9;G )%3 MUPU(]L\5^\XAH)H;8]$,RNPWWP?_@:P2F)) DXMK ]4'IPCXW]#2=E,:*[*G S9_<5*LSYF_W+U+*A8\H+0YLQLO[UH+CJ1 */9%0*SF:O.Y MI?A:,=-/)9;+IC48L1=BZML>1D%*QO;JFTP="=!4G#K*[^TONX\,TXG':[DQ MQ 424-?V(FH(-#G^=VHY@"F-^]^BR2Q]?=.28(![_;R\Z*56!%A;D28S\HI M(\)$$A,1YI3:L8@PMY.8B#!A)$PD,9;PV!/=U+NXH'X*"+5^Y_MD?$ M,_VUBJ*=7(0[ZM]P.LNH1BB58\5MU MP4M)X#L]1;1C',SK^>\_ZEWHVXMT6WN]R7L:^#I@Y^9MYZ]ST,.HQ;T<[H_+ M;#?O%7TQ70]#9'<$!J[ 8A%'?9NCL/OM@_1M8 D#ONLQFG/%])1H4.8[]MFE M6QT]?B>CEUQ+V -"Q.N)(NYF*-XC>KU:N^/TJL3H2UG:>5.R#*6YSI;QOCX"8)-3L>GVOY=RP:U3 M2PYT_L>:$U=L%E8,NG2&B:'>'Q#$BA4(F$J6( \5\$0-D:[>$.D!^[%\6QK? M28O_FC2V:V0Q*67<.8\X<:+3<<%Z='1]:2PN1%1-Y'2)1[)):H[,2#=/U8$T MDK_^T,3E^XJ&32!#U38IDL*CBP^^)H4IW"AB$WHTU+(441%T!)^HE1M(X5PO MEH'4S7A>5$<94D30D9F'4DC]^D-@B7L=-OEM20MH%10)K"L:H\F0]Q5KBX"X MT%1T'6PI:\KE+0MO],!&!PV$O(A6&V2;ZY1]MF/0>%R2;H#+5R,;P9M9 ""$T\H%8V6C)K[WP.\ M_E3@E$J]4^V4!VFM0RZHH9- ZS/ZZU-=ORQPB867F?08.H&J/5-RQDINM<1A MD2">0T?SRLON5VH,+2?WG] MM1++2\JLH-3F/2[K+ORN[VB3.GH#U+",QT?==@#!8 MX(EFHLD"D2,]I!CC&Z#^& FE)Z7B)"ND!%X<&5J3HOOY41[9MHAD MM6I^1:*I5$T7'!](*!Q)\$0>X]:+G.N19-X)^C]&,I>,)PB]*>5IV:D3G^3J MBLZQ-S JJ8DF$@EU^5Q(\D-\3*OIX=0,H$!0*+DCW6W9Q53L44] /NB;*BF MZKAV4"\5>=W/#NYOEUD6(7UAP^E 6;&O^/RUOB+3)-/F+=+GJD-2\U5BBBCC M&^BK. Y>J6XGLIPZS*>*H[A3FNMU@8)8GWDBZ6@Z[J6!?8B%-:Q8XALH_SCI M3!*+T;Q<])M\L5J4H;2"7!^_(E! MCW H1O[[2"I#C_"/D\HELE3I28O2T"+6DSK]9,$QL1OXQQ:E-!?OC)MIK=EJ M3:<)0: 0C052"3'^$Y6X&,J_1Z.;&PX5R8T!=C,5%_;\!LP0N?BC$< /8AE\ M/OWW.CI)TVN-<7HYP3EC/*W/M44/R?7K AWX[(DGBJ(CIWT8G/:A%L&P(HN3 M)P%?1^;$N8"W'+MM<\A"$],U51_$QRR0.>B%QYY0[)#,16[X:#1PF&7MY*G MUY$U!ZMTN$Q7\#B%TV:3=(_L"DUXO@',33T1&!%-"0[M +ZT"FP 6S$E\!P# MQ?7AB)^QY<>R+%M;!P3^C@E:&P@Q5US$=-%W@EDX[GI03C !83T_2#7@A*&@ MTC9HN;R=0_!I.VI#7,*1!IX.39&8"-@8/)D-QPJ &XJ.H[C/L8ZR'D4$KVW# M@3MB,.UH?2$1-J06P:O$Q)&HF@Y\H.5ZZL#^M>#,'@7L%1P.=,K8A?\YLXRS MCE =[H!6N4"SMDD[153ET^F9DS19@G\MU/$3A#J]>?&6N&#A:SO@E^UG&XE^ MU3+;E)/ WA^JNQWC=Q? 8IH7%4#M3+H8]X7%5/2*/(]+MI$N8P,F+X[@E/#O M30J.@4]TN,__#@^5<$&5LU817_""AA<,-C^VA$0='X6?2GC'F+=$9EK2E(%9 MKL<5O2\H+*32^WCH)"H!A?"V35$P6>L_;[K-0ZT!20'^"MQ/SG.L-5[KEL'Z MU< 7@*;;+ >T,)4U)7W5?3OW=#LK3=[.-PLF>KT:Z!5TK3\?ZJ=PUE&-\@&W;?AI.^OFO4-_EY?<5%\U*8URI,S M?F8J.9Z!:)R1'^ML!\V5^HO1H4%87+K4JDP;O*%UL#9&ZWR&:!0/#L(R M5[VJN!+0#)\U,VK&P#4V-1D=&H05%Y)('5\61-X I;R^J-FO<,>&F_EF*T> MV:BT5ZC11T5.&&5,V_?7U9QO!F&5+;=[V250@? MK;IZ!E5D,ULN#AK%XFQ3-_-ZI9#M)XI$M3) BX;"E=Q.WHZ+HT/#M5_J)=G!'R M!.6:24N--\>MPDJ$'$*_78FFS7BEUJX6^&Q"TI*+F2>YJ_HA:K;%3';2L>@5 MNJS4,;:4RJS&PX/4+'NRVN$S!96O8@5L566G72$+1Z7MW7TQZ*-CI&FX/%XN MN#;;5I=I"MX]\7:ET40EGD]W2;0ZQ0:97FW0K-FC=<^<-YQ<88>EJ>,T,4D9S#-#I\<5!S MG6JR&6]KL#O!WG/F9[9->]RS5=XCI9DH9(BJBT>LV6Q2GOB:FI[[B?K1#J3J?GKXHG7*R<8IYL3R6KPV6*C2'2X3J.[ M&JV3N-]_Q,21A"FYZ5*PI<2K*F)>-#HX.JI7C;7 FKI&?# ME7O/V>7[MNND,%[+ICR[66@Y7$\?'9(.5+$2N>70H5$CY]24*8O066*3A/)F MY8JL=GR+:',BP>6F#HM0$PZ.L]N[>UMDRMDYVK;Y[*IE:Z@IFNT2>TCB-%^3 M5^EI4>.14F*1T$G/7O9':R?[ZY559;S2X#/RLDU(*"LP!\;N=;HS MIU1 ?8V:MZV\3%@Y2_+!RKUKDEF$4E!]V.1QNEE'/=T9\P-?2!S0-IVIHC;: M>!-%](2:U.L.DE3K8.7>-?/87$6HWBK)9SM.N]AKR:-^$YQ'Z %52Q6T%9KG M$32;74[%528^=E=41(-FVP],!)EU]U24U8T)HFIA1RT&0KI989+-UGJ5Q/R+(6D>,Z-;9' MKK1V.BD#A7M@0"-*Q%E-KC1''$*.LAF3,$ELO73OJO8LC>5Z_6$*F'J-/)Y? M#G+*D M5 V6[CV RQF:.\\"PJIF;=HQ"S,K!3GK@ !:[2Z!E=I*#EWVA*%=<7)TR@)+ M#T@+8S:R[1H[D7@CCB'TQ,DHY(B%2_<>P.]X]>6<036N,UQPJCPA&2X5+-T^ M #!C-J,>U_[4#\=";L<]GC <$C\;.-[!L9LFT'M!XV_ZQ8/QC['JVL%TY2GW M7WI@-A@W?\CW1CS%?.@VO\@\Z:^ZN;?997":9D4TE+_CG@,7PAB04+'9Z=2V MYHH<$&-#"_B%;6%YU>EJ3@8<*AV7%I0B6:4=\Y7K!SVW)Z-BF7/%<0&W^^#M MG6#DYEO':\5R>XK[=^#DP<'0A?1,9M&LF^>7"VVQL@J=EI5F8858/$$\D<3[ M,;.C'!BO_:,C6S2AIQ6Z,RS/=2#QH)L4F.F*'0S^=/YN.B)N=OW516)3L.\A M&$H>?CYZ9Q:I#6@P"K(LD\N]8;P!-U4\^#358?"O#CL751W:X1G+SD+Z'60C M.6=:I7H[4T"I?JK9;'=HG))8V+F'1HDGBHY_CXULQ1!5$W+.]FF">%G 3\]W MKQ7#$U#ZR\S2Q6;E/I^&-^2;8J1J4_&8[:%W;G M?DL)[GIXJW'3\T?3G,X990J3<#'?+4\ ]]+GBD8!VKO!5.17$^]?19\E. CX M*4B !:O!1@T5%8ZP=Z##-YB?#(8DN;U8-7LY7A M>+*8&%N#DT"6%%L<*;%I,(@8WG7[;E\>G_Q5[D$)I)3-Y-@:[_']6=,<@4J@J&=0H_(0X99Q M@CU2)^#/U(OJ>N.Y/SY%"F['-F89<-A05.T@%T%Y279X.7\WG+,3G S"D6&* M0EZ8H;ZHC@*.&GQ^E@[>GJ6;0[X=;'S>W/ 3(%$;4@@[J(U4F1;F0VLUY8WA MO,Q,$W5_P=9__2&?W^^'>XHVVN46,SCKUX/57V.T#9/ ^'C 8S$%SK5YYPC; M#W'?%IU]._9X%:"U88X 53E;YLC:EN,+R@YA@2G@9#+$^SDX'H8"98K.7G!/IV DD8:3:UM:X\:@@D1_%=S9 )A*P*4,@8[(F)O]\SY3@A>S=T M'U:[!9X4>X Q."(0&6#2-VCC6V=(['N'R"? )*W.55D)8,F&Q1LESIK)M6Z? M4Q<6ET"['DK!QK=G/4?PF[%X9T,U=DVTX!_3@&0OX./P&8,RR>E\5QYJGGS(W!LUI0'=6HFS1!U-671RU'+B>64) MJ4D]T]^T;$\]?JY"T)-/H'LC: EM)K"^TN+0&9M-+RIZN;J4 :+ T.W?"+ST[W4VHP^V[M-$P@V!@AMOEXH# MQ](]5[E&3N$G!6[K[YU2\_0W*_3"#8@BPMR(,)^-#HD(_9_W,JCNLSTZU CD]%UZZW<_7W.GRS:!/)V#CL^? M.,0SYVTZ<\.-(9[IKS60V>>4\[8DBICE)S'+%QI97O949SY#.^H1NO55VO^O M/SU%M&,2]0^@ZF.;F+>ZOS]?3(_#:-<='?011]T#1V'A1P/GZ%AYX-A[A0\>Q)9_=,@0;5VDZ2^N MZ:.=BG@JXJDO[]37\,,]-L'FMJ5\S7]S9GPS;G/>-#MCU?X9RKN@G"M5UGYZ:'] [L'.5S M"R9[0%ZYQ#$>G=D/<$ ?.[UCZMF*D*X3V2)2RN>X):K:148N= M\>4RF9?*EYU"B*W8M%^DIB&Z?TMC$/QE]HOK MEHIXXF#E_ \.G%P*Z]SC471Q<3NYS/ .Q$TJ=2K9N;,:\=YXV+=9BR#S4W;= MEQ2G/QBU\5,E[JK[,C-D[=:8U5$=#AK:BQ&S8N"#RH44^M BBGT%;0;G* +'*P^D>BN.^IZLZ MCEKKN;)GC] _UA!+3-NW*MQA,LO%PI*^^4B M->O#(374D8+ZZ$[U31-<71T"8!]T&HL\ZX_O63][$Y\CNPU_N1GL1\9^2[$- M[*][+35LIB=Z.\LA78*JR<-LQ>?AZ!O\:^9*?,T);^<#_E!?W$_Q?A\O($>" MV_ (2!FCZKA4[^V?*A4_V4-]O*0_NFWWZGQ"N( M=VJ.; *R+/@2&P/$!I=9_FVV&X.8?P[32=9#=$1=#_[1LX-).<%(B"DP+I3U MX)W0M$/:8%H]IR1X?A)@U]F*WHE/A[W#8R]4 O$4PGVHYL; M!EO"B!+@Y'G&?FBSPK"1(A**L% ">R9^:,O;L%$B\8QB M$27"0(E(.X6%$ACZ'(^.[%"0(A**L% B.K+#0HG$,Q/)Q#DI<6* _%,WQ\6] MV*=Z$']./]GOQ,LOUT#V,Q= Q#"/RC"2I<.="F9-?1F,$M=E'@E&"^R(>V[/ M/1''X M=P5]7 E&Q:^UCS6\%Z4<2BZZ!TP8G?!WPDP_&")NAN=&['-;771QW'@-5AJ- M;&4DNF^8*0*,$6", ./71"I(ZXQT3.D^=C,55*'RCK7YJ6A7<1HM\>CC\UT_U;--<^!I3KTR?SG M'.#UIGW1CV.W7W^2HBZ:DA(3W5A!-#W88X? GF(')UC?7Y_XL,GC]T!LJ/9O M7^Z.8;_P%^__I#/B8LV]8W$,((+7VG4<=VW_LQ/L*]ZSFBP0+P@XO5$$7E!C5UP3;Q>002:-RV)6=MRW$.&"-X8VDTR4I&T@RVU1^)"4/MU4;KX2 XC3VA>/SB MYLB=B>$U,HA7 MX;+#9E�R3BO_Y0\6>4B!1..,[]BR=A/M!F18P5MJ/M,?;JL^Z<#[A7=Y@8 M\!6;=GM,GMVJC=R*CY02<#0J_?>]V[NPPC_O.)XB@_N"+5Z#RP"'.KM3G5X$ MYP"V[&,%)CW)#;N\0>CY(6.6*-]A!0::LPGT":.H/7!Y]NFN]\@_4= _"OI' M=O#)=O!6%7W5%$Y,D@FM;SM#K>G*O?ETKLRK&:BN@"F,)YX))DH%""U8"&,J MP!WM7\1^]WEX/L;VW2*6'K[M>\10<<:RAXH:!8MO;$/?KK0E,JC/%$#>2))G M_X6W!R L6AFE1D59U'C%P5=JLRRF:FU62 06]Q.![B?9G]W@#CTSW="ZOK$< MAL'4#J\JBNSN+]K=!U33B9;WRO-JJV023?#*PFOJJ?*"E)@Z4%O \HX3SPDR M"D*' T_@1-N&X;,.VFM-N7NLU6*B)8'DXB3T?<3@_8LS_3LO# M7RN,KX[S/M>8]]M7><>?\6]WG;R 1^$MLL%WD0TA-(W!BC3L.H86.X8L:\5N M8^'<57?J9%,NTBZBO.I92\^+_))G\@ 18)!%P,1IYY0[% [(Z:QG[) MM_NHI7#?533_04CUK/O<%#(>6 M&44\,8F#"=5GA$.4F878Y)*(EN<<]5%CRD1 MLZZ-FBQ47+"6F0:B4 MYF"X,^U_HFUXE5I<5D3J9A'SRVBQ(DF-'"JW^S+ 8$20.4P_)>A+&X]A.U5N M:RF&JOCVYF9C>)529$.&I2R7*%)>OZR;<:XXGI*=PJ2S,HL^U&"P+A=_3ASJ MB/7 ^NMR)F-XI3$,]F/8^.#G'ELWM!P?7$3N,/9X['N_7X)*/)RG*20FY_XV MO)8? LB/;'D#70F# (4UU_1ULCHAR 6:M4W:*:(JGT[/G*3)$GP]S-6KY7QV MK)03ALPUE8$9S\Q(=.D#!$>NJU?C">*)) Z-^/A9L8"PA3!O+JPA,U9#N$-W M:<">KM#NHTY6%7)Z:]A%<&XY]!E7FC=-$I;BD$&=;/PY_NCASEO#CG02%A_Z:YB+A8-3!CRZNC0!% M: '%.V'HF^]06.RCKU7R'H,E0EO)2RN:;,^5B8 N%07HSV%2\HC 2@HJ>>// M]"?P(>PY &%R:_YHE^YURGK#^?(_FO"AK .Z5K_):]29AO/=?S3/7Z?N,9PO M_Z,)_Z.5W34*(2_Z[@\1LY8%/SHF9!E7Y=303?"X5JW6ID8BU23=_$C J"AD&7D8[\+# M&(4L?TS(\G,]=V(DL]-.\@6L*Q:T8I(N=6HH2.J>PO6H[RQ7<%<-"F8H"G!'\"(D6BP*<48#SS-"#'8UL M922ZRJ\I&@ZR.:ZD3!$D=&(\)$6C"*C/R8RNDNTJ:T@ =E>&L6* MT$H4W5@4((T"I%& ]#S6^XYHO1L);>@9?25FIF->+/A3V&I%-3J-RAP5$3+7:U9:=:T9 M:#D8\40/SSA]) UW:] 113QO&_%\7W0^#VT6\56GZ[LK7Q/=1*=H)@MR#ZU# MX?EB:). 4PNCT&:$)T*))Z+0YOV$-L^C$5^'+K%#L4NW-)JL,"'.%RFF74DP M>3==\:$*A+%+@G[^+&,J\.K\X\*[A=X+]48KGYU[)Y[CJL/E+O_"_V/X:5.# M6V,EYEJNJ,?4+?UB [P.?\%BONC$Q.G4MA: "5U%7\:V>W7,,_[/F67JV\U!KYH]L#=@H@7) M]7&B0$6T;:$Y6U7QN>+0J,B0::[9-=FB[__Z@W\P[O@8.9DC3Q[X^(N#>8Y!M$CN?%DEEFQK+"EI=UH"T/ M)GJ<3L1 1L-$1W27CIB0FPG,A)1'.*=,$K->T^H@2_5VJ3Q?IN. ZBE(W5B( M_-(;CFQRGDO@"R",P*8[U)KW*])H*PY,+U+G0+\^OSV+X):K0$EOKB^K\S__ M!3^V5Y=TH,TAK!MO#I07B ;/DJWYB?[K(D!, INLV-N3#"=W)B&<<)+1S*MW M#MXP^/E__\_NF_X%I8ADZ9;]>XL\=[9@O(9T> !"1PHRL!510\0A>,K?HNZ+ M2V>S)0SSC+]T?OW]@EZ)-9IDF'_%_OX*WV-OWPUQ@>SL[@;R(KHR='^OO[7] M*$"KV\\L1X6$_&TKN@@)#J_]ZJH!"5UK^AO'GJD+4? -\B!VZ"5^0JS8V(:R M__]:U=0AZ@:_ XD 0JV_ MF;CP!L"2)= *) >QMVV'ZAO;A+__85%M#U&:N1K?\WI)CA6#B=W"WEY5#PDN3B5Y%Y9:K05-+3>M^ M#H7M(3]0XGBGRCA*4EH=OU@0:DWZ[LRPUWXMI93U-]O#C,,"R; MK_H"L7_W4JV4'@P38X0S5HW!ROWKEDLIKJ+E%B-HVJU/ZK;G<&$ MZ;%@Y=YS-JHYM5BL#:OH4O":;KN]:L_G(X'B62&L6'><0 J"1.KXRN6J$QN2Z0!Y[3; ^'PWE^B:K=3GVBE.W4 MF($K]YYS52C6$DT>,WFJG:_RE2'?P"<^6(GM/:B/5:I6310(KLKEF(Q7*(K+ M9%V([[\2WD@F5MW:BM&6R3ZQ*L]%(JW[8.7>*S4Z_D*DQMS.=G+=3+U9LN,J50KPBON?=*E1FGY/JM] !M3F>Y1;+D(24< M/N?^*^%>JQP?K)89+K42ADV-3TT1\/:4@+Y=Z6ELGZI16)+K>$XQW1YZ0C?' M"M3^RY.,3E0'7*>L%8<%T6G,J';!J0O4_LN+'=4P4%GQM&8]25ODJC3PJ_": M>R_/E;$"Z5)=A,,;!CEI&CZO&/":>R_?ZK!6G^6+*;Z(@2/+Y!4DWX=OM/_R M?!?IM;OQ^I(K(FF^XD@]771& KW_\L8@E93FM&6C5',QJV-4H2J5?+!R[YJ* MSO0D:2&V.(J,&R-12V*E+ERY]Z#EL=?*CLTRK2G51:748_V_D.ZR0V+][HB YB7[;*6MJ$BDEJ[VQ$B_!E7MW]Q*Y(KXP MA12O2MV6/459SLG7PG!%%!R7H5Q;/]'CGQF\T>')J"[M\>P ^0KC6YBJ;5G M?)/3JC;5SN"+?C /?>^J3JKKQ(N6IFNB[X_-"M<5:9V%2_>N.LPD<;65R#+\ MK-IB1489>F4/7%4@]_B9'L8[79;I:IU$+:U,1V5KL*H#+;ZW,J?*%MGJBBA7 M3+ENGFOFJYW402VNI\<-V^^A,JJD9C7-YNBF.XM8KZOJQS>)!TLW-U+3,,/5&":T2P_:J.;::*PJNW+NF@2?:L]*D2/!%@M9*T[2] M;&H'E:.OX'S?YOM3K4F9?:^9SQ7C%%RY=\U!J]&E,=H3 (!W^<1 D495[:!V MJDF&WJ0JU%)3V]HJ5TU3)3->.V..>62Z3/%\NK"N4-"DL[=U#HY[/% M>-Y?D$4>3\FBZ[?P>%YEPU=5)D9I3@RZ-6U6%ZJC MI-KIVXH/E^Z_/R=46HU^W.:,I);LQVO5148-9EON7;64)%?] B&[VFR BM3( M=Y?:NVBOWZT:Z8N8Y-:-DYIE> M4L\L@AZV>U>U$5QU5J>&U5E7FEP:7PQ<")\^#V!W:J5$AWZ&5OVNTLG,1,"OAW29../8>(]HMS6UX4FYOMQJ&<6#V#6W'% N MUT9)WL.YZK)H.HWJH'X(NV8IEZU/9E.2+RY6'4/O:JEDP3^D'X>S=+:'3:D) M6LVD^ZN,GM3K 2+=>TYI1HS\=$]$>-R0&S-W,M!)PC^$72OYKN^8Y6$#78HV MF7/+R+):]0]A5\5-MOW>/%5"/7E11A?%GC<9CP[IW$*U55F93,=I%/,?XT,V&'^7KO M(""=#QQ-6+3-OI8M#E?957>*UY&#>MQ*=-4)@NH%/M6T4U+;FEE"\Z >'Y48 MQ4(EF],ZI)AJ>5.I;N@'$:&63LC%7JXTXCHBE8_SB7G"L^N'-+Y6GN8ZK]JL,B'JY45Q3**C@X>#H;:2"I]$.EJS@V7X; >KE*'"/7 X#%>,F>#0 MUE#KI$9Y898?-C--_^#A8/4&A55C+'"<.*JF9KUEEU^U1@5:]3JO(@H[S M>$*PTH3,\'C7/WB.U+KS^CS3RJWX8@$#)@27PZ"!>^@J@1WG3(M=TD')BE?2$)!=D%.VC;;OM(Z1#6+QJ)"O8V&EK M["0('FX?X(V7<_W%@5#PNQC0'FQ:HS2E$J=:G:S:8@6X%%^[HL$W%)EU/UM- M7,+W>:8PWL8]';/^UI0&GOTW$;QU?KASJ(56;+",!5YPZ%7;!OQB4Y@*%A/M MX%M#2]RK/&W^]-%9D3U>JP\.>^^!3A_7/-$T#\JK?VJKSW2.UD9&W_T?G3 M;=WW5P-6[_2<848!/.,$Q_5 MGNQX='>N;X%K#@%O;O=D^W=0'O%[[;[WP29\ZCG?1#V"&V^7B@/'TCU7N; 3 M_7VZ8R?0?2?N\?TL,":B1!@H@3T3']9C192X%B7HY_B'58$1)2+M]-,H\6FC MB(@4D5#\-$HDGO%()D)!B4@FPD*)",:&A1( QL8C2H2!$I%V"@LE(AA[;E*< MV(/E4]??#6L,@Z\SIVS&1;7"A3.PO[@WWZ[&E"P=?A@DSG]MXPCRF:3_]:;* M$)LN8D".5/D:18;,$1M[>E7A)KRSKB;?Z1MZOO+Z.^2W+[,7^57VPHEG# \] M>QT3+UQSTO[/[;Y]DT5WRD*_VGWV71&_SC%Q:V:-!/D"5?M7Z&IWGWOS65SC M)^]-)%,W;Q)]GYL3,<[7_>/G!DI[O3Z(9SI^>HWIMNM/Q"1?A-[X5Z$W\\S0 MC[]/$0]%)]3IF_.(CK:=.G#5!2\A1;+TL_1Q=("'B6$BY1MIFL@\^$R[;)J! M1CP2G4;1:10ZI?(33J/(%(AD*5*^T6']\W3O99AD/?$E9@TC-HEP_[M<\M+] M/^*2Z/")#I^P:97'.WPBF!])3J1ICQ*B;>N/B&$B5?L^EP0M8R(6B3#^NQRR M,]@KXI/H[(G.GM IELT('\9D]A*\>PP.[@/[7G\:VP]Q6-&)!2S;GO_^H M=R$>UZJ_N83Z#$_9TID$)V"=.]*MMV">;ZG2A^.839%:Q#,7X)DUKG\XEBFI M0R7V[V#8X7\BOHD.JNB@"I/2^6D'U=>L@IN.\GZ9Y4<=__J?#)E,JW-55H(1 MDT[0 %IHE#AK)M>Z?4Y=6%P"[7HH)=5/&ONZ:3DMG+G1-+M0'4%V1@LA^!,K M*S"H(Y!U9,YX(IGFQ7B)*U.^E!*U5_-)\6^/M3SJF?>?N&3YBKW^3354]V6< M);HSSG(U*=9H''Q+HZB*E9ZGDI5^>O3K#\8\)[XY739P#&#$_YYS*FG$,)=D M&'XZ_91A>JH^6RP6])B;H>.&U2UX1D*N__J#X\\,]2[#G.NLO*D"/$[I7;,) MPAUL!Q3I,[ M-NA.1]]2;(,S*;:=3DL;0+;-V-_D[[SZ2E(!I(598$D17$Y2L+>*$$X\LIJ- M+-DL.6B1E@K$5)@KR2Z<1T< 58@!J!BIPK^&P_G-A,?7 "_SUS?RKTV$9*;! M]%J:V"VS(RD_JE<'_GW)?[Z2N16T6:=@58?[FN" <..]$NK3GMQ #T! M_))YO9.>T5)L W\12CX[K.D>4<)XO+M0&F8/8W$=GKCTL0H7?4Z\L.HK&OXH MJ8WLDXO:)_'PZZ_(/@F;?;+39O,(^^20/4((K+Q\X)@ DU_OMLHY;E[AO)Z=:%;H M3&OJC<"91#WC9!1@^ED,TV<+K2*5?'A-R?(UXX[+#SQXD2J1*B M2UUOP'E51Z?&+H6*DB\P09SH1VJTB]E@CR;;]V-P'2_9(3"XCHH S5=.KTW. MIB:?Q1*MMCXHMQ1C!,061H HZHF(HY'@AK^"].%B.Y]A_#N-[>03:+%"BO,Q M:DBK9F8R,9A^E@7B=G1L!W_&+QW;"9L\1J;!6:,VH5)#D6D0-M/@^R&:5KF9 M13T$0WF$3^N2EDLCNED'2BX(T42V0&0+1+9 &(,O(E^TI1([F:)B7;$=V:=M M<@S!21!\.=88B I^[MR]3FP8FU!P-I55^AVT*F?,H6X8\:7 AL*]?DP\9M[6 MO46I/2]R6:HZFA&8IZ[*_J\_@.$^B"%&\9B'9)ACXC%QW.EPA7@OC68YLE[R M76J>9]E??^+D,QXEE40)=5'!ST^SUK:*+9&?9;%9L4)KV4%.Y>>I&I7Y9J Y MO(&2)C"CQ5$TK).2;BMND+"1C((1(?G9T_2!5&^74_P<0[7OY#8.(= M%>Y1%AXRE.KY*9J:+R5'-89:@ZD#X8[_^D/A\2<"NWRXYT>*=U3P710B'BFHX*?R#Z)"GXB^R1D]LGWHTGQ MG#$G$T*CJRT;+2LGL)D2$X?V"(PF 8,$PR/$$ADDD4$2.H/DJ)A3'-4F+#+( MLQPR9)WR,%.B&TUHD,"84QQ8) Q]A'Q'!3_W%"\@-US,5 =#U$\4: ZA$I/) M@B-FRVPXZC>."3#A8M$O:K+3X*L]=KQ44^XR)?B :ZEG HL"3#^+88X),*G+ MN*=FN[4YNC182J_ZK9:S! Q#,<]DXL>EQ%S56KM=M]50F&[D[;<@LN,^UV^= M5C^SPHVFCW9X=]1BBW%KY=9#8<>=/\Z4ZENSN)A"BZCH-W/H-$/@45W5(BI5:U4163&)/GE,I&P$[9!U58^ ME&L88XH33Q0>E10]P/"*AXLN?69EW&ET:9:MJ)C@]CPTA?,M:U:94)E$'&E^.7#2V$3V,@ZN6Y@Z9[T6&2=A,TZ^7Z4B2L-G(4SG:_XJHSV5D,$Q_Q9 MH"5AF F:(^^[]!Y5!T;F2&2.A-D<.2K 5&+37G)2H H\KO#%R23KDSEA+=@X M;,Y%/N$$_9!536$".G<31P\^]8/# [R4+M\ZJ>BUJB2 JI0M#S#\C<#AX,3= M"Z#BX*(%$C??H8].D_@S_N8X.7T'KP(EY0+-VB;M%%&53Z=G3M)D"3X1$9#>(V&PU4+-]^AR&@(NT>8 MYS,41T^JLF84AOW"<-Q<%A0?*DKH$2;19^)04X@(>4160F0E7-7#V_73\6:B MT*(Y'!$$(JFV]/9&4&'?JB<,)9^H@U5"@[<.WG]<>*O+PXBC\<$;3'5V[IUX MCJL.EV]+%3#\M/@'&W,\ UQC&;.&,7>L@/6BZSGP+\NS ??.%0>H7O QH'S, M6I,2? R8(5@0\/$8\#Z0:G$ZM:WYF\6Q*6"4F!AL.A&9V(M0+HY+#&8)O-_NTFS=A'8\"F'P*+N_:GG(^Y:Z:R'BM M9M#G(V!N\$WXC\=R:R \VTML=+0$:"%.'>7W]I?=IX+5,)LG,L0%$E#%W#X7 MHBM#][?HN=;V@T#5KC_9:/7UFATUOUD#/]D<(BCZ+_AVKKU]L,T-L?5;'Q?. MH9CGQ(<%0[(Z/W!]P,;V$+#B=MNV?R/PE/L]L!510WRP3_\[M1P5\N!O6]$! M,\Z5-]??GX3*F%8 M1)@0$@:@-^;#G(:(,K<3F0\;74>$N97(/!,?=O2-"',[71:/=-D%*7-B=LVG M<.P6NW#8K@^NQIRR-Q>%0]_>&.:U_2A!H\O^>*>^ZD;:_WD^Q]+'T.3L9O8Q MVW0J0]THZ/ 9>G@P#@-F*]RYP)/]16XCGA.7'2VG]YI9M_>?( ;]9 MI+KO0'4_L%**-'J8-?I=[%VDZ+>*?A,@/70@1LH^4O8WUU>75_;7D;-UD',M M9M;PK!9.I-(CE;[+:EE;!)^E13?2ZI%6C[3Z)44M2&Y92]DF9272[)%FOQB[ M941U R':HNYMU/MT"RLB/1_I^7#J^1NV +B.8.Z4:D2J/XRJ_^$Y,$A /,<) M$(+9K"?RW*\_F^K?F.B^S1?%SGT.W./V7*"Q"W.;DH53Y2@4[5RPEW8N, &^ M(AH[?5B:?W.AV4TJ]$["O ._L&G2,K;CWKA9$7?EROI^:C5_-6T6^7 MW["V#1/R#7 4))=_E]3$)?R(]<$V;![L)?%YF[R_SOT_D+ _SWH&DROA&"?Z MAI_OM=M,VF0%2H M_U'LB8I?=MPJ=NOY/5\2VJO5%-YFZ,>W5=H9>])M\KU^ MAC8[1RG@M?39]\L)OZ#/WA0.!KY4Z$J%IG=@=!]0<477MB9VHL6B5;O!D@TK M,<0[=:#BXK_^))[CYQ]I)A!5P/J(^^@J[>UG!ANS5< M^%F4D]&:UDUJ3AM:BAK5ADUB2&/:Z%M@:Z]:.TDTTU/>G(WU50WT%0R5: W7!5Y=UKF,66L-T/-XMKZV-[%_1]CKVX9A^S@OESH9S6N]Z:*E5;55 MCLSB8DU>L (#P1>!HD]Q?%^!_2=RCY \$@&S\ *S%X_]YN\7 MN?L4JS5:W96JNDA=4[(]#I_5DQDI.1(2$*LEG@!:NSQ2"[DL7Q66A68>5G@P M6H@U7@38;@G8WE5Z7\%PWI(;#85%JX\:.+*0[+H$OLX"/0@Q''%X+L)CN=Q. MX-_W4\SPR _W4_QP(0J"OD[).(^N6V2+GMZ?*BMMV3 G-<;I#Z;6[0'>IX"N MR57\:5]0IMJ2H:>:.F+ZB!,,(0:(CJ3P)R9^:&Y$Y'R+G&^1\RTL6.XV"NUN MY<:SC\JKH\@6MC*4+9GTS:!V@-8SZL1ZW1\PRNWTW_ELGG&T[ZW]S M6ZZ0?_;._/KO*"XZXR:Q"C?*:R)K5KD4::V2E>\E^U\\_TP<>0FKG%[,^>J@ ME$_R_7R6T8)90S &&J>>4.R"D_;NP*MVJQK,VZ>CW6XF4 @RTZZCR,[C0+N) M*KNO1#6F5$U@>=O+H4H^52(G:27/D.QV3"'S3![*5'N@LLPH32V44"UDIN4Y MMND:8=+[P&Z7SU_++%4_[=?8,H]@74TJZXFDW 1:#0_ &T8\8/: M[T8?-6KN\9QNCYGF%A(L%^+\CPC8A038?3W_;6XL\KV)3WF\6EL@$YW/-5QJ M)& $Q'H8]<10!S/@(D==E ]W>Y 78M48(;X0(;ZS9LK)E=F$,MH+$Q6'5;/F M]!!&TP.-"4 @P(#88[O\3D@->#]-CHC\@#?R ][% /7PA7G?SE _AXY4JDY7 M6+P MSW1@Y!V\L7?PYFH@Y,@RA#MV>\5YCER^:ZG.N\GE4])I+5WLQ_M:9^(L:XE1 MH^_/?:A-U\U.L*/PY#^N"'CQ JPV\1Q7'2YWN?LHA;=>_V*;X=,3.K2O7Q>< M0^#AI'.]T_I/>*'?J@O>3=H7@#>RMA8Q__)9A_"='E@_Q8=V]A\X.U2_B?K#=%?L[5#KM? 3]X.L[;-S8-M M3=7^=:C/3$6?PY]F#QYW:O=>J;GA '7R&?\TQHLX<;51]@2P#A$K@L *!(J@ M< (XR)\FV!$GKL4)]IE"G @$)Y!V"@HG"/PY\FFY!F(% L5/XP38LC\=WX@X M<2U.1)]9Q(ES&9T6?FLJ7#!\[&_$Z"9"7@N2E(>3E#/,YB6> MB=L6YU]\;T+FW?WLUI<@S:T.@2&K#\D1,@9W-K?U*:U[V> #*4D_V$)$XA,$ M171YL_$:HJ0HIJR(MORM2B%D+R)XW8>]> 5(^54LOK=J#)"21M;B-P7JI;$L MDB1D+1XO/C5Y+*H3\-!(@)"]^%UARDYL4YU8:A_9B\A>O+U^?@1[L5+G+:2: MD97X33&"U9Z^TP%K/I% (6/Q%"E*@(]@L:\CZDB$D+GX77'R2L^1J8A,Q=MK M9]]4O&'CMBO ;:LT'6GO %B4CRUM>Y0[DK/K&9J/+5P%=;!V9_Y>RJ)IG:_S MZT\4M+.9HX\M='^K$U_FP%(=]E?ZYQRVZTU[QATF;I]US"3.;;#>!3W./DEZ M;7\&:SK$#F8.(74;]7VTK_M?5^F=6^VM+2:S5HM*HJ7 MAPZS6!!+8E6K7GU<8K84W3<@PRRY_UMR3.AR7@]B6V;!.Y"]G-W9RLLT9'-LO2"L;D=MN3JG.SS= MF/2+!;'.+XLN0!ASJ(JDGID7R7O7__0'@?!J]@1U%^0XJSWA=^L(NC8ZI^L# M+0J1K$;SI)VB>2?[$A MZ!<-M\R,6ZN$O.)P.;<4U7R\.%+&T(8@\%]_*.IY=TK4G92_;@GCYK\C)M^] MG J^KVSB>>K"'Z8K26 B,.\M+F+;XB)/5$QR0Q@:PV32TF9$=!2>+W&%G2M7 M#\A\J9?>CF/?X\<8L]EL54HE<#X_3DIMB1>D:5@1&"\HPSQ1U+Y6^?<,S ,S M%#>9*W+5N:0W"[\\FE(ZS\"X*ZFE8(1>WJJE4^(O5?%-="#J7WO/XS93U4?>(UU@UJ M[!1;5%^KDY5(?%&0,_&Y(K#>M$KJB8S2*/UU8T?R#NB#4OO(W01T@',J3]=8 MWCS MPKK%'^2%1NFNJPM>4W-1 =8LE:)YJM5H-'@ '+ZF49'DWY./C\(7N<= M2 -*+%_%-WU ;#QBUI);R&9?M>X];QE!XV:9[,2$*W54"QY]PAMPQ[_Y!.+ZD=WIC& ?!50VN M)D-^:S#2I&\5VREN+1;+R+5ZS\UI)%^UBCV"3T5(J/F 6QM]IB\?I@L:D']* M(?-YC)5'ZO81S'=?N[=WMAU>AS9K__='@>@.,[F'V@8J$693YN+6S''SZH%3NK:JT+Z>^@N$#?ZM*NZ*-QEF+8@EH-IG4CS\P/.*=R:U,DB!G>[U1L7S0"==<5VT.I5D]5*SF!*T=G MV6&:90C7;#QP3ONW9AUMJJ,@S^>TFE%>_BRN)MK*%9ICO4RN#Q2ZU*2HW6A"+05 :,[4>8I M&MU7)GE'W6CO!;\W*.T^'I[_.1/K;U_E?05E=9[3#%=25\&(Y'R_Z+O.$C91 MDQ957LY;^21EK1NKL_N8!G;'5^/7)@V0E\'7D-R+& MG12;?X\Z=WB" =6BWR.:@GG( 3G*02U:S\D%4F[7(B6N/,6+="9":KU(3"!( MZ V'HT\,OB]X=T;S$4$YX.<<;NTS_SQ5]G!N=""*V8T!0]%\/,WQ)+,4)_5D MO^>:+M1TP$^.4, D1XKNIJYSL( >:(HAB7J0+/Y-?>Z?![A'S#*C&OL;U-B' MIXN09#@]70Y"R]C2I1_'O+N,.5WJ,OQ<=%R&,4X;I_I"S+R@IH*?'O._]1P M.1.--V@I9?!XV1+E;H[#+,>XM_)GQIYRQ;I-5[F6WF&2,VN8Y*>*0%#> 5DB M\D2&]S5^1:'R6^8$;X[YP"<-;TZAN\PJ7DLO!N,T[K?JJH=X+#Q>:AC%B=5R MK58>#99$I KU)JRK!G)YX;H"I#6/3S#>F5(XO"#[HMG_NR[(=C&^UHDEXHHV M:R=K6:YJQ@N,"V'*G*9VJ>>(C^.?6YL=M#3OS6$=%&OHPT3OS2D4%!_QM$+P MRQE"]UP(3IO-06J>Z>A:NHW12K-

  • 8YSG"0G":>8Y^80$%/3]_F#;\R0'Z MAZK]#N;+_VC&!W(>]#6SXC_SW7^TS%^GLC28+_^C&1_(,M%'J@J]Z+L_< +8 MG\$0,LR0O)C*??B[;81@Z/1'Y(1OW3T297Y1YG=_Y/3-C)381.+6\&P8\*-# MLK^M1*\N2_EJ6Q.;PI+!!+E#SEV!H%'V-PCQSH#F-H,2[T397Y3]_;9N?)=2 MVA385$RUOR_OVU"S&%5-MUR-'/&#^+A)I--Z%6K,'Y+WO;4YA+*[-\ONGI)[ M.!6''Z5VB5B9LX'*=X]>=U8#TMP=:$WU)R<6S8J [LLEKQE/I=O4)IYVWU^X6L:MY5M4IFQTA7YV3!2L$TAVAT[GEZ%:5R*?:8/2>/^ M:\/+!SY2]U[5@[^AL*@31UR_F:3.__P7_-C,K?HNZ*2VOCK['/Y$N[Q]\O:BGLJPF6_2OT^BM\ MCQVZC\4%MD7=M2[#='E@__:_M?G(4T.;SPQ+A8S\;T=]HS_5'O_XT MO#"M,0A!.PHJB1?>B]O\_TC"WQ)]'S7%UQ.N@VF][P@COE6DIJZMS]*CG@)4 M+?7+O]O+RGQ5PQ4ZS_?X\9(7RVJ&YYL67,F\7QFGFRM]4#/F.)U>E:UQ6I@P M,:",A.C.RHI=*FC%2 E/%U+11 N/*3:X.[E[=T:HTD6%6T8TE653J;+,%"?1 M*EBY#*G;NSB5I:M_+2$,?B9)?K9$9F7E*$ M,(REO5TY+HZKD[R:6_)TN\:Y2L,H,705K-QY3IL=.?QD&:UQ=$=5J%&QJ:C% M&%BY\YQ4I:ZV>*,C:9B5D-LEC)XV"BY8N?.<,YG'R"CM5C5U:E?;Q=:8;M1= M@=I]3G4P*?2$]B*+IVV"PY*PYX%L\/3&4NI^AQ,AX3 MJ-WG))4J$^8C-4(CLU1?5Z=$S:C E3O/J=:=8E$WVQU>+-B9%F!#9 M?8D-4L:W:X>\7S*)9-D D]+CMV+-EB9LQ6!%O = MF<\ZDY% &Z9&UHU4==Y*I\827+GSG&Q+PGMS?537QDY?$]C=:U;Y!3$7FEF!&Z=:R03/1=L3K I6[ER32-,: M7X],(AK=BC$3@2B9U8(B1'>O28SF]86#$##-4$N,(56E7X:2JG0=8C(R9'4\Z41Z;.H+4FW:Z@ZBW=.>U"I)K#,O% M%KJ5\?W@.(LIL8+](%?!85AYEP>%B-8_ZWB%_[[->SFZ CQ[+5 MP?*]34.0Q]F@C:$<$C?N24C=^">A.710K) I3X&S!M_P.U$ M.^0:CBZ%AN)<#O5D>0*>IB\#:T<*]9:A2IT/#8%K*IM62!V$1%V''UE@M>0O MGJ^KGG>O_KQM=@>5,3$+4NO]HS^%-L]^R#7^\\@^^^;H-3>>ZL92ENNR.5?7 MM]KQXE]:A7J/:C6@(&__>\*P[))A=V3PHGU#F0#&2N]]\I)HFL*RG"^-"J-* M2E.KMM:J#!?"O.O^^D/O=<^7\H.;8FMQ%[WW"ZG6FUK_GAS:NI@QE\V0&'+7@=Z0Z$=Z0U-O6B-\@LV3 MWT=L_.*2X(^Q3!GF^B.XCM@2B@+?$3NQ\2"*+ZO3B#;',G@IXQX(=.(9?]%' M[\(@AWS=3^I ?"9>P?BWLX++N1/$P-QOV"[%??R+/Y%F4 MSP4VQJWHB K>3^WOQI:_N5'6 !4!6J!H>WP(>1-HK[S%'[RKARQG/(8[.D!E M#9@PD%MS("908P,P#@Q=-USK]_;CGZR$Z^/>BAJ;50+/M\:2I.7;M845VY'O M_E"6'%TN#_;7B+[2MVX;?2TVD=Y]XM$[MGX/+\S5 \8U\$__=K8R]R2#%M9 ML9/4Q$HK4>M1N?)B 1Y%!E(^!0\#(")?(E![*J?>AI2A2!X6_'OSR_8CPVCG.GX+XWQ]/SZX>00OL"HZMK'YP ^K>I^\";YN99;6 M:W8#X;:Y>;#U#0F?((>=C8W@S\RG]3Y;PD.VS=\8S*O]]B/5 M+J#3ET'B-3>\&V^6BCW+T!U;OG"\>*_4^ N/$(VM$/^%#^0C3ER+$U\6P2%6 M(%#\-$Y\52"(.'$M3GQ5KH@X@;333^/$EZ6MS 8"05U MIU84,)=M*_(%@6#7Q._6!FQ*AK"S5M@]K-!D*0O-2 M/O.M-H7(K+MU?ZYI7;(%,1F8JW5\V/8"K6ZKR%M/*MM?+=[_"P_:OO;\"2 M2"10R$X\18JV>I8B$;JU3KK[K>UO=8+L1&0GWEXUKP>1O&DY2TP7(D: M'6>O +:MT9=(==]:==./+FU[@@!(SJYG93ZV5OW]7DO<:?9K7^;A$0\P#^\\6+R=Q1HHBNW"[! ! MN_@H/.*+MF?[NB_5ZORZ^9D2CJ03^9F5Y5M4OS*SN47/F1X]$._;O<]*QKK) MV6X3M%>[WC]5L&>VDRP-TY5\41UJSK PJ]::\6Z-K0HT[--+A[22NV0>7:7;^CXTEOTE(%VZ5)U-G/G M*LMC*2VO842"$>JP,7WDUQ\B^AQED.M(?+MUY/?0.EP6 MTDQK/A]I8KR=8JQP9U)58P=W\;T8F M75AR93@,@CE4R5+/S$=]?A& DN)Z7@V'<_Y.M7%<$5(9Z0$G+M%_OH3P9_P:/3B MWA5"\FF-YQ[#[+K"*]Y'7.BFVBH88:*WVNJ46!%O]5EMA'4$'".2=:R[;,X; M@QA09Y%??^@( !329@][;/:NR8.$Y_ZVPAL1XZLVJ \A*G=X$N,4YW@]Z?[\ M[G&P0EF!QM/'9S!N>!+J/!0%INK?R*^^^(2Z/89H.1YK)H;SKH-CW((6$UB= M'_7@E&K@5S/$4YB@=BS1?Y ."%[6X]8J( #N>0"I@CSZ._'HW^K)4SQZ F^, M5]*42?*8/&KK8B*<(BLN4*3 HV>>]ZA1I$5O[>/?E\((-$61"/[4C?RFP84 MTN\NXQ%!$ZK/RD#(>PMF'O_RFV;R*-=^X5*-[QFW=F:^J@^GS0BN$F.B'LG( ME!%6[JQ40^R)<;XC=@TN0> =AJ0:!/T59_.YS4< M_"KU%)?6/,%PJ[]53U&IV*R*AV<<1S)BPS5CZ6JF%P.:"7C49/298'Z<7KJ M97#S;/=W:AZN$*BZZYH'K2)6>T2TE^-D(XK)KI0-#XHN0-#!-0^19_S2-0]! M QG:_!\E_Q_$PH1+[_OW7)C0&F6'7;%"6'\^8!# M<3_D.,:%:A5N7DUU:IN4\\Z!#588&^S!Y+>[R5RA:H'<-L;"WU)SD8I .W9$ MBVB)F)J==0A1:/0#>+KBRZJ%,M^5\F1)3?&M^JA =7)ROS-T@3Z#T14Z_$1' MB#TZ[8R]I6Z.Z, F$ )2/WH\E/]S)@$)9/N+*^BZ\YR1N*JV"T8PY_M5#]T, M)W0985+4TCA?&4W95K:2]M0A+'L@GB/[++R?I0TO%N()%M"/(\:Y27(WTO"C MML);@".(_13.@HV@GP,(5!%"T.3\Q@4&;T[0A*>+D&0X/5T.PA&:\QB('ND( MZEQA R1$NYO)K67H3JBU=L)N32V$N#NRUO9U7 ^6S 2)7#]:5.Y3%U_U!/&M MB7-=&-UA?NS[)X;##Q+,AP"FHB[>T!@>_%DN66)2ZYTBRQ.4F9+:>UV)0>T9^_0F3S]2^ M4N1'TIVW-HX.+"X.O (X_!SV%9+A=WT.>[%4TFU].)8UY,]LTQC.R?>[9_#JG,#KSZNYQO>-K)\4N;/O=\+@8+[\CV;\SU9V5ZA:14G>TY*\?I_&D&&&Y,54ALY.R#9",%B* M\KXH[QL W_YGYWW?=%.-321N#=*& 3]:G]\6@5Q\F/O-1M,+.M=G::V>'SMF MM]Z:IAJ*0% H]XMBG_<0^PPHA5#N-QBYW\\UY,=)IDWM2P6\X=YF654W&W%( MJ\N3];IJ-89FI$QZ>A-E?5'6]R=D?4_)1IR*QH]2OL0+'MO]>FEE? -D\GR0^MV3[QU4>I0Z9\%,7*;MF-13&5T_(2%F_:\X7#K%R!H/U10Y$G*DH_ M>)("Q3CO.<894 JAU.Y94KO7TXVG5/7JT1Q18\*U&%]>Y(AX.F%I=#T&E2>< MAL0^DX^N.F]M&:'\[O7SNS>#Y$?YW11D-IY5B^&Q!\>3 MT[L$2N\BTR>HI@]*[SYJ>O?".O:#G.X^3_$UO4O51'XG@3%'I+>_=>&EP]\!.^=PC\[,$:.9:N#Y38TX'\$>=Q8M,90#HD;9H;4 M#3=#<\A.*V3*4V#Z PD( 0$(V88MZB'P"6:+B_>+0W_;;Z[5UPT+:(:0YSV M+ZE].60,0H9C NR,QP!UOE\1 K^]#P#^ VXGVB'7<'0I-!3G'&4]U8RG)=-N= W/:KOY;UK4&K^96V+Z1: M;XJJ>G)HZV(&L!E"8LA=V\DAT3>40U-O& Q\@LV3WY.#<7%Y\&?EI QS_1%< M1VR)1A,?"W@/7^2TV=):A\G5?5T!R6,^AQHO6 M'HBJN5;4@*N>JES+"2 >U-.062%7M&ZJ7&XZC^DZK5+>G)O;C%UZB1$1>U7- M3!R4TX7>:J*-6[E2AR-S>"$3@ZKFP^&9H8/XMU8U%]@1_3_AA7ZK0/[4_JXA M_LT=,BD/9-,$ NS1.039':KHXN1.=O?7O.?[W?W5U)IX]700L$G/MI%US_:9 MBM#14Z= Y !P)14H=-L =M"QZ+U>;@SRI03PX^$5^B;"AGL>\^#]X)(U5-U% M-,&MND2"7R["JW2EO"J6YJ=EQ79N\W6K6@]Q91&O%;KRDN$=W9+'L7EN-%K$ M8$PV_!0.[W-4CMC@_PX2D\@3F22)9:M#LW0>3TA4+)NL%E;3I')5)D7'V'30 MC&>&?*L1792'V0KP)%W I CYA!/["DJ/8-('^"3_>7KUBB#\P*5>G1ZQWS<= MH))T5?2]Q&T3*DC6^KD!>=3>N;G5]L[YNEEN[:%684/'A .^ ';0"6Q"W??_ MV+M5]F.]TI)/-^O<>,D5]+CJE/(58)63^/.^7,H)9OE1Z+TL/R^'W<#P4\9: ML5ZE'![R9&1!YU>-3D&N5(&5S'XR./PH?GX(].=0\M4T/L[IOMEAFC.F@;^$$R?*T)U%.,2:BY6[DN1U'CJGD&J+F&'!VTC#S!?F=*EBA2GDJ M.RZ=0UOLJ@"XF<-8V-LH& 0[P/B6"E"MD&>SP+0!_-=-$N.3](7HYT9ZZSE% MUE"6[9 $-,MV]&TG:+L=L_74S*MN.BJ S2?_T@3R]!5R;LD\)QLW]SRGG@J M^YN.K\K$Z=0T%D X;%E?WD.L[]R;X>'IT]W-<%O,8;WKQ-K).(;<:=JLEZ[7HM'#4'42[?MB9+ MW6;2;>'$O/?IC%O5JOT.P:HZGM$2?R M;KD<\2(['0SXL4HK5E*-MM*5J_-.,:9AIL^.\[@ZJ.0R2B^[\[D^&_L M0R^W$I(G$M"UNZ8FQ(#'9DA0&"NR8/)-G0-U^R;,#A\)(;K>//+F1P8:MZ<8,3_NLC)FS[80&1S$^@FJ:WAWD<$NEG\ MS3M[;^C]_-__V7[3UU-(6-_0#?/WYJC1%@F&?NJ ]$X=*3+6,V51P\0!>,K? MHNZ*2VMSL(E])JG-#,C?+\>5PO[Q(9;]*_3Z*WR/';J/Q06V1=WU&2=,EP?V M;_];FX^\XTF;SX"I !GYV]O: UD9I5=SK"?TTWB+ MTC/9?K/2*:VJ0/WMK'2R*A_%$D-7HPMNW6$K$8=.N$(8UK&\79E<2#6W%&FE MM;&ZHL2Y%*,K706LW+EF7^MGLN':3,#EHIAL*FQ^9 \5@=J])B;%F5%U4"]P M^4[+*!N-+,9F8F#ESC7=$6.MYFQ1Y-+Y=&>4T9W,(*,(D=UK6OD\.RY4S3HG M&V)J%1.F;:)3!2MWKEGN9-AD79LTM%F:T?*#>BL>'E8%6L#?KR3CJ_I2C- Y M3FS,158?LQ0VB G,[LIX/5E5PUH]H9%DHF;$&;(R+[H"N[MR@E>&8BE?PG$L MLNH 9R^::+%5(;J[LN(NZHV\U9CCI$E&,+:'"94EX#N^NY3%._0@XJ85WJ%M M6Z4C], I@J7$[M+ZI%6;1@?C#M\:Y:?U<EF9<6HZUS%Z]5QZE*C";B8[2[OY1BINE9LI'LLU M.M@\@J6]24*O]'^W6?A?[ DYMTTDHU(LJ=&:7(K0C59:;<0$N)0ZFTJY?"H7 M!I2P=7@I])K&OW%F]^!D;LARQF-H!0#5!PV,.70EP5X&4[? .4O LVI3\/S0 MO00NV,#0=<.U?F^_SLG':^KCWHH:FU4"S[?&DJ3EV[6%%7M[#+0_E"5'E\L# M2.(:X;?>W71MX6\K"8;T3S"]ZI9Q15-@?)F0WN M)@-[; KN9YN.? ECY%3FO#6;H%@>?(+3.V;Z8I_X1Z*!;:*+4TO^O?EE^Y'A MCKZV4>!>UO?WP,TC>,:#Z-C&Y@/?=/ ^>6-@;)VJ7J_9-?9L<_-@ZQL2/D$. MJQ1GPL^?-K_9VI^W+@^/B@V W&ZHMOD;@T?*?_O&& PK?6D'K9GAW7BS5.Q9 MAN[8\H5-HKU"XR\\0C*VK-AO%W&0#.)$$#CQ946/?:@:+=.WMH',)TMRJ[ARI8"1'2#/[FGG==P/I982GF^/I MXGKY"GCR:V%\"] 8G*T3%)*B'Z657]H@(;V,]/+-$?4(>AEF>"VDCI$Z/DEX MC)=F=$@A(X5\H)1!&\L0IA]HLF/F\@@>)QA:*LQLY<2RX0(BI M0Q%.P,HY:V\WNV [.N^.M,/_Z,.E.NWWG+@W%R98S?EOGDH-S*[V19]XN.%V%M07_>!U[\^[.47)-]>-=G<[T3R<)1>,K2!81MW! M^\'?C[$AO(QZ_[01%-@8%D1D.1TPU16?;LX(?K&8S6<,K/P$&P-)/S&1W68* M_SP<8GZ6[Q.$_2/8FT7*, >RBGR">\].H%WA[:[P(M>?> I]1EG:XP*9P^EV MOTORO6(RG8P)46]#('<;]9Y]-PBJ^GNDG$I@]H&[V/X^SI*0#V<*!63/")3S M$)C0TOM&E*J4-O+D@A.98>&$*V2I_5U/RYA,B+841ZK5FCC92JGE M1$YT86\7N$M03]1/R)C<&BJ/ECPYT *Z2/)D0!6&^1Q9"_/+=FX@V-7Q:DHI M4*"/R)Y0*'ORL%;@PQZY#=04S_/U9_^HU])ETRQ.C9LFS?%BJ"4Z(U,@/[(O,4I;X:FXE0\\")F.]1X_[\*Y2GN5/X!-$).W'CN4+D[AH[S\'Y MG':#PXW,@EIH";%=MCI*K;;28K _)LST,T\,$=T7PCOC'H1P%3R/[0YVJF!O M2P^2$0HN-.XB5_1S]Y]#,D?Z &]%K-Y Y/-8Q1PUHA/1T5S8;QDZ/]2%MQT$ MI'O.+?TTU^C[J:TITA[NRS BZ2_:J-NLNN*8@V)T[*$T'K94M,+0:10)VF-;Q<6.]^ M$V&'@>.1&B($\]VOE/ZZ$ZWXHR4AF"D=Y*9X;DK)F&#K0+I!_H M>L3=BQY8_M_Y?*"W>V'8OK>#/6H=_VX:W3(%' MKKSC($-Q[M_3E+P#(B%144Q9$6TY)/;[I@,^?!T.#^Y]R]'-[_>4CVZL93ENJ_"O;O%H21MR]>+(>!'(AN&+>K;_YX M6T3)L#LR>.,-B_8*F$VD[4;$2MF\S!>Q7&02;WE(M E0!W]^*JI &4P$!4S=!$J[LK?.XUE"6[9 $E)!_2QL2:X_M MY)E!X$; "EK;3Z]Z3)VL[S/Q.LL&__,TN/<8P)CR+N9K,G$Z-8T%X*\M M POLEM+^A0?R3>%G9#LZ2)3%%4[CI-Q6,T8ILCA>S?D.S:+D4;9>+^0*9RKKGVQV? L7.=Q5 "_C,% M)B;@KS]I?KL_=75KFFQ?!]2"(;OAN\N&X>-<8ISL%@'Z8!N5S$C M B0LL?N&WL___9\W^S0?2P"Y_V5NF^&W?O?>CON M?OW9%[.!URRTC>EODGBF+\3!=P>\PUO\$K]@5FAH0N7W?XUR8A]WO=^!)@!J M27\34%PYS0"GOAO7B(A+\E^CYJBIMXJ5(,SPK5;#*C)42R M5,NZN;'(*H)78.C=[65EWQ@6V^%P=:'E)6XA)E?L)%ESP4KJ_4IA93M6M]EM MXEBMIB2Q^*3.E6-@)?U^93L=,_-$GAQ% [S:J1G$MRXDLPNX,J=YRR*5(&8YO4* M-RXM,*N\LJJ."E?N/.?($JUQG^K6>8SE)F8A7F* \2!0N\_93">SRD2HDGP] MS58SF8R3Z;BN$-E=Z2[M>)ZQ61=/)TQL;,3E2(*I"O3N2B.EY8'6*Y.OUJHM6=1^/*J[=Y&/-27*8-!&P? MCYK)K&15\V&+3V YIX)E*J0TK>[C4==($XL)GLQRLW2T9--SHA=?[>615JQW MEEJGR')J;(FQRU5CDA)=(;S[G/GA;,DP/;S+U_E>>Z"E$EU^L)>;,4DGYEJF MV<$Q>5(=S56SKNGUS]A9FC!((UUVQPJ_' K-> :K+V!;9X)X67KVA,_;&$!V MQ3N2$N MDJH%'5['E!O@!G'=Z&OK-$Y/Z"W2CC-M9L=XV>AF^7"RK@IFS+'LN3H_A7V03_ ^3HQR92"GP.Z.-M MR;N"JEKAIK*JJP3G,$Z]/L@-,_-Z[$*B=UNKVDMQOMB9?A(;V)BZ.+7DWYM? MMA\96F9K6Q/:)'W?EGEK!6XEN=W)NGJ8\N_;C//N6 M8;5U2YAK' #IW9!I\S<&+_W;MZ)=0)&IAZ5W?Y[O^/2G]N:UQH!^DTI;F;FSG:[_?/>ZA?0<$B3Z M6%[.A:NOMH^+BTSXF=F5F4-H\T9*SJAFD*#\($$YLAKP\ELY^Y6)HQZ@3OU< MJ6J#-^B#[W1DT0QQ\-##?_]5[V(S/JM!\XXVMY_E3=_#*.]O[N%^R>E];-[7 MD+;K")>OI ,L7"9V MRO@N('1Q)^M^2(&DXH&EXK1=-@!S%(XV,A+@_Y)X[DTV:)2X?=L0.FBC$EZ: M@GR34(E5314G5J93J0I> MUU$J^D1$+C@C".YK00/PX3'FLWN6P4+MONC70:5FMZGJ_!JF)5I?V=A?U2*5:*/KW@E,)572Y24_2G'C17@QI_*L2$5C@M<2-4P_A0GRHA,N$5(1 M4L]5K?LU4BU)X)R2,1_AK5I)BQ=*R4ZO>"](%8?32":7)5;(\@T M1"H-D$H\A?&/^X0\=NSMUQ\H5K(4JL/N$-9#A=L"8?8C&_]"-CY?%Y3F)%WN M:S&1GQ5P94:;"A9OQ>Y$)64QC ^WPO4\-Q.G#56M*%1-A'6(P,:/$$\D?6$; M/_"*Z>Z.B-RM37":]0X .)CG,6PA#X9X.5O6\%J[68@6[L4FL!/SDAUSJQE. MS82)H:GK:3(" 0BM=_(I'+[L?'J$083!;]OE (-=?M9GBR0^U,1TNU=@M$;2 MZ=U+H&LJ4PE),PQ9*_=GL\S K1=910$8!'8Y23_AS $>],^)UI?MH0R;ND'> MJ^\"=W0,S$5)T?I1;[J M*N%E6[D3Y:=E5]6Y'4N86H*7J4IZ61WARYC@M?,/AY_"^#[EAZ+\UXD=!AGD M0;5ACO,C/D9U6)^K_("A93S?+0B-7D9*Y./W@NIFF>R.^'A9TF8D;\]GI+Z8 M3&$/*,I#=93^N%$M C8"=B"!?9QS\C&PG55/3+%JAN=$V>H176(XCA3NQ5<1 MIZJ;D;)DB2N/>BVW&B\Z5!QNU\!7(SRVX5B'/AG.BW1QS58'QAH(!@X,A42+A(J9%D'$85$/B MG8?0IW(84V%+;8Y,-F8C-Y(J]$?WDC_(6I8[K61Z')?.%KE.,376J!($'C#T M"9Q\HHG+6_H(>PA[)QKQF9G CBA)(3EY%)UUZD8+6ZKW8HM/NFR>F O),N]P MV>6L2@YS)5H!V .V.(,_A>GH@;;X>8?\W;A%?G!' 69?&LB&9'_2 FPCJ_I3 MP_8TDGW;1/8F/63A= AC ANU;_K) J%=CXF(RQ-YH-H?](]M3L.Q3 =K\+A( M]^,ETIYKO*.@_K&?](]=/X+7/E9T;&/S@=\^UOL$M9A]^&9FJ,7LHS$&M9@- M*&-0P\R ,@8US PH8Q!B LH8A!C48A:UF$4M9E&+6=0Y-(A'TE&+620HP164 MP)U(02UF48M9U&(6]0,]7WXX4,*%6LPBD0J02)VKQ>P]'CE/P.3SQ-Z:;KI) M3J/*NI_7$._6.*!')$(10M%C]6D] M&D5CG4S/^CJ[Q!,3*I?B-,7)I%R_U2I $1-Y^(Y.1UBZ%VV^&AB"!,D&#IA3 M^-!F\?E;M!ZMC8#A6VUFX_V2Y@Q=9AIC[;&AK[NL$N$GG-VGCE#@[O&C,4'= M]X/2B_5HI.4+XY8BM^@A/^OVN)@>R[%E>=U.E7VBV0,J,A'6'A-KIY$F]'<@ M3>SSMUS]$FJ J."2^VSMA& /Y4A1 AYKDTUF="65;\3\]JE@'SB+\PR19I8#K5Z(MD9&P\FM,HK?R#3R1.UM MC(9BSW=\(NF'6-=7ZU!Z-.)2M%9R2DEYSHO*:"#72G9U*L?\)J/44QA'HPL0 MZ (#NH!V#ST:=#9-3:RYU*QP3C3M-"/I3%V6%;\!*/44A6,U-\*Z8:?&(K^H3WU?_U)R@-YW1QS MIW?FWZ;2A082@1IXPS8H9/[#"G=K.!H8VX>47&4"^>2 VQ>P_-IH*2QSJS4'"<*&D<66^58TQDV5D,7(,T[ M6AEF#T@\(; AL 4WYWNY\J7CP4:M)F9UFD['\*71:Q:);C<9J<*I M ZH [RDB%91B)60_!\O'/,%2OO1Y[: 4(7VM4SX\L(VE>;%,XFT<3VOS@>#J MI8C8=@4"]^J1GEAV-V/[#PKBW7?\)JA;=% JC8[?HIU(5987U5R+)Q4;+Q*X M2QD^BKQ*_2AU>8,8X0CA*&!E1,?CJ&A&Q-5R,!>T!(851XTH/M>H&,01#9O& M1,(7LW4#XT\&IZ(H,"0)DDU\9X<^'C+F?+6ZH^,5F,O5I%(XY]@:W78&KL8- MZ0KPU0D"FM.7;GD5-, &*B869)2>1KJ+N[[Q.:N2Q>) C[K1%=&@/.EZ,.W*%VB.$'H2>0%05G1 8HL)1@A^-#4Z>&-E,.)Y*S^H> M>FBO="]"[@L./59H.Y!F;M"H$PS+]RO// R4D&0X/5T.A!9"UC!02H542JGS69M=JF'.TR!>3TB&FR_AN7G#%XN/Y5WLE#.7S(8Z0TN]LW ,A("-I"3_ G&0)B"G\A0JYH MA3:O>,BE#Y3_J6/*0K(:3N>Q0C;#+7'5S+-2H3V!!_K/:KF1!\@_S,6LA3\N M@]40 K)5D4TXFOA%^C'2%_^2:)K"*M.:4UK=J',M'!,7#1I7AUWEUQ]R-_CR MUS'T>PH4M8_>S"]$[7PAQ2CY-"[Q8J-?F3H1VRP5JG ?_QZU/3D/$L&/UN\7 M(GA?7V4J8^RU<-$MIY"IFQ-97#= MN:POGT*N:@]#_0]G,8-+ *,@4/R[G'IZWS^G)MIR CR).G$ $>A#R/G73U%7WZ.^X=I"S:&+*TTM]HAV M.UGF*DX,AAN_1_T?I+Z^QX!. M6-2W(:7@7[IA69 L-K"//0DT'1V\,[@D_%<^[TFT;KBRZ=U)< M5'7H*L#%?N\.;S%?AW>29,D!=Q$549U8F^=_VCSJH]&>?$][8I?VXLO&":^T MZ0JVO@ !/M!%V_^^&)H;NC.Q1?#/_:$X43P2BWWO/#O<8*%O(&UZCIGR7)XX MOL.P]:A 94P-:XN5VQ6A(5D', !_]I;>/R;@TT^6SZ%[X,MGW=9. 84(:0^_ M!+\S%W7'4UPA40=B+T[ZX&W!7_ F$"O@KSY08"JX(""X"Y3SAL#^C42H7$) M^ZF&]!0"']@JN- 2P&U@R:]X$%\% "Q+YLV^/R5I^^@MF%AW?N6*;V^WE,( MN(.NK.OP_Q.HN'58]F""E_$EQ_^R.H9B(ZD#<'W9>Z47S%X;BN?@,MB/CH>? M)*F0KX! ;\C\*CG!P>$V4[^6SG#I\=YLP?+Q-"A#_ZR+A3NCWR>:& M'B2U"18?IQA9\LT;>V_H_?S?_]E^T]?0+]8W=,/\O8GO;I%@Z&?_2"_4J\A8 M#^!-P\0!>,K?HNZ*2VM-$I;U,^E>[/CW2XPX[.<>6?:OT.NO\#UVZ#X6%]@6 M==>!94R7!_9O_UN;C[R8\.8SP_+0_-N3=:!RX;7?7-5CH6U,?Y/$,WTA#K[; MR,);_!*_8%9H:$)[_?\:Y<0^[GJ___85^IM\[/JC7W\:GND%-@]H= /Q>2UR M$[?Y_Y&$OR7Z/FJ*F]!RMA.-XZK#-3DLR@T*>::0(9J*X!7N>'=[63ESHM'H MM,'A>+Z7=LKJP4>FJ4:; M3@37*=$Y@\D5%(':5,.E:S2W9/E\,Y;B,::<%^VJ$!;P]RLCL]Z\ M752F(VT\SDICH*#"\N:%%05C,^6HKY(YC>W5T5Z%Y> MMA8\-L28K#+-5-->4^N=:Y(EWJZF6JTYWY*9L%II:46YY@KL[DJY(_%*;Y2C MM+*12(X2XR3>[L:$Z.[*<1Q+XGVM;&JM.!5=6,EYLYZHPI+3G:45M]<8E'O+ M.)?N)08I:>R6:-D[E[ZSE*W5YLD%->)QD2NVD_'H4N]68O"XS^Y5DT(VE6HI M(QY<;$0.&ZR=%+QD_,[2:791JN0&-,XY+%VTI6YL1,M@Z1Z66F(L'V_GL!5' M4H8HK#K=$?"!!6(/3_O=*N?9,)C*Q-;3:O[0#+5"RE:K4=[>%V:\_R, MI?F: X%'[[Q3OEW&QE*$$X[3QG:JQHR9+:=CFRY(ZY@4R/ MNFNQDGRSOU;&\)3PAWG>H^X&DQJY*/K;0DOBR,)KT\0Z?H/+SF MSG-BK-O %PP>P46J(#I4#*\D%NX^B!8P)0?$JE7FU>J4G&/:<#D3JON 1\2Y M6:58(ERN56RT@3%#68H$AYF&WZ^TJ66B4U5S4VVF=E>=E3LGK2F\9N3]RM4L M5ZFM6#./S]24S*DTW\].X#69]RN%6FO45$9ZCGI&:5&:]4&13H+K85S36TR M&0BK<74O1*=T0XU0!6;)D9BSC+>2I%B+[(>HTN^EY8I6Z_.8X,QY\-Q&L5G= M"]%%829I\U)FQ>5;Y23+B&%V8.Z'J!'+Y?+1J1#ATME^8]XU>A62E3J$TK!1.^J.Q*]:H^Y8F%F-OD661B[-64U# ->[0-^T6Q& M)3SIQCF1660PBDS5"D!0B5<) )9GWP^,^::[]\6>T%ND'6?:S([QLM'-\N%D M717,F "7$GY0#WQ#EF+V5ZO)"]@SAYJ-F#?6.SG"/*_S:W7^T-9&!O?:A8"F9M\W43>/X-GV MHF,;FP]\R][[Y(W]OW729+UFUQ>SSD6XG/XJ?M] G,N8-U>9L+/S&F'ZM^(R?]1%3^(XOT\"7G&76M;QUR'=FMLW; \_#KZ&H:[[D517T/P]<5R?2^6=WJKEOB*B3FYU\3J5SUY#'+*$\V,I72SDF9DX8*X^K?#(Y ML^*36)C_?@NFEW0V^&7SV;J.O"8#VLYEF.CVP -NL@;15MY[3Y5Y+]$?QB4N ME^?$KFLMFHO!N)J)"90_1S*"[QL!?Q_>R3UM8S=$V(F.Q2YI+HLI4E"EM)$G M%[R@D;EQ+#LTA&B5_'YG[0M@:H$K+:Q9=0M7%2*H\T9>T:YT:W'Y:5N0UXIE9_]Y491%7T]Z[:7V;#U< MRJE,E1;X12R)+M\OF.4&715HN/603V%J7S@'N9Z^@"1?FBF$>K+MRK+?(P+6 MMVQU".B)ENJ5Q4Q-Z)O:2V^!/'/4Z5B>V,@_1?XI\D_WF="5-5XJNCBQ8Q.) MVT!FCQJ;&9-6+%4LAKETH3-/&)HH"$E78'SWE,)QY)XB]_3GV09GP994YMEZ MM)@;X3-[U6'B5CS1:U8!MJ!W2C[AG_0K_&'>*8S_BV9_Z.WPDCR7=<,CJM]A M2%)MQY3]^E=H)_0!0]3SGRU"NWV 3NFAK?_4U%K"0\>;R-D&7GMT5*(02ZOC MI63C":[0(K1\8X7CL/F)-[DN'-[7^1QY_0]T'!;M_)>"5K.F1=I=RVQJ:4,V ML/Z27:5,V+3$FVQ',/NFX3Q4A. ;PM(P[.UF@SN],)#SCYQ_9 'L4U-IT[#V MQ2N9')-E>Z5&GLMC9;R7K402(\X5HG"C)\-/+'G!X5S(T[\?6*']_@L@C9(< M%L:T4I>K3PRRUW73SG"I "!1WI2["/587OTW)&#K[![RU>\XS_SE@+%SB,L. MF:Y6*8SNE6=@*U9@04_R-E"SM;EJ!;Z^VY=K2W+ MYIB$$)>O:AQ=3RRY<51HS)8E4\$&,=A'%CAA%/D4C>P6+/R#O+ ?Z(6=AU07 M1M@E?; 3$98LQ FLJ_5ES<&*&EF..],9<,X(KT,XQ3R1D=TI6?_L;%CW:ZISKR,>^$-[^=-"32>TXMV-MGGEWFG8!436&$&9WZ%/2^??L+#>WT0Y.7?QLN_ M*_#])#/A0+@5R&*T/*RD8KBZ$/,8FY&DAE2%<(--0/ G8D]"]JY=_F^(0DFV M]]D$*#][U_E9M((B*?"*),'+M4:+Z@?;DL\*GS,2PJ3D:&-K,8A8I7L]6 M8UEOBB$\$;__%G._?JK1UUE6AGVL5( MT=+4%%;OCM)S=4)4U^-1B2<&WVTNA-QXY,;_=)/A>Z"KJ%:U4EW$1-Q)HC1RYK]TYI_\?IZ#T/SR%@,R#SY/.X:!(I(,!QZF#*0F^CG& MP'Y79A-;E*%30WSFO1"Q5+(7K\=7/#WNR<5((S6:%5TXU]ROH(H2**]_@[Q^ MT 'VR%O]=R$U370UHM)+E?$ZWR,;I$Q:-#PIXS=1PY\BA^_V_WISUA]C9/SZ ME4O.&#Q<_RKOY DN?,AC!E[%K)!HA[8&&H:@OGX*N7)H*,YE;XZ(N)XO F0) M_@=VCDG(5>WA$&P>L.K ,UB\4H0$N*JD@KMNFS(A<3K5@8J \+8-^)=I+( ( MVK*^#/UG0[1#'O;VFU3D"..9GTBJ99MJS[%EB1/-":"551ZD? K6G9ZE EJ9 MVQDQVH=5231-@>S3/2J12K"X2D[GM6).GA8[U5]_F$CD>5]'K\/)& *?Z)!^ MP+QT)J8\5FW80%Y>/R+\V-IZNJVN\H9C@X]EN,)CM?@<:@QE2W[Y+A"AO(R))IRZ.6I12LDJ7-PHXD$GM2$J\'-+1E:OG4-9;"9DG>8)IRE,1L OVUX6+-Y*^]6IRR#4<';;:!S>&HBQ!%'KW MV3J< \0;:@ECLKDM()]J2/[-;-D M2?5*P T3UAS8UCJ!T9R__C3@B[]0XF\3L!B8"LM_/"WR1CW,?2D;F,;8)\AB M"J0 O.CKU]>DLFS1=FP#*"K8W-/R+@4_-V71 M(&R2NJNB=CWN?>?@(("6>( M;Y/IC6Y^HQ*2CNDY6P(IK+?9AK&E(>KCWHH:FU4"S[?&DJ3EV[6%%7L/_'I_ M*$N.+I<'W& 7D6=RR]Y\!IX\!J@Q:0/-A'O5@WXD WP '$=B.IZ7^T)K?E$ M*+*L$N-EJU:V*;-1;)37"DR= '4S@0*_1!GI#796 MGZGKJZ_MR+ZAZ^+4DG]O?ME^9!BN7T^5'XL+S&/WY,6LQ'1Y8&_;F9AG$'J? MO!T-;YN;NV[-J/_U#5LX$GVFV,]<@JT1]ENWA#@:0)%>DVGS-P8O_;L'P*!A M+J#+ZZQ[4]:](H!WUUQ3W[OQ9JG8LPP=;%COWOT64XC][QUC_GY35\- M_]170XRY$6. ^T@CQ@20,>%G&B$FB(Q!>TQ &1-^)C\]!8,8@Q"#&//&*D-< MN1Q7#L^WGNS.G-W[[ ,_3C9/C-TGP#5ZI@KNDY'UN0S?%-Y3G%C8SHW98RA[ M4<_CVS1DCR?A(?G%CV>[7V#.^U=>P+F)M),BHIY/:UOYEDI;4?8K*_PL MA/EFJNPSZ3@7BBZNB;X2D!,[,+Z3B7.1XRM3$XG%CQ2+P&TTATO)=X^+7=Y6 M^1(2ZB$G"N"*WZH-WJ /OM.113/$3219^N^_ZEU8&V>UV/:ZCJ7F M&R$W/+)Z'2,%YKWNQ3HYP7'Z0K:N(TJ^,@JP*)V\;\$4ZAW9,4B BA !+)X MSF?Q7+<>Y1QX^O7'/SP1ZGGEBA<>O7JWS-75.C;R<-$ MG'ARZ,3"'!\2!<.R4J8Q3OAG@@ ;ROY1/6-B^<6]+^>.9(M;V*8(=@AU AS) MK"V/K9(Q@6]@&KH.OIJ%VDJV]G7D;!ALAL&!W-1!-N5?":X1#A M\!-#[O:\/:O-/#Q88]_D8!QU!O3#ZB&WTD4*?RF%,A2VU.3+9 MF(W<2*K0'[EW@K[29- =#;%9FE,-LH#+7:WN:!!]L)H.)Y]HXN/CP.>RN1$ M$0"/ B"^#4!"R,P$=D1)"LG)H^BL4S=:V%(]O1C\N@#LYS1N/AYS!5Z4%^EH MKV[E%0,"D/[UA\&?PO2^ 9MG=%GN#WQ'>;V!"]U>G0(!C]^>(R!RJ_@LHLW= M1F*O&3I#I+B7\"J2BFOO,8]%AY\3-DT8XYY7:@BG@O5?:W/?5=&A&"J*H5XX MACIU3%E(5L/I/%;(9K@EKIIY5BJT)T7WS$%4Z@@G\I#BS)B=DB7@4^KU#6C> M+'YQ%C'RQ5L;+,+8AF6.#G;YJ2J.>BI>$SP6HY]@#H4(?WKDL''FBPNB\*#JN%J3C:MM7I#,ZSQ^ 1N<+0_!8W:M\'] MZ! H.A+JN2:P5;$<^AN(K??;/[!5\9MNR*9L.;K7;!LV1/[]4$'30/@CMU3& MYR/)60ES%W'12^W7P9*'P^EP;FK<11@4"<%EA2#X:N G13T/'C3[ZT]%!I;Q M1)[8(4D=#&13GO11?!/%-U%\<]O]*QFP=Y8#7JBGRVL7,#8V --7WK_O&V^U MR/%2*SX2\3PSG[9LH9CKC&)"%$8R(]%]A;*WIW"B.*5"%H_+UYY K26=9EU:Z7)DI,7]#QJ MMXGEQ(4;%OWK#\N@DYD_)2QYA._@'Q*&0_VV?(=03[9=69Z\UHW!(7R;H7CP M=,5%CE @?R)8H8@3/(=S#[X-A.NPGMKY)B^47*/%5N%E/AZ1JQ74[E+I*4-- M; S:F8)#Q?IV52!PKW_6$QO9[1]RKJ'3*+(;&"0=9,1<&CLW<1"^@QU2;F-D MLU6K:.6X@8NV4A1[O NQ0_G8V;5H=J=+HY@X@L_].@'?@4^.Z6CS2JLUXI>D MF8B6$F.^$F(AQG_GJ8[$-M+9;TB3HWC2Y/ M+SI,AM-6;IX&Q@[A]8X@+NTF! UN*"8:;&OH)L[$\:B*9%C2-MMR1DOPV(J0 MLA/;DA2(*L^%P-DKN! (6@A:@7AD5[ MT*+#%W8P[@]7*.'PZT],&CF6/0:>!#SO#.?M C_"-D)34YZKAF.%IN"^AH22 M"RBY\",\A0J0=A,.]]OJ5_Z9VIVON*56F!-)?FP/+()QK*YE K5+0C\ARNQ6 M>Z%T HJ'/HP'<#1:N!46X;GVE,O'5(DN=&9NH>6A!=C_D3W-^U$" 0'FD>SZ M8P'#+5):A,-'0R[1(T=$@VGV1C!?3:ZM^C"%T@8H;7!H=:/8[YL.D&4HQ@!. M??#RHNJ?()H:ENI-:T&) Y0X^$'N@&0IBX-:B#[@A+'4%-P3!+Z#P^UDU#Y?%WWO8M2>5 MJ.)X,A4=<-5P3"AI(1 M*!GQ$-['@5G@I#R03=-+ \L['_V#;*4:"0ZYTX$=E.%<[)0]6!'7>CHU!$R 4T/ON M!OXJ)BCTBR3EIYEZ^]K=U(>B* O>8,)B3WEKBC4^__MO7MSJLZ6/_S_5,U[H/:94S6G2G.X*.(^\]OU MH.+]KGC[QT)H%4% +BJ^^J<;-#'1[)C$"QIF3NUO8EKH7O=>O=:G?WRJMV9/ M@1E!(-RJ(WFXVUN,&[#V.U_#Q._98SS=E( 9]0?_)HPU9NFJ+&'_P+W_"U@6 M*TP,^];94Y2]UHV_):[:!8/*91-%"9?[=K]>D&RR-VH,"=K/_A[%'0BSO]^. M;>Y*KWYN=O@SF@3H:GW5K&$ M?T7C,\,F-Q;]M >K#!<0=;1/EL;M/L9.6X(]_S@:0\'LGK\H7AJHSAY,3 M_=^1H,N:7[X$/Y'DY9__@__LYB"J0#"1+$S?O)A"$]Y%R?@_+V(11+B+!N:. M0F1LQ_3/F0.&>D4#;X7>O__]7_LK?1'FJ*BKNOE[9P+W2##U V32D^X)B(Y, M("A180QG^5M05X)K;4G",$]D;)>Y^?UL1BD_/&>8?V(O/Z)U'-!]+JRC>]3= MZE)4!6/[M_^MW4>>V=Q]MFT_^>UC&2T!>O:KIWHLM'7C-TD\T1?BX!L=I?;X M)7S +&QJ(HO[CW8M?8R[WL]0A*$I55]M6;8?_?K31MJ* &/3R(!K]DM#M[#/ M__+5(.,]R=##TWG]S:WN%GGFP^$Z'T,%:I2C% M;475:F=NK A(^MCA///#-)$MFJTL7Q,VBMB3Y\F&S YCA_/DW)9KMRF"4=S, MJF>K9672:C2&L<-YK@N$JHYK&9Z32]/>&,>5)K% SSR8I\&8(Z&95%81X*TT:7-+;1-7(XN2SD9I6B M,V(@D^C#Q5=JFR31*"9;2BE=;?57W,PLN(TA?;CXE3#?9 ?9DL73<3JMVT-N MO5XTAHG#9Y:9EE478QN53S.)V<9.T1,^C:Y:/WBFLL)+]:E,#+EYFFM6K:AA MV).5?RG[&YV+6;U1)MNRN.XB(2>GBY5M0"O"'+X]AZ^E59:)BXK#=.*@*A.I M-L,.B<.W9UFE.TDE!PP7+1/*1%%GNN >M4P51B#<*EV2^5)JE*_7^=EL8++' M[,TF;D99?9 M\F0W*N/-R;PU:[#'[(W1L9MKWE;:N*N:TR*^6DF6IYP'*QIW M>G-JDQ493N#&0X(JS<=ME3VF_WNCX6B=!B2)__>D";"HLP=Z=[YBJ6Q8F M"J;IHNW*"NZ1+ S&_^(4I9ME$V "PDY!->[6J^O@7X65Y\CYO=X1M9PY7)Y; M&]<,8'H0C64XT32:YVZ:;?C"E*J+RJ\=:S9J1DGUAV*4GSN&7%1*';V37?W" M -Q&&?#AMNF 2\2L-PCKO1W*AUD[NW@MB'F8D[3U?A\\<0Q'Q3M37_[$?D*$N'#8'A+:N_%NZ'"R-)5QP;7B(L_V+OZW_O,[NYE9W/AZK"0 M,3=B3.(I'@L9$T#&A!H34,:$&A-0QH0:$U#&,$_,7Q$Q0L:$&A,RYDV5$!5R M)HB<"54FH(P)G1KS&=K<>Z-<, GST<;JQQ(FE)A; M20SSA7JRSY=%HQHR()VI #@4EB\&"#^6,*'$?'47]F,I$XK,#S4R@=L%,!^1 M0SZ%%EX1H&S#%8CP.QPJ37"]B^#_[]_R7>C+FT#E=9GK<<)\M1'N\-\S12Y^ M-'?#UN3K1'MI^ =)N)=H+Q2LNQ&LEBW8P H%ZWJ"Y7O[AQ]&G \"QWI^X-Y0GD)Y"N7I=O*TC0!">0KEZ9PG)8\B4&=&^V"M86V\ MUZ.V[4(;/N-RL(X]U4W((W8M6\]_SOI8S6E(3]MT*V ^ N9?OEL5YL#[/KJ# M'0-\]"MTQ"XNK2R]?A1WT@F"B*W U.2+E*'R@+)1U-&FYW8$YC M^M<1?]YOO#L"2T*4=7JF9?(%+EW:%,IQ;EH",=0 ROSZ0R0.KUL+#<$)&Z0? M[&D""F?WGITX23];=K[5I1Z':K-8PIJ;BB?QV?^5,A:W\< M;UJK,M?G%P:>7;4$?4H75\,8VE+2U,5WE#?5W1M#H-_>E#_2_F^G3)R()].- M2G+-I6/E=95MX/5E:W(=9"R4EE)104LZ_X0PE)924'W;X^5-$)1"[H( )S;DV1B\R]#/. M>1(/E1\(<_R!,)BA#-R/# 0CO9N!?[0@Q3^=WWT98@-3$]0F6 +- 2U@+F41 M%)JMSZ1W$[N,%,L2$KX65YRK.8)3L\6&V;]21HKOY;/13:LVX6I2=C:*&D*5 MUQ%H>PS:Z\1%+S'ZF;I[^Z3NG>ONMXYFN#D0OGK]=DD:+:31"NHN\^M/ M+/;@#C<0J81'R!L$X4!UITW1)=X H\)\R-$#I3])-^U">GJEZH0.OJ#3K9Q8 MPKM5@S#2*FBR,KIK"AVH)NB/;H_^42>JS*,G*L-SLJ!F:$))>31)"498&8P\ M#K,=O+%R)M&5AB0G.\EYHF+5%3"Z4F?),L,UDX.5O>1:=H$J1XU!*;5"UQZB MV]ZI2U[U'FIXH$^J0E\00$EYL)/P8#B#8.08=LX@/NFF;+O+17%G.::G%#.J MQ)-7<@9SHS,4EOQQ,O20NW8VL",ERMX4/ISUUCE0.)2)(\C*E MW8'WF^TI,($PAC'V0Z4Q;[A]O!T671@^_'TKZ<,5;S>2[ 1HX@EQ XMTX\62 MT=MO-!BG4&5CLS@N.+%4,E;M:5G]2A4!Q1S)NB-"K2MR<2F535?*BJ Q9-#% M]$R$("^_EPQU.]3MQ\D3O:/B(Z9OEV:6F%:Z%:K4*RG51%6Z%DQ00LC&LZ - M%&&>&@M%(U_6F154\1A4<>;8H4FHX/<-)/OH"GZ3HJ!W-'L)>ALVU5F7\>Z8 M).1U8CRINU]J7&F9%MEFE"JU7.2\Z5]_B&0DCH?501=+YH7: M'4CM_F9F[QTE[PE&;!0OV"-E/DDX5DZ0GXO3.8%6=?O/[/W7L2L)Y1E.CG*\=UL:;')T/..P%_+K\[L M_#B=S>04@4@L,]5QG&\FD[]Q%*C:]ZK%S3JW-@VO5MA\MI< M4=!<2;HS4D%HKP(3JGR<1:PM%BJ1:#%)/#I:)&.5 4<*FRLE#(8;21C4JY+$ MMXC1V' *8I475\/DWW*"9Q'I4,]#/0^DGE\\H\@!;KWLS<@91W:9]2;)C!CV M6OU%H)BJMO1\+L6Y+2:FS*)&J=-K0'5'Q601\L-8)U3WJ]0/A.H>>+?^<7YQ MV(BG]1@3*W%"TEC'.;47Y<=7.NHKZ)G8Q"KF=*4V*$K=#*Y]6VV\&C= M:*CHEU+T]ZL"0TV_#TT_)= MX.?-XE)-VIUVEYU A4?W@T2(>"+4]]"Q/X:Z2\4$:VH)JX3+?":SL%(:2_%7 M4K,D$1,FS9JX45K3^GPM$71%]]0,90LI'&Z83VI,_+]2?B]D]-]_G*KSAQ.3@S0FKPB12@'JJJO('LQV<($#!+>4043 M,P$4,1$N3_!$5!]C-AQLH_M2,;3]@[(#) S^V2ARO9GD*9%J%) M$&0-/G&-&;HEH^=8\#<%:+_WZ?.*/*\$.^.8WMN'Y- 3;7+8UO?DO#4?;6)S MLT'@I>YBW=#A9&EJXX-WBST%D<5_O<^ M8[/@VI[__6;X0_T5L"MDS(T8 [=<3#+D3 Y0WX N1,R)E29Q^3,)RL%/O3Z M@2@+>'D: [_B_X;&_Y9A+"V+5RL;^+L?_C:IF->QZRDWDGXU"7'X[_G2D']7 M\'-3Z:1RQ<^3J2AHCF"Z&$5$SI;%NC ,W!?$Y_2*UV,"<\8:V!O+#/64^%J- MZRLQ>4./'V"*'\3P7O NZ-=>Z_HW0V]UZX8UI]>QURB==2^&^AKB%DK7-RT[ M2I:>R:0'[>3JE.67=VGI"#8"\%$:2F_K8\P%PEG;\:G;P)H%^61OIU0AYL>G M3^[(H2SE]!*YYH<*69RSA:D^3#;(KU?$/*M!5C?YW7D,ZCK8G<94=4UT3!-: M\"-'>72JWG+K"W;,=5T%C.1,!5>4U9!"E:^)"!4_UD]W1A<6-+VZ47]= )4I MF"UUQ+!J#I1A0ZCFN.XRG:@GU\EVE/EZE\SWM"U"C>81*GG!_\#UMP>C3Q2!GZI:%R9IH L&"K_;1]JC_8%MB8H;7%'5O M.[ [<,JA!SZP(5\L,?BB27FG J&PTX4FL!P5E=ID37V>]M7!;Q'NJ?ZI9#'WRH/\2^_I!#,5:,)NI, MM<>1F?9BMHIGR^+LZZT<%],??+J,3IF:0'&U[FK)L"P5%\8LU!_HK2GJ8KXZ M,#'N)]QW63 LM)V6'%0.!D<+MF/#*<#MM2K/9=L3!RO<9=]HEQWD_OQSD!'[ MWT>, )I X=[_:WOV^5/2DJ.+22GF3L.+,2ID>)A#/%)*K[642AP6QO_KKE,"7\O7 TVZ5*8^#!C"]IK@M==\ M+\U87AH)+4[.4K@L,9(IMV;R4$5WZJ&-?X0@PZW_9;QZD/4H*+F!0)]N36W& MTB;)J,*1Q7@YI3HE0Q*VMS^_=[IUS!F'G6K?6I.GUFB2GQ'4+L"FPA) 5D+> MRF,92)@@BJ8#90C%#O^S6],IS[J]LXA_/U)M3P6[JSNJ5)A#DV5SXS$04?TX M'-(4;/ L_K0O_E7!-(?SY,A-"NN>ILRI7&60I;)XWFU K_%$O"OZ)UD1^(F* M*.FU 9K ,N!<4*;HO8Y ?[/QO9J$3%$N2>L8*..1#@."B^TK#9<(^I!M, + MLR'=WGWL"DX#TW0;&P$XBX4CFU!,X"AHVL4I)@KP.8Z!YA6*RRGBTN(F":.; MV9!\:S:VEH:3R"I)]HSBLNTP11.&OG6_M=3C)%RAE^/U!H'=C#V>PZTB0)P= M.[9C F_K8&$R>AR4GY?'P%], -V]!:0G#)J0$5!EL-P*EFS[?QR_-#O?!._K4M^1AYP@M8M=;BQBW'7U4B,8# MM3!3AD2;[_;82KR\R=2%W IN?Y_>O_WY*T+TGDT0D=#OB1+\(U@;0+,\^4'? MU"#5H3_"YO!-4R00JM?ZCADFI)T)WXLL!OJ>+V4CN.@Y^OLV#8Z-X#*A\"+# M9#@F?+.?&=^*IO]".'_-SQ)@(Q=3=4@G]!?TF)ECRI8D^UF'IWW?'&!?_"PL MOF'VS*P-H.6W,2CJ&*2OH-HRV%(3_OD#9_!<"+#'GR>,/>HFO#>\^9",;(7@ M18K?O,6+'DPOJ>,[!4W'4$.[*4-6O%@,Q,677O?CB[HVDT[E2P8UIYOH8 9- M5W=,S')&EBS)4(KAAV/9,VU -GT3"J!\^N0WX!I%4Q[!%4/I])K^X0!56%D[ M[7HEI)Z;?W:K\,\NIGN $< SL@*4>DA<58>&Q9O";!L-R!Y(S%&-0)\)6^@8 M-%?X=#3_N3#3_=F^GH!@;3$,K-^!Y,4/[,://<7"#M8@=K!^A&(>,N96C*$\ M9-.0,T%I+?[(A 4BOWF;?K:;7X004,)\I,)WTHS6]W8V51TK^T%;ZSEH^Q:L M?ZA1-].H1VC-WVI7@)OUSJ%]^\N'&S'/C:/\!NM(LGT.];O'RIPVW/(5][9\ M#W"7QMG[9Z_JXAZ!8*\-UK<+;6[IW#Y1O(LRT$#"4,42?'$60%LJJ'?DR8)9 M%'#YR.]B9_XD3B3]A*8IZX<55W?N9#ZA&?[M,P_@6H*J'0_2Q H5)G%VA0F\ M=FS]1@G.3-+GH<,('<:/=QBM%8R>'F$O$E3M>!B'0>(_SV%4$:"Z&SJ*'^TH MZ-!1(%4 ]A28*B3%6;MB0V_QF-Z"B/\\;Y$"ZD1VPGW%CW87%PB3 F,?/P./ M!$SXGK.'3H$AQ>W5XW%EE?UWY^L[,5%-W5N65M^Y5\8HJ$$PD MV-,WCZ70="Y1QOMN7089VRGRY^24B;U3QOO?__6J7OE9*U%#A&[^WA6 [9%@ M6R=->FHZ 5&_'%H8PUG^%M25X%J[VVB9)_*YMNSW.\4V]T$4 V_G:D4UH6T^MBC\6%OMTI6J/: MHCE \)P'(]F.BZ]7FY[+N1K?:24%5N,I=A@_'&G$\$*UD4Y7E5P^W1RL>]W" M>C49TH.EW.@P,:LQ3!Z.K/;K %=RC3HOU*>.E#29)35> M#0G\<&C>JO<9;E 6>-">24#J%86YV1@2Q)&A^C"^,@O9*IYS.74A%VMC9@6? M2AX.S3!&;&YL6@Y/6^8FT9'+7%2!K#_"IU1R3=72.9SDA(;(;;1!5"Z:[) X MPJ@:B!MQG6V->#I;;92X:B[.3> $7CAUX7MMFV )- =X2)?PV:AMMBO;TS1T M0SI\Y>$MMCFFUB.*LV13:6E*WUFGUQ5RO/)[C:%?!!)K_V7<$ TC+G3G[4$= M[%^:4C]?F5S5;> 'AT3RN>C/AYS>40Y+"7!'*0(K@M6!Z?5.P]^PV@AZMFUC M(HJ=GH>G=0L9JVT][KD-\6F^TG.]$NJZ]F88564-_(8.$6Z.X4\'?_:ML5R[JU:]^6=LLR_65A(Y^O M[S6)7EA'CRDF:UG 9C7I&;[FV*73.1C:&,.:/(DMDK$5I\Q99Z9:=(9=:8TW M&ONWH=!GA9=4O]\6NYV"%Z8)CJWO/O"#-.^3*W?.,K&GQ ]M SPJ-3=ME:43 M(2>"P F"?(HS(2O.R(I/ID<_M$H73WM]-EUTS>:]OYN)2[>=?2TDOO0]NA]I M[+6:\;ZS;=B%R-]JNPM5YX:JZJ]#4J^.VOW]&XY[WH]Q7NI@=8 M)Y_=[3:G![A6Q+FU["[H<7:PWJW2!/($[W/'(G=V=]ZQQ,=SPN/879-%(=M9 MR!2A +%16G*IE#*B&OY=DW$B0B;?!YD,N&=^>ZS]N=/]IH]@9V^Q#0T3+&7= ML53W(--U;V[Y/!'LW<2KYPE%[OZFC;_:A:W[;SZC-D)# 6D%7W'$8JCU>).Q M*9U4A&J/+K.-SJ:>:/@WWE%,!*?CY[].(PBQQ5>LB+^3$51D0BYD+FX>7P3# M@H2AQJTLC&1-UG\W+[M; M&)Z4XC:N.MT3EB81+5!(OWB4*,%XJY#;L6:P7+ M7OF7:,7B$9(Z]8J !XM)GF];Q,:0DMC(L60-6 A<>3[:P;A&, W884ARUR') M3[(>)\4G.\'/;/'#L[JY&\^*_@4#!2VU58?TBS8;>L3]"^M=-J'D:!M;^^7\8S5PK MF@GPW84/OH4Z/<#9LT]97U&XK9[\;4.E566!RA;DA")O1C5S+BHMRZL21.$. M^TV%H6"-LZ17!?OS_/)20I,&([=+QX8120#S*U^CRYW?8'Z^%&Y[62LTLVXAJT3'G>)@ M4E;7>@'U$'@11X2,4Q]=4Q[TB".@R=J?:#EN&77L+C;^3FW$I?,JES$:Y\_* M&CUFL""';(>?#^?LH)-)B1F#1>U$*%Q)1&C\\.#GJT;C/9&ZU_#E9IG;FT-PK$Q)*>];M*=U0EU68B5LHV6-3A"*T7&2$8YEK& M*]B6ZD9YWY]ME(*=VOTQ&ZU+)WJYZG"PD>!PKF8MFP4.9*>]&8M:ITD$OW!8 M:??E35>0XZ?O)X.I,$JZ>I3TVD91T$9)NH.:00-@I (91GWA\O!+YIIC\YQ1 MMQQMB,][D]* L%?VI,0B+ 9H>^ADA$H>._O^@0%0VK\".PQPPA30O=J&7?_< M-I>SE>@C1L&:I9TQB)4+,&X:B:RE:DP/>*@KR"@D(@GF6*7=XX4D7[$3Z([. MJ W,LV(GA\%(&(SC9B@1JA7/:);'%UA>I?+N!P)R@ M!2(B-'%23OF\\(D7TX97F#=W"5[T#D33E3&,#I"I3K'7K(626MN=I'_.M=M. M1C#!,$Q]#47;!JJ+[99SRF/_Y_::&O^$ICX?$\\%68-F<8^A+_Q\UE/:U].J M8)K#%6U->6&1-7A2%MK39%74C [[ZP\5HYZ.Y4Y/)R$&/U&WA1T[]"C9PL#: M "*Z^\S6L1& ?]F=;.\@I\:.[9CH#ZJP'6;LB:>^AR!F3P4;$^!81[/@1]98 MAN/_5S25 AS_?^\B^47S1(CE7M:9?5=H2+/+5/P0P13 M*DQ>CA:CY)YXC2PI.9T,B*0"IDNQ.6T5EOA\]>L/%<<)^,Y&K2:JI5+;4FKKP723*A<;"V1.]A@7M8#X M6W),A+9C >U+G/O;1.N>,A![?#1J)C$P)+&)EQJY>:;BQC-4JG&BC29COF&> MP[]/7[S*&[]Y$MM7,!3Q>+G#H=NS'^A6(."AT3[]S3\_),AO/ 3Y?7YJ"/)[ M+I!?(9Z8+#BNH/+I^D:NUIO%_FBZ.@;R"ZJ]A$:0E9%2:Z8'TDS*=PQ^<@SD MU^R[:U.,\J92Z@OT,B55]*'9. ;RJ[%22BC0C3@/DF0U6C=S;77"'@/Y+?/C M;J9>:XB*4*G/% -G>2[5. ;RVX]JYI03J2CO+K3ZNJD9O0Q\^Q&0WZJT6BUZ MU6*&DZ7,0B0(NN8VCX+\NGC'7(HELLL+5+.L+I2\0_97QT!^01OG&KU4HLNU MM'AL6LYGQ>2(/0;RZUAMRFA4%8M+M_%$6[5JA*NQ1T%^HYRY?[F&>&BO- "*:>/CTV M?NEN&_=];;O!Z?NK/4+BB=R12X:;6+V9X["+J^GQ"'G3"991'7:YJ)#2G&7Z9:=,'L5<;7%@F7(PS;< MLT.#W$^<$R:7@A1A!=,HN5Y"(6BK#"6PAQ59[M%BT MMJ"U9(0F+@_@]D 1VH](0P7+- 4W'_6C@K8S)*3>!7@S.^6\56M2!-^M*1MZ M7)L+KKC:0N0>R8O_X"#N^\FJ,Z+ A:'42:%4"+L2?-B5OV2YF%ZYT#I>B.9Q M.966XC.7L!>I"0P;F*?WKSO]%+S*BPM]#7\# [G <.&DDX +^ 5'-^V"BZQ)\I@8#!& NX:[;2]3#>$#TG^6EY+? .M8. M(P,[N6?9UN$J7J_@C>)KHNI(/I*/): C 307:'L4X&'L(& =+PNW0MFZP& S M?7^#<@;)9?<(>52$UQL^R]>I,LTO1G.*TM*52H9N_/H3/Q-,4R10//A\U<(U M>" I,Y(EA^4$3ZZ$-5H)[>/]']%!MV!M4% M@FDAO#!HT]YN4WWS[G$,T2:"#A\0HI*\A/;L (#H$D'K;=$6GO%'R(EE;E;< M)LZ7JL5<5YPQW8[>. 82DQNM\,ER[AIX#2\ZB7J\V;K8Q U"@56*I/LSWB!UPM:>S!?M-OHF0?S9%.3I#D0)FVN MEHDNV^9D,Z+B#3CR8)ZSZKB^P8N)&"^K0-=2K4*SR*^.P=ZDA_/U4 (]BR]M MM-(Z-YB"V&!U#/9&@;MT?.+4DGQI[I;:5GZ4DV:K/=B;]S'.ONCS7NMO#2%N M%301!B&L)GF_<;Z+S\B6J.J68X(V?&-*U47EUPYV1JYDS8KLQF9\VIFD2PMG M6!\UH!T"4-,-^'3;=,#94@L'V8"_P$U^/K%0U6W@AWLD[O\WBGEDP-)3^![P MTKH85/A,?[:B/ULO'(7<-$S9 I*_QULXLH]N$-T!,GJ1:P3S+=H$!:M>W KW MOGX4*$AH;O[9 [*.T"Y"EHJV?\8JH]L^/4 %:QN93H4EP$8 (.<%'V(+"OS1 MJR6Q(3&\8!?]U_LCMA1,=$'HFX<:*HR,GS#VO=EB<$604'#QNQ@5SA(:.AW: M\UVH'($?S>'LX'.]Z>TB=&\%*"9':QOIFF/Y8368&ZKN OC+3/?Q!T'MH. B&Q#LGLO\$ZRF@68(C4$869DWU MU1;(""Y.USQ)@%317\O:N^A%ES19+7$*)$<%M;$G^37#DUIMXL4=FK0U7RDW MO9OYH?V:+6+C^CI1JO+T8&,UP,*E,LO&A>Q7B*AT=D2E]]+C-(SBB1!1YOFQ M-P598OYZH4C(B:MQ G\*X:X"P0GR"?_KE2LA)Z[%B>13+.1$(#A!/"62(2>" MP(E0)\[,B>\7#7T8S]X6="(-OS,R9?C3IVUC'(QW,)R4>.X>)" M0CTEOM 8>2@7Y[,P?X]9 FEAKF-0'E56/MF:?GG'S1Q$,/(ITN!5L7DGMB+\ M3A\()L:AL]'_^[<<^MY;^-['1O_TB\'OPQ_?N]$-L"1]S2B?&_8B=-H_3GX. MX72_YLCOH 'EUY]WS\[/O;>^.35NC!VS]=QA1W,P^@9WA0$IQY(U8%EI?3Z2 M->_%>RK1]#7":]@XTH+3L># M_P*7>\KS-@\;I\(,[Y4RO '&B@LCZM^O-&/;OWG$OM3=V,(=+2457S!10V3C M*3F?:_B7I"2.P0"$B=X+):N"K$X_,((^47\D)V'+V7@QCK>4RBRA9_/1=8^% M^@/#7?I],)XPWQNJ4 !4Z++A\XDJQ%"= E-NYY-\:9U=YLNENI$N(-P'&F5@ M*/R$'>-C9'X?J2<@B"%L" P:Y(#50S!X#5SPC&=PQ&JX[09>6,I+C:?'!N#5 M6+;67K#;^[4BL1@1YFW/7PD7,*4)I$^];%CZ22W!S9Q(ND7!5FBU%!O*JW&V M54-:@L+32(Q\'VPOS,:&BG+/P>2R%)G>)AO ]&,-9_A;4E>!:6Y(PS!,9VUGFW\\6F/+C;8;Y M)_;R(UK' =T1Z-,>=5^!.OG?>@WKM/WL@^[^+0MMW?A-$D_TA3CX!DF/VN.7 M\ &SL*F)[/4_VK7T430 KW%.0X98?;4-V7[TZT_; ]K2QQ@Z^GI5GR2<(N&O MB7Z,FL^8D7FEW6TQ&IGGYZO*2)NJZPU05L?0.IE1(.3F^FZ.ADS#AU?'4/K M-+KR+._6C"77)2HITRFE%_-FXQA:9WH\Z8ZCP0K] M,+S,KTH/=H=HF4>D(P3/? #?'6 $N_/X]D>"T[PS$QU@V?JR"7\P@,U0HH(@ M40\!N?G%W4;;%-"]E**(FN#1#9!2T$03"!;( /^_!8W=:D?S63G^!@7!S7@ZG:HX!3Y7,PTPX9U5:=;P83F) M^(7[78*F98'J.[TW1W\%8);+=L&<.40\NZLT8$"=;^AI;Q_#?D9+1*%!DWIN.>-H@W1K6FWB M=$I;F$TR@L49RW^I(%S>*HZJH+G*P4W(H^4I5Q MB_5Q-!,1/'D(A/ 0.)I?E)"Z"0Q!EC#@-\Y;7F^1CJ@<9F]_7O;V'%2ZN,VY M=DB[59$,& /3!#N("5:3/&/$HHZ\8W8H/N8&+F,F^YR;9FVJK@SB>7>+MQF/ MT/3A#OE?81[W)Z2; NK*KQT#?U&M##%;TWK)I<()I516 YR6B^L-'X:3B9") M0R3.,+,;JEJP5.W:4?,75:U:J*3UM%PJ\CFNV.B.1[-)1YOX<)WQ"$Y>#I$^ M\(ZJH"V!9NNF&R9UPZ3NPR=U=](N_SU35D!8S*+UMJK,X\L5E1F.A\75RL?EC)V4C JS MMW>O*4$]][AV('JB(Q%7XBPA:^6JDN,*HU6373:3N88/T9D\=BKX8].WNY(- MS!# M21&F:7]$[BBH/OM6];8OFO16@0"N,/5B-K'@TG:I0V:C;G'IL%"!8CZB]D-> MCG0O8>]#D.;A,K*?<$^$*\5$D9^MN-*\2A7D]H2<99!VP6"89DXY[GC0'"RD MH>F 5TBH838VS,8^?#9V*_?E%[$_8C5B3D-5S]6CTZT.E94PV%Y5^VFS>58KO?K+%0/&+(25"1!W__E]?<2 MH-X?'1XQ&CU4F7<#4I5K*DE\Q104L"Q%:TZ7S9%#=".#EYU]T&OJOUPG(.IS M@-G"&H0YVA^AR9"+=064'9)B1#?4I MZ/IT_=J$O^F362R35GS5!4JTDK-+8P!J/(?T"0:]5(0Y^=;0QTO#/M^UBJF( MD&$.]J%RL#^XN$"R)NMC+:@[>2^CWT_=,V?BT0G=LA)X=%$F)*M<6L, F]#PLS27=?&GE-3"I.?GQ64?D%_#HK8!N:*(12^QI7$*BBOHOTZE9L@M4'7VC,7@^.Z MQS3)K@\.,\$2:$Z8D+U10O:&6-!APO9KF^2=ZC1]S3EBB.9XKZ"6<:#QD(#] M8;XX9X'K79A-H@9MXBA>49BWO4Z>*<@:%U27?^V\[LXK!!R M5!IE9+7GJ1@,D>EW5"Q,[X9J=T]J=^WT[\=J-UT5ANTDGJWP3JU0H:#.F!P:]#HK-#;0NY->V4,DD0Q+=R_BMH.L5D%UTE?'S?V$ M'N%\84VRB37.TQ->YO/S9E]HLTB/4(TO&4DE1S=6C=0]TZ M:/18]OM"=(I;PJB'CBZ$'FL1#XWS:JA/VS&UYUYI!M MX@6X/7,L6QZ[^P)V$H/WGOCLLYXW<*3QB4OS@KK";ZQ)> ;JF!).JZX#@^_" MF*5M%>5TK+D:>KF^__NWL#=2%>OMWJ*>5)5N==*5FX7)M!"%HH.,\>N1JV+! M[,=)><-WYU7'M"HUOJ- NXUD[/5(=Y6EJ=AZ"12R(_>)69T83&83J#_XVY$I MSC07AKY*\70G;<@F:)+F@!V2A_/<.&1/@/\_5.85/E[KK^54.KD:DH?SK YJ MJY;0%!.\3)F=;,RJF&L+O?U@GA*?L3L"OEHK=*-#)KCRU.[6T$TI!_-LN%TY M*R?B"NXF,ERAW9]%A4EC&#L<6=_T:%T2"PFZ:DQL5!(-Y,-(LV&DQ- M7]85.EZV^&&LV5^6)\?X/AI,%S5Y/$XIT2G(=B>\8"76JV-\=_*+VJ:V8>9* M-.?(O*.EUK7^4;[W4P4KWX5VBJNERQ(@*'*X<([RO4\,5$C:U'E6444OX(WP473QKI35K@2P6-HC(=34XQ[#&^ M,XTD#..S%LM%8W$FWAC28H8YRO=I*I%01VQ55+I%L94I4;V6M9HEZJ*R=2RC8;N^H5?\K*,IM6(FRI?D MA=S+-'S_*&L.D%C[+^.&:!CQ"P/081EP!K;I@+-%#@>[TS>1 S*<7]_H5G4; M^"$72?K_C6);P@$)*VB^/X>L>-[B!<9__/K3!>@$588OU1T3TY_K $U@.:IM M13#!LH!E>7^%?_36HHD@@LT%!7B!BP579F'"2'=L]"TX4 3H>YJ$38"&G@?' M0;DQ ?QA+&OPZ[*@8O(+73#!QNPI@/L ;0+C240WTS!E"V J6 +U"4.=]B8* M*%4W@JT -A66Z-UPV%S6((WM*7P"_-R?/H#/QG:N[A0:G!@$6CY/A[6,/F@J M0W&@N-%*AZ,KJ6*I?>YD1:&:?14)1BT@HFAP!0EA >VMHD(+, )F;>QK*HK+ MMA+X4F> ^YI:%4QS&.WD%G8[K6[P.30L=%L@U66M\>N/KH%W]U,G!=3F\_NQ MD0/YB41G2S?,,/6E+'E%IOI$A@(K6I@-Q*FFP]]=E$YWT NM)ZP-A6&LJZJ^ M0J.]QUG;KP-/$J$\"9.)"2:"_5("\$JD1BZ4/GT"-S%3:!BAH?(_UL>8"'5% MGZ/KO;27K]JN 7[OAT>7-JSB%$B."A#'O!ED37W.K:%$:X*:WL[08FW;E$<. M7&-;S^HFM#I:&D%.(.RUE)M[7A\+P_]#@SROE74KZDXU'M3 A)FLTS;1:%S( MQ-XVF/4E;OOT[495A (D&!;XO?MA?\HT?/C4M^)S81WU^*L][Q%4,+9_"XZM M[S[P]IO^)]NMK3]F;Z^['8,^V65Z\7^BA=OF;F+;%Q(^0;Z\'?_P0$&2ET=> MJ"-DS*T8\T$-?LB8&S'FH^.*D#$W8LQ' MY<,A8V[F8_Y^*!$R)M28AV3,Z64W7PZ< W5.E8:/&)DR?$T>J$N %HI>*6A6 M]."]S&<(>P<5/.<^ZGM-J8,L$ >BHXUX<_Q6$[9JF.\"R M]673CH[1PN@@ .;KH46,^,']\MMCYK,C.]TC+XF/A*=YG@ZQE>L^T 2K& M?*D=%%1V+5M#[RHKTX4O&[*IAJB(56/)TW69R;GEXF2]^'HG[5Z!8QK.%BVV M*]O379%C01-5!_&/]0J-@=06UD?:EF9E2:;P;+K*M5RSQN;UNKPPV6$,=0%0 M>")"X!?&I/FA_B?LF/VP8_9DQ=+*ZTIF,"ES>#IA-0>5968Z=6^M6*EQHSXB MZZ:JT*U*NVB3-%F;(L5"4(TQ,H(?N9[NWE(UH6[=C6Z]Z9@]6;?*%MELMM+& MD!>HQ:(U,_'2C+ZU;O4SE=P$LH92:H1*Z1UI!=0):@E#>(X$$2&I$U">[CQ' M]8F0F7-,W0 1K")+D@JBGaI,&.S;A:A\]5#D- M=2>3"'J#CB1#%,@?F@0*:NSPJ;C\B!K2?'R2,/-*"9^7%]:@&T\/D[-;QQ#+ M]&(XF8[3%;S5=--2>F8(*H6:Q3T$'":23%[^FLM0$T--O%P4?T03#;EG%&UY M0ROIK+ J$8JR3$\F-]9$86#,%XDZIRB+SCCA*$V#5%2DB>C.S%B$H"\&T![X MR#T-_RN=/4(/P_$P]KY,ECO-#D''JNJ->&;*UWJCJCT:KH7I^-;.?LU;3":[ ME&2>EI/1A= ?B[W-9$A[6>Y8)!X[!D\;)KG#1%Q DMQ0KU)K0ZWEZ,Q(H0UZ MG2ISF5J\>FN]HB1+Z.8&M24G&_FJ/NVY4GZQ@GH%@VB*CA!$F.,.52N8T?&> M:G7T36KD6KFFTF(%PC;4?#$NWEJUN$+-;@I#/*_,QXY0RT6C-;J)H.E0CCL9 MH1@F3'&_B!9KR0)6%T1Y+(MA0CN\LN@G!-WHKTCNMV*_2[;1[&BSLO0I1VKR M,!43IB2?N77.6Q[,5O*"3<^46CTC=U?T@.X.&\.$E_-.1&)D>&%]> /+/84: MGXKBCRMJC)KE-JDJ(>&MWGJ' M$#-3\;QD.1L\W5.:YCR>2Q=[2%?A#H&@(@Q#/%;>_&21>B3$ECO8"03Y_HK[ MC/O/?.?2NNR6BPPX9%,/'&#J"$[$PB?[3[H<)JL^_ M[.5+YU$HMA\;],A..LL!<=CMTJMQKIMH0(6"L7:,C$7H*U2@A#H5ZE0P+ETZ M4U6784\6^33+*;+-">V<1+!)!>D4NH0IQD1H^IB3.A84[VYA>@08][?W+%T- MA/_M/2=[EW:DW.T?#P'V*3"9E;MF0%WDA7]@$&&!_[XG/)B^$VP_A M]M_UA4?%*L37#SGQ@P'U@\:)GXN@'S1._%P \*!QXN=BY >-$Z%.G)D3]X!Q M^U'FX*^[E1#V_O,T"Q:&9%!P[K]SD++%FL8>!]_^4F\"5-;R&IT>/#/'H[TM+[@6 _CO>^9'0Y[\B6B$6^#?L\8-AS=^1 M:7I<@7H(9/E3U_N04/*WJO,((NS65[:*#P46'[AR^A\K# %HM0B%X$\VO.!J),/PA5^'=4@H_Z@.JF+CFB73-;P%Q"07R% MJK65S&V#4)D;TF:UF)_CK:&AY^K0GK#56Q<8:_9J761Q2>:C3)$H&(*5ZY4; M/K8[$Z&8^*/4Z]_6E02@5CA8A<)'FF,_H4I2?-C55HW%D)<'E:DEF2S57-ZZ MKIBEQUK/2*8!WR+Q6H[-&.JRV?#1W.,1G'ZD2OT N*Q0L4[M9/V$8J54:3R( MI]8*5QO++:FJ=;)\]=;@CPFWN*J62;#@G'[?Z!8'_#!7WD*Y0\6*GUJN?U\I MH:^$PEL&/UYZ*!#A<;#V@P\9,6\_VUHCT"0EHENH,GRNOII-9=(EQ]*M>US9 M=CN7UR?=%2\LG';;R,?H18/UL=EC5#R2H"[/P)_K8!)4AET,^Q\J;@*WZISJ?:B-[RU B897C8&-996 M2,*R.];<-C9VPX=?I_ D]'D/@R/SN8 ;,G8,Z0;7*ZB8M8V^O8N3='L*S# G M?<_55#\J I>LR7JX+\Z[O22K234DRUO[M!@(/)@ (J[("2!U*C5ER!=NG7I+ MS'6G35N5*;\H52:2K,]SH-/PL=MC1(1)AFGL>Z\?NL]8X-1@_%3MBS>I]("+ MSC>*0\N"LNGD4V/WUMHG+ HN4VE2&K[H9"O%+#U2,V761WB'VD=0CX3P'@#' M&.KB1>/R4W5Q+K-T=V+0#;S4995E>M%F%O*M<^6&F%-GU597Y85)(;T6Y78? M5+>0\!0581+)ATR6GR9CU^Q7O#DY@A&]?P1/&S!:XE!:G/7!W*\"!'ES]0M4DCS0.A?(8.$>P"&=:4M+LVIUSM=*IBN9 M4FO()+9 [-<"A[RYG@4C%@]5[H=@1TK&F,VGEYI"5I5U86!/S&1QY>.IWQ([ M\NS8)V_0( .#H_@-Y,0KK,%3*32IS^C5M@(+,[>]79A@ BCEIKP$$C:&\HH9 MP#2 [0@JIOIC+6QB"E"3),S6,=TQ,7$KQA;ZP($/0Q]:^MA>H8<9_C;7>L)V M6]G7+Q/UN6'*4.@Q?8SIVD2'>H!!%=$L7X3ABZ%N_UN'CW1&EFC*AJ?_8P"_ M#Q70?^'8?^?^&Y(",H2D$3002#!E:<8K*GA?NDL"Q=E 6T MTA74UOWO>,^P' /!AO[U[4_8!Z[P[.ND(-H6VU./>R^P.)OST-YWUD8OV$)E$%0@F M\FC3-VI$(6F]!"33GK) N;6!N=,5,K9WWO8)76$2[R T_?=_O<*>>O;'"!M5 M-W_OG.X>";:85Z3G?R<@ZD-;"6,XR]^"NA)<:TL2AGDB8[M\V^]GQTWY^T6& M^2?V\B-:QP'=$>SJ'G5?P:KZWWH-K+K][ -\K2T+;=WX31)/](4X^,:V47O\ M$CY@%C8UD9O_1[N6/NJ3T,]08*'_5E^%:=N/?OUI>U"W4 N1PX;B\U+6*.SS M_ST)?TWT8]04GC/8A2R_C/(;G'?!5*M9LE#)31HH+/GEO^UY)!M5B;(VZO-X M;I UW$$J,VO8$S@R]G:D0J87FQ&)+SC7UGDN[P$!CL'SUR7-S;E--9EJ:%-\TA[-!N@NM]U(:*I0*"AKCF\H MMZC.[?J&7O&SCJ;4BIDH7Y(7C$"B;4P!=GZKJ*\]7>I(* M;?=2EN!U' MT.X;)K"@*J!WP4?8KN<4P,*1#>1UO-^@AQ2TB8QFM/V:/15LS[<)MFW*(V?K M?-[,Z[4WN1K^-P?%P':[D' 9V1)5W7),4-->+EUBT=00*V&EO;N:I6!E7+]']U#T'!A.AIKEEL6.<$E7&>87:0Z)AMHI3(:[E-_9V9\0_ID),\$!P@L"?F!!V-Q"L@$I!AIP( B="I;@= M O)IKCH@H!DOSWM&Z/)WIUM8Q>O4#7SD3:^!4OO5TY1CF+7G*B/XNP[? V;B M%H;4)\PY88W_[FE^#JSQ[:7D6_BT>X+QO5*L^S2X#V)>'P@MOH3DIX:W;Z/SY;4KZW/;Y+FAQH? E6,VU7XGN MSBH-9"@-#R8-P8QFO]#UI T=^+X?\.G#8LDUQI-:H:1TF]FB,%:T9;+Y]0+*JJZ) MCFG"E_IGL$>J(^,)' R0L?.WZ\7A%W'5SPMYZ":EPA6@9M5%40YP?+K7=BQ"9?Z M('N">M4H?"4,YI4AY["QT2!?*+1'.[RZ& 75B[R44P^V M!T_#_TIG]]0_T2V'/O@\G M2X+2)=5"7V;7?*\Q\;&J:"H2NV1G?+A'#H#^W*%7W5.8;(>HFQD^92G14H.? MTY957GT#D_D$A2F(Y7:92;H<%S4T)BXMVX.EV_#AI9A8)!FCPBWR5DI82Q:P MNB#*8UD,-\37"M&#C,1U_\X:_17)]5:LMT&]6S=:!:U$D_P"U/$&%XNQO=%% MD]O5U%3E+7M3Y>15HD^:::(T+C9\2!LZDL2/86V$6^90'^_>^1]7P$)>E>,= MW:DHBUJ!A9M;M=0J730.<.;I_W$Q(>[82))X@$VU:<) MQ"/52P;2I 09NN<>'+I43+"FEK!*N,QG,@LKI;$4?U'G/.Q7]-4<>FBE5)%S M7-^N)]8)=L@@YTS&B @9.V8=PEWU#U*<0'I>6$ZW\(&+7GYJ&9<'(1.U*&!&+8$BJ(E@& M\=VT$3B5N'!D$]6%JRI".+&G +.F@@G_!'_KRIHD3W2LK$]D. /1BF %37R* M0 >!\%-&CB5KP$)X7UC.V\RE5=V1L/_UB$*D_[/WH?]1YC__BF ")J)/HB,! MP75MX5=,]+ZQK$'G!1]?0&-M =;$=\TZA MZ/]<$$\QYFL]- $OO^R.1E-;8K,O*WG!/=\RZIE/V]W>\UU%KPU$VS7>W&7T M^N_;;ZLDW5I-1A+'E\9DN4@Z;)FB7AJ"._>LD\[Z0K=;$;"JP*Z- MTX(UW?Y%>O: M&_"JE :AL-$DR3$01.2-M\>65FR@5=&$Z]&\>E]R-23X@7X MB0J_%,$TX*'2B7 NS[JQ@[E#5WKK&/OK#X.?22XQ7X+@#_MF5A"G M,E@B0[P%%MP*F@V]!,*/0@@(GO$;RZ9E8_9*QUP@F$A*+>A97ACJ6\ZY,(/& M4E11AY!G_;^RO.R3)Y[]!C5H! MZ'G@?T6X=Q%D#8,FW?.QLH\C"6,FZ0G+.,C(>XM1Y;E7NF]#YXE!UB+S_\; M2]"J^R".R)M!A[KS;'O@F)'MM[PS,D3#G:=X=FKBB\!@LH5IN@W)9_MN!^R] M8"S()K9$ K)[S8M3W5(0CMQ?%O1/WN-& ,#)PF>9<_A*Z:^PD&'$\X7]1+!A M9T];T3G6(,F6H0HN$J@M>MC)"U*A9$:W,"O?V^"AKQQ$^Y_#-'DP5%0F1$5] M?FJ(BOI-5-3SD.A 07?<1*Q!)G6;+/1__Q1#_:)@]JK>;A'\-+!DK>6K8L*QJW% M*=H*8847<-PS"]UY\EP(IUZ?SW4T$DTD^A4%Y%*-MH S>&]&P0GTE$L ?9#YW$6$$ MJVFV8,HZ5HD7,;)//!136XYL VP0);&RH("5KDL1J*>J#F-C_3'96M5->XJQ M7M)<^(W]+X/C_\)HFHHF\63BH7C+X"3)8'R+?4Q&UJ>Z!B #8P3]+XQ$#"11 MK?X#,7"W0@JGT K)*$X?6>'U;QV\\2'0V?>,!;AA-P#\1[.Q)D GU0"=S=6= MD2J+&/MR IB5S?F-*XQ^_2G5*SFL7*Z?G["?GTM'<"93.*P";%,W="@!\)@D&7;."((DHJ?I2?-AR MH2V>^[6#AJ\R;[?*-]P.84U40J6J6 ;=Z1J$274%Z+I4?6_34B4[&)&F@S"Y MG>[&B234W1@=90@"Q\#:?O**3N-,$";9UB$_LR8 NZU!C$A&F5@R'H3)<=&Y M(*N_,7FKNO^?M-.4)U&?!\Y8KU:KIPO/\/SG!Z?9GQO;[K1N&G"/#K?N>2!( M"P?-U@R$_0[-XJ=Y>0">%"@#?:%S2]G;;OVFF"RYP^O5! M*L2;KJT;[W?)[19QP;1!=.^X9Z\4ZA/TR@KKWW_)C@1Z[CN)3$1QG'GG=H;; M9D!N?I#^>05"EQF' <3%>O3ON!SU"V>U84%J6)#ZN8+4.23>5@;BB7,ZG7?% M?D=$*,>?,4,W-^WG7A <),\GF&6*_^\7:M**HMTW3E#$&JR328G *>II9DQ^ M88)J_[]?.1\SYM?NF;M. 5GS"O]'J(OX/_N,]"NCGL@]O3I6J_(L"+M88(NZ MP,2>B!A:"O;O/S>@Y>=<5+!]_-[7/U^"$[JN4US7EAY[OF3[R;XKV7,5%'[4 MWRUU67K'W3U[M'^/=,F%_YG:<_7/_P]02P,$% @ O8IA5HR\G$TW* M"RX !L !D&5X.3ED,3 P,2YJ<&?M>G=44]O6[X;0 M6^A=@@(B*B)-E!:P4*4(0BA"Q$8349$B):$<.HB BH(84!&4$NE*"QT!D4[H MH:B@M(02 J2\[3GG?O?><^X8WWMOO#_>&^-M,L<@*SLK:\XUR^\WUV:,,F8 M?C,C4R. B1D F, _@#$!G $@S,R_7N#% KY8.5A965A8N=C9V3AXN'AXN+FX MN7GY!/EY^03XN+GY1?D%A(1%1$1XH&+BHL+B@L(BPK\F88* WV%AY61EY13F MY>85_E^^&(V <0P1P)83H , LP0028&*T #%PG*]/O%_#GQ<0,KI&-G8.3 MBQN\H9(?8&:"0)A9(+]6#7X:!GX.L BP"NY7-603NN#&?N".L%I$:BZ'W.G2 M)A&;?J*\^I6[D9QY!>\ M?5=67E%95?WA8TUS2VM;>\>GSJZ!P:'A$?SHV/CLW/S7;]\7%G_\)*UO;&Z1 MMRD[N[_T8@(@3/^X_J-> J!>S"PL$!;V7WHQ,0?^ND& A76_*IN@X05VMSM" M!]0B.(1/I^:6-G'*J=L01:[<[><2E=>852#]4NUWS?[G%(O\W]+LOQ3[IU[C M ^$"=P\B !VBV+Q,. ?_/2+K&C7#1A$,YS/\E2NH&W.<.>O0 RL+/\OYE M_'2COVR8)^3MHF$.^X5SPL _Y>#L<_=,P$E)"WK!W(!5^,*_B)V+E4UE?\52 MX=[2TZ+EXBN>^1^RFXV%O3AOW- % /GT'P:B!5@EVG,&X*$,(Z<3GY3/I4 - MY8-%2BK]\APGS5#>'V8Y]V@?=LX\D8=\47UA"ADN^&/A:4E]S/VFF4[ H9<) M?\CK'HD"G$M.OH0OG?A>1=0Q5.&6>D,0 W*W"15V5B,=>\3TKZL8Z.U0,.G7< MYE$17F[QCE1_Y!I,0MHCFN%$1^2.QHH6O3U+A2;@9P"#0"F'MU=DT=]]WS. MIGWY#$# F*H72$YE +DU+0R )0!#O?4125%$M/CR4)UHA75'9C%BBT3O&I'A M^@V+JWZU5Q]5IO9EOY81A^ K4:T,H*4>YWX3W7FX'[WV%D?Y!J"NV[9'0&NVE%440G,X#KYWR")3H2=3G6;[K<&A%,@G:OGY.3#S6%$Z MTB '.@WE#L(:D1HBKI9X2&:_*7]%,#I8U5#VR%RX(*20#[I9[$5',0 WS(0W MDO:(&NCK$^)WIR!49^B&W7!%TA/^A2@_@"XA]A82"V'/?HW:\P@>3HG7"-F' M.%^3L&?9$'',I\3MYNM2[1ACVTE^0ZH'\Q;H;C*P/6^J-0G:E#(6VR&C1LR; M#-"F9[! O>\ -:-35-L%B,OIO% !Y8LR_@E[/!K9*FK)$0Y"0B M^V]UQG/>.O50^V&YRMH(C42/9_/[XYF&F?9I)]"2;!^SC]>=:2*4JC0R "#H ME05)++9!^H>V:_6;SXH5=;]U-TBP&TG<5>^]XSK-Q@I&P 4##DM6E!\=CR;: M3RG.!M07!!G/VF>[S]5[]61R9P=L)7H23=0D#ER4_7QQRZ?KH[0H-@@T5!H5 M.=3 2^]L4!K2\)P>1 R_4!8=_WYBO/_^UW@)JQOK3\X+]#T,0Z. M%U9QV^,WKU&K=BWJ3I3FOQ_/2IFS0/3!9UX2*I"QQP:"4(I>&8:6YX-_.W[I M50@_"3. P-@QDV9(@E:WE)T[Y/!/((=O!DIU( M^50A!#F0E/<\5:MEPD%O)Z8G/'%B MH9J^_M=:CWB_D#DC7A\+S+?N@-AHL,? MTBEEU"-5<%W!@$9,P14Y.DSNA=7QB/?+$1B9-RXXKAX\5T/Z5C$I#K\[K06<90,P:U7!. MSQY_KO_F ?5+!%<3N0>:,J^W]0#I]' U;YOU52ENQY);UTV49XW23*]=?I? M9BX8##"=PC9!)_;((\-H+Y6X:LD;*8&:U2W)DK.O!I8?/79N9XD*/+3:\Z4/ M]3-ULE069DWO8P!$1WP,>J/ZM'50;*M ]1I\/&&4WV!337HW!YM, MM07]D(>62W6\K]#6V\9[Y9/JIT1S@;'VAL:SA;OIKHE[ N@FK= S>U;C;7,$ M05>K661L\^G2R0YQ[WJ3MRT>BT%;=9A$\^VCA.C4^ M(':TZ%US0S$%"B[H!4D_ ^V33T40ITH^OBEG#4.>3EG>OI.45'[:*D.QWPRE MN8U-8 "75< T)FHSX4(]VN>CVVBQ22X82TQ M(_&Z%;-%<#YB<$O?UR='X@:_V2M!T?;^#THNC=]*#6"O,+PH>4K(W%K$)D8L MR)[J%7XF=!C(G(]\C4>^04\#C? M.:^X^#7W;S'RUN]R@@%6SW^4H]_FPIEOG\)^@E,.(U8(#("S)#>,&-BH_60- M.M;]C1)K6XE2>0/:7J:@IN.Y*V3 MJF]_BJYM>)[XHO\S=>"^,&E*>'7FL2:E^;-#FJ5I#G32ER*'AY?M9P"E,7L, MP#"A818;BYM)0:Y[H+>/$]"+Q_&3&H"-3;\![ GH#Q>0$^7ST.6-O3,8KB#% M5M&:6_&T5._ KQ9O#'7N/[@V&:B=3I5+V(FBR]3OF6!VLI;A?V2ZI1 Z-R<# M4 Q&+R-+Z7?Q[]%-AW WD-$,0+I!,*C#ED2(NL< ! EC2Y'CW(GE!Q?G]W1] M*GSQUH%'-L0G]@4\OL0 @A"+N@2B%71L(*A+J[E>&C(EGVWU M7;X'Y0%.:P%WP_'1/^.=V!.I'(I5Q!>5M\FVGAF"%80K'[GK W2N)VC'S,;+ MYGZ-! !:%$6/E-B,V4=ES0]J::K)],K47)0]<:*3)VJM[;"_L>VP5:D$B] $ M8@Y+%2#,NS" W_3AKJ'P)]^RSI!+]BZ' MN6 I4,W1 X_GSRYK8TG;+W=ROZETV#G7@E7E^9I(D^L&)).\?5:G.9J$F2C: MX [8]8Z?=A&]"*AC G!)\=@E7D4+C'8%3Y,"!>?]=' /@(].R<8N/ M/7#/"=2[H+E8P/?OT7/#'KCM(7 D'*[82Q4)(3]D9V\CPW[_WIP2>G:)\/M$ ML#\G6B!45X>'PHDMY'+2=DRHI7UKS MI1S$+#\FQLZ++;>YS\$D@H0L\%OYP[ZRWA/I!]?CND10" A$_Q'3.N)O@*:A M!]S$JZ@QN C:TS=>7V5 -ZQXPNN)9,##C !22W[+3?LSVKFGD@UUA9JPKW%_ MJ80(/^(K\G4*DJAE5S]4QSDS >5%NC8KKRI6J-U*.]X4F?TYZ!,[,0=J]0L* M8K_T4I065I))YF1W$B%RLQ=8"ABW>Y'_IL?O;OH/XF2&?Y:'[*?7#W2X:$+8 M3U"*222B%LUKY@E5<:Z%.(' M<$8,X&\U_1O[WVVS"]K&A3X,%V GK70N#2JP?#*EGW_UU)G^('V(SZ1%TZ% M[GAIN5_9^I$23$92 JN75QC V<)S#*#A#;B!CQ=QG'!W0BR&V=;6BBG(OKOE MR-NG/3/E*GOS,BO/)CO>D'_\](#T+8*H^(A<6X-R/Y5SMMB\59+^RO?UXO@] MY3N!(??VKL9H2J>A<[ZF 5]'ZE&N8,QXZQ_WTKZ1.(..&5&O$]5^EN$P]%A* MYFY[D^R9G[E)R2EVMN/A)PGC-&CF7>;U!:NJ,NO5*Y7MP7)L+/-48+AU\[ M!/=&)U172;91QP.C[QVY5S\TW1>A.X&Y>;O=9+\Y?VLI.Y,EFPD63X/0.3?V M](("S1^T0Z-K% 8.1*M[<6W;:GV\+_Z\C_TK/ H] UJE A%58G-FO@,ON\^G MLE#\F$!]H@^"^A1!@)6I4$5BS2C#<]FP)GT=XM +&,GRK?;X&-+CY[8H0JV: MR?%4V@&KT)IMA7/!L#8810'>: 7[L7$L/<HX?J0+[22YE58_* MW,F@BZVU!M)>^*.YL8F54(J%[_)JG>/U.87K6J*[\N:ZY;.EX38AZ')F8_.X MI4W$\@D&<%,,=1;I);!S.BPJZ/S"K=4/G]A%S@>YFSC4E>:-<5!C*D>5!V7, MI2N".J84T^HY<0WKD[G#:7\-*Z_,O&0O_(Q.GM53<4'E_X>(1ZUXZL,"'*X1/W-3XH.!2QQ.N21YFXN&$XH2J?2NR'$44%"S:Y7E6&-H'++ATL=J/,SIA_ M&K9?1?-5W$T=>G>ILQR^/6B_1A5@7KU.ZFC3N6PU1K L?1SKT^QH0!/O8U]Z M#-H"IO8W9I"(*76G9F.;K?8DBG";'MAQ.$4)07VF"'*S77(EF%8^'2$*M4P? M&*(J8$>7M)4W=V\4NVE/.DT[GS)U2[6T&XX]#0T&Z'GGE-$G"<0)F P#6"P) MJF8 ;&7H9-A?!P"TL0:B"TX\CXO35Z!D[1WQ=%I(U)Q8$_ 6] KLKR?GGLJT MM\O@RDNYK(T8'OI%RIG6JZG"+;,R;TE1Y/,DA1>)M[8SWR1K:$^>*'WK_LQM MZON[B*$=W_V0CY= V-Z$3ABO;B0DO) BC<25FK_UR+CR_61^;X;:3&'[Z )/ M4I?)5W=-VLG4U"CD,T(5GBH8K^O[SDM?BW*B:CR@\+93"(&KJ_E(2#QGMU[Y M"[DKZ&]9;GY]6#-@MX.,I%4U2*&&:G3AHY*9GJB#)MLN%&_KV]6W'YY2&K_& M 'S4V]6$24B#&[BG4,$@YS8">]V5<51Y_L\&0=*Q;-D[THMD_/'WNMHOH#=C M;*-&\1.8087'=FM7/>T\X%#;X]4RFF]=F/-J=];!.P= M!*(=-$F(>IB6OI5HSAWE^Y;RYKL>EZ+-F:.6$@MR2\(W,41MZG5:)EV@F[0P MCXW2Y4KJ;RGRXMSWN92VN)*AH@.](]F@1T*^1A(O<;^U;<)P^407S@0;0?I XZ8_:5U@WV"\T5.P"UIZ72I1X/3 MW+VP)=6Z8/T7#.!XW#WOMPCZ_=Q%>/)[;3:Y0;0G9ERK!5[.WMQCW"XC]\AD MD4<;E?F I7I;?M_#_/SSY6BNR# F^GVZ9N@5DDH')FX7EZR+"/;5]#&RF$ < MT GJX.3QIAZ*"M=__37-A%UU3D7 RU49[\_K[5"?93/LNQ"255B;H2P_\!&$ M#5_3'8? H/D 8AIC[(X&?.^I+VY3W'M5DA)"Y]AB =C&8 ?[S8]BC>LY?=< M XLA$!VL=G1 GGR%EK+QI $+5D<%!M#)1UJC)7DS@->EB"[8O]U25TCVI-70 MY5!=#6+#]V!LSHM^CEZ(E[LWAH].NPO>]\(H.8I!N$ZV >@SPSL@GV/%DNC/ M/(GEC=,\0NV[;>22<>Q#/A?EN>CY:>/+O8<@>.]@1'=F/E64?7Z+]JH%0KEZ M/C6&M:TJS7%H-T(^"?=4<^/<<&]K[WCA7&RVZHANV+S+A<=LP^IF!C, >[YQ^S'T.WXKQKFF,*N*!)V.NY?V+'I"=;= TS]"=:U1+!E!"1N^>\46^ ?T*O:/>#=WC!?G$HC?R M&<@65';T&$ \86NZEP&8^"QM]M(Y0?YT\+X; W"K90 T7@_(BM>AE^%5 #:DA\&3P$T3H'8J>_8$U5 M >7P)6:H_F.:D(H9X/^K&*&#0)>F=$9$2AYQ\:-'U6"!Y@NRV^0G; MB1V?IW/JS$-C,JJG#U#L1#J2J(<<\[3-J../$[;&Q>C.!;!\8KSUSX.%MFW-Z1D9<[^6&K-DW=\ZAG.C=<*+# M4ZQ[.7&[O99C95]7>\.1@=P#NNG;)=O]B5PNHKM&_=7A!:0"19V07N.7YGCBRQAAZ,3%SK^8_ M# (4=CJG.4CP*F=PNUM#Z,T'3K2E?4>(MG1.,P-:5:C8"WB_/XPF]P07'%6B M3_S548W-DXI1SZ0DDG? V:*# F=4?O.'Y#/]J<)7UR[/9IW)]^U.E#O<*W'B> MLNEC7L-B%XPJ/:;=J=Z=<@)W$C:M]S-Z[VA1V8H@9 MA9,8VR(#Z2>2,_5>MFZL-'UXFC;0%38UEC4A&Y #-00#$/+=ZF\%GF1+UAOT MT4P9Q\RZ/*85B8T@9.3*'WA[/QTQ^7KF4%?9>]FH16\RELYE!P:>*0E.KR]& M;Y9Q42_1$D_2BE&"Z-&>ZPS@%0AW#'#$EW0I$$SI$[%T3A\<)0%)N8#FQ2UB M@A @Q*DB4,\%-.'W6C9>!8.L%W6/"9,3Y&M*?/.\!I68-^9!/OQY;J1Y2C9. M]93\84#-RFG@S1KRPL[@GXWR#X1$!B"JJT>$SWZIGD<*3TFY2)F&]QQKY$FK MNIUJQ"F5/1I]X47^^^^E^FRH?@8 Y@D/',_!RIDP%*\%<]2=*ZT*4Z]@LYE" M&THK+RZ2Y:U9<4EH(!1"VF[I,"(18FY6+EV&IA_MKIH;3=U^^?@V"9.[T."] MKD[^]HL _H25M\?>G\

    XGIRQ%U>6O((RN&]8/"59#R0\P.ZP9'@2.I#XTL M4.-L[!^PXK0R7;^<(&ZR&R6]("@AZ&H9YDSM^P0E!_1K*PT+Z0N']!R?Q4+> M*^9H,%$"]X3I ]K5RX.DB=,C*ZO?D%#")>.K)8ZW]%W:"M_;7ZG7,L[^&1RI MVO<0_?+UY9\ZYT6Y8EY]769NH$735,^_)9Q&!;/H'^ MZIZ.UF!%B)2C5.A#0^GSTWD7F=%F0/TO@+! H(H&-MH&19&#B&OQET^#Q2UE M*7'AH?Y7+8$*$,@0VN)0FCNU>Q#JQ2J*WIX#%8[W_>X;&M]6N7.TRT>MO?K]] =FS MT(:-;I"E*)+$+A%]XXLE>QT&;CEQ&O&-B;TSBZW1GGVTS0)FB&5M&_Q"(%4( M3^9\KW>"A5W\!5\1KW:,SE_E'">&&G0=P M9YZ<\^<1Y[_/(L,+Z"=8M S9\5JU2MY(5'X>')/K?57A:[?/S6KUHS?N.Z^^ M9)/SDVGT,Y 4MH&DFANP^J$%4/L]X%RA(H44;.ON;\&NL7F->#$M-0; ]2"< MKZCU(?,#4UF^RMJP$-\W8[W^@1H!(^_ES(\.GKR8#'2K"S4"S*::%! 9$=O(#??&K47Z.0HIR.-,W6)7B"A*+ M&H$++^#76I_HP\JF?%\N?BNK>K+S_,J%]VD"K_J&XVLP#3WBGKKZ_>Y#U=* M\7HX3G2+4$=FKZP+D.)&(1NJIS07RU-Q\3GAK7NA+M?I]R:DNYCO:[,77,ZQ\Z>M:=DZ#::77/T:)$_=WY( M/?2"@\VI8RG*RD4/@&,M&1:MSWU=NXYLGB&G4GASZ0-PCLI>R-([.?-/U&[S MGMH77W[27M<10E3G"V-)L'#]1CQ2X[JT:-GSFG< ME 0KX0RUI'B2/Z2/?7/^7.CVG@!]:!>]@B#>Z'95%I8Y-$@>6ZI2BOAV*8)> M:DS=>,B[]&-#Q4YS4^&/0['8W#P0D !H?3 *_GNDX;VA3N<",YTBCJ1#KP73 M_ _>>M0S!M"TGP%\[3T*7]9",X#<8B"L^!\'=G\''CCDTCJ$S@W^KV ^6TV+ M*$%OYEA#<#-),AS$M:0M3$+A'"_$'&\_3; \GFS9I1,AH7PGNW9H_J1$1PYV MZ&_9%.4)_CR40W*A[?-S]*L?F%V1-E2I+W(-^B7\Y&O*/N*<(L(*"'+99W+] M>K]/!,L]N:\EHSPVO]_PZ+@>AP90\?O9H*O.WEGZ, &*N[X$ATX&+5B_&/,O M["US[O"$9A\HD$@+,/#[]@9Q1P)^'! RD&DV\F[\E5I'8V>M5M1]-*85^^R[ M6UE/=,SM4^1WS6UG^PX1C/@AZWL3@:6H=*!D*,FS$Q8A+9(]3VI?31VC^-X\ MZ'C5[4=JWX.9F0=SU8%0$#CWPEYHUE)W"JW<3MDRZ_?@+HH7KT@6!L#%VIAYAH6W^?>@K;HCGRC 6;ZADB M^4S\8/#1U,*OZ/L7MQ3A9]%--ZA^.9Z$\N]1L]Y9<==(?'G%+??=/1]>,W%[ M8"@_^E-LX6+OW>EV'!P]DZD/J\.#5 X>"[MJ=* K)'%L\IY)VKA+ZYX@F"8; MHP&TH8;-H>:(E;^<#?]++^$4A'XXZQANJ_E[PVI1BE"0\1G2FQ=5,OO[[ZT$ MM%T33'2Q'-%Y&A5NX%/"\8EE Y]N /L<&TY%SUG%R"A4D:#1FEGU$.EL^AJ7P,8 FQED%57VA>VSTXS0\Z "\8 MM5*OZ!(;LX$T(5\.]$P,J$9R'_O&Q!QF/&M>++EH?-"9DC57?+J_77+:PLE- M"GKZ72.LO214G);6 'KK#;:AWO M-6FM%N8$2=9O[GNGCE>R%!HZC#X7@W:5/!PR"O$^=B W:Y@!U? ML@(MBJJY)[_HA^S10,F25G/Y'^PYJ<[NMWS#??N^PT92Z<[S<$L "+/ZX]2= M:4.1*HREGT^?0_MN>KOBMG9849 @W]9@;%3=&;<2CXQ!S\PJC/;D^+2S_MC^ M5$N[1V19_!9WB8>V>_SFV\V>JY85PQ43X2PC@7U'^SXQL; 9L<@8Z#YX^6&- MXMX;3=BTJ .C,U(*2=U MI*C&FENY)//6#'NQS*WH^E;!Z6_RR:L"CB8=LI'&\TA<=Q_-.[:<(D#$6]5& M_L3/+D0KEUSV?Z*4VZ^<.N]_RMZ>\Z$A$'GD8P[KKT0^!Z4HK2UWDQ#D1.*) MN ;FH?RXY/KT])PA:)V@;EAKYGIO G(? MZ@#5?TAY@=21J(D4ZA&@M6JE"TF?W5J?NW0@G=Z50.NK!RWL0_\BAM[L=% IF3\#4DE' UAT(($/?FTMB@%P^MIL-&/X-O<=WM6WV72*+Q&BC5V; M;"%J,.UT@^D,!&R1(90$M.0/F"A*WE-M<=SH27?@2T^Q_D1;L'9*AYS16[ER= ME C>42_X-M][_NYO:=H/4=DOP^%9\ >X,FSKVEBW0UIO>X-X37G%5-4^IZGS M(V*04M-'/@M[Q3'[&O,H]_><0Z]3;*\]<16E)&)_/%%-,G8GO]+ET!,]I76( MRHHV"=P-*WGKKES\K0X14%8RMC\;\BKE=+YL2G%01@+:#1O>H%Z;MG"1@I@= MU(@]2@YH[RO=TC*;_99D7? M'&3L0"DG!<[%I+S[(4C)Z'#5**M-6!]P&43V2L?-]I>9CD,.G9I!K : B(ME MBY9=H1.=.3%KG[2:+^M2AS_" $([Y: #]=7-#9S$[8B*6;?9'JA%WTTC59\W M3L:^,-IZ.!>0U5P33<;.)A_#D5JI>W[%ITXF\*B#6G5)0+C?2,,X!2RY M+!>)^NG2ZD$+[>.XN%MW,JH&KIB+J__X6%T+13\)A\N\M_)2S:1'47\=7D_2 MLD,5N([">9H=J1T(T'QWQ)V8U*^K-#ER)HWLP88^1\JF"+>1 4O#'J&:$ MJW1V[.Z*E$VF;IA =SY=QT"ZFBJP1+> TK]+K='8)/=BZF+)2%K6)GK,>[:N M@;NOTGS*V4([:9O44\ BB'W*?U,!8)?2GO''NO[NO- 6-.6H>.]*\&@'-9&L M1_N&+<3-Q#\/_9>.T11=GF(QDR+^$SDNR0"BZN ER&4!6J'-P,R'C,N+M5.F MC9WS>DMGFJ=!!!&Q<"GM:1;EQ.83@+7=JW9IE!! M8, [,(!K4(HCBIT!1)?.ABC3%8G?&J;L.82^UP_BY1O8$;'R>[F^JQ'(W*'. M7/.X%TH7KB4WV1M+\$!9!":MV3?R]R3H@^/YRX6D+"N2QD'S%.C4E5[GP?E; MQY3-[W9IWX]#^>OG/$CRWI4D5L=OXB2#_"SP%>:+_LIR%ZK-"\V[ R;3S\Z( M7 YK*K']:VK%7WWIX>0;(3\PX(<0,UT)C"' M>_,?T"T'NC!/Y[JBA9I@ $*E*5OD,!"3M4_CSN-F4F'K[D]@9"G<#_HN?JAF MH0D+4#!V&-N14.ALO;/-!]F>^V&OG7LTG@*\7SZ9-@)W@YF<&Z2)5V3^;PFOU[GXF':D/Q&:0;X$'<^&,.1'99 M)*L6) ?E^QPGU7C61ZA5J#'O0/K%P=R/'D//'^8-/53_P@IZ&XY'7RMH;Z8N M,XH":PO&1!.L.:K=+3#=&Y&WQFKQ4EDP6Y<%JI96!TC0C_SJU#>NT2M1.^@6 M_=!C8*7RF852^<<9 *D&/HO1%T/WGR#&TCE\T)0I ,7& /Y:SZ8(1%/D.'3. MN!V>@-)Z3\(E:Z*%',<]2GM9)),[GI9^4\<+Q7KRWEGFKXR?Y03NJ+VQZ0O-\;N)TJE,.*R]&D_'9P M(U0:%'[,64E3;$X*.3OZ0R1YJ)JYF_O?+YVOGGI9^L65%@_(;#G^* M4$<2H:G'WAG#0<$X$BM7E\]K[.5'W9>^O6XHU.\*IT!/,:TXVZCY%"?T5PHY4G-CL0&V*+DU/S7RJ]DLVKVI<,@9'?: M,,'-9#* \GL(UR#*U1O.IT;QV]'PM?03(%V*O3!$O4/"=QQ1_M9>.8\6];*4 ML_ANWOTQY?J%SL9>X/81LA6=,W^/QY7>XPJK)V&2W9)UPTJ[0?UIGELG M):Q-98R)5N1C1/8FVJV%-H3]>M#@W#YJCS]ZC@'P1[]8=QS]EJF:_#YIDT.- MCSS3__L_ M_IS).LB(RGF*HE='J0P[T,$A94JEHE3S2LAA2(X;]D*)S:F49#IH.K .1.68 MP^A@0B;',&W7I_W]_/]?&^WW^WV.SSMCSVWY_5X7/?K?EWWZWK< M1M&K8 &:AQU=' &0"@" E'^ HA\X (!55/Z\E)>J\K5L^;)EJJK+5D(@:LO5 M5ZJKKUJY:M5JC36:JS6T-%:MTERGJ:6MLW;M6G7H>MUU.KIK=-;J_%D$!%;: MJ"Y;L6S9"IW5JU;K_'^^%/6 UG(@1]46#-H(J&B!P%H@11, 4_JY#/3O!?SG M JDH?52#+%^Q]\,ZM+84DK5JY;KZNGOVFSN<66O_;LW6<-M[$]9X^$1UR*O1T7'$/])3DF]<3,M.R?W]IV\ MN_?R'SU^4OR46O+L^9NWY17O*JO>?_C4V-3<0F]M^]S9U?VCA]G[LV]DE#TV M/L&9Y/X2S,X)1?,+XD7)'UP@ SZ7]?_+2XM)2X5556P*N0/+I#*]3\/:*DN MVV"IML;A&.0B3GOC[L3E.ONS'KYN6&%J=9R_]E+8]Y7KS/:,;!+\@?8OLO]W MP)+^?R'[;V#_&U(CRBX$$['TG5 M"_^NCI[<\U[8&R/!>W__=PF-ODX*)E.^EC_LO<;R8SJN%3WV/3U[^8*I$9)P M%EC*^;,N3*COL\22ZQ :#T>!Y417!1 ':ZDU, =?I\:I&P^/N*;O VR$; 1! M]%I4!*U2 "/%"-#PV6.\65@+6>R/ 0@=_N'<5R*A]#TMA>Y6#1W59=>)OW-; MK/I)#D)IN#TL[-^EWY53N\;0R3!^9R&@ (HZ*6*0%&TK#M$SP_Z"LZ7Y*]C7 MJ38F%^;1G0FH,060DLN'R-3R8-/ZZ/_:T-U.FDKV^5QKV-+3HA$/9\!D ?9P MWB<%H$G7Y2Q>_E]&T'A_!V$O@7'X7[/^LQX* -C+'Z;J;N\GA7,EW]/'L*@: M.(/&_C_]2N4X_2> =0L-M)0V]O6QT%VQ,*X2_:YX9S::HPPQ[,\3=KS#:!9$ M("WY=S> 5_J'(WWQ50U40; NBRQ_AR^/P27%:-A(\.7_824V\##F::,\YMB_ MG("[SAZWBTNE8-IK#5K"BGSQAGY,0;/J6+!H)I&!E5F IS'_B2I./O+X?S"$ MOAUGD[YO.>H)CD+HS RUE0U9JV--I912(+[MO]B6=))],N5[_L""*)FD'$VE M4<>_Q5D3LQ+;)N&2]&/I8QI.(RTQ?H+F_[;YKPSY/]C_I&0_8ZB&;U,\V6LB MR2(Y8657P-/H_WA%F"&*O__/_?;R>UGA4D0P6P\V)KO2H'HA+$8#]?C_,26' M0*U&D*YTH3S7SP3F<_';__ H2SZB3(U_"50 #L7TI91: _DV34R89>MO0JG1 M>O3@3&)ZVG_R5UD7X+K6*-%_&('\+_[%(:J:P"+9H27,1E=F46^2N.!T@*[' M_>\ 1_;D*H#ZU?_FXU3I,^$B=&21V1AO;_Z076GRG>3\OY%C_C=RI_^9 B]& MJEE^7;5J%@VJ@ :[ U=H2\#\-QD@YEDEW\ >ZGP.'U!]$!2EMY1*18_XK :@ MP!CTB*]&789U0,'8A0@&2UDBX90^S(@DYP$.#E_*D.O ^CSJ=5M[NO\X&+>S M0P5_/%KBUR^=?Y)Y,9HWJ72)(/8/2955E",)"4O8Q4YRG]>( I!!- GU!M*M M(W\I,;Y=.B)%ZD&\[9V",F:FY.%*SYF-# G47,8?'O%9X9MDWVCH5X;*?6]C M&M*5#RR]E>L'CDQ8R3ZDRH'A$1:P :J'B>*4L M6!@"UXVH0SF1L3&^0OHB?;8(6H,>HG6V!RG MT;C2I@UA?%OS7",LU?@]0/@C(U+EPD7BZT0%H*T,9>UJ<^E>:"--HD&5\0-9 MB&D]HT5YW=(N!;#Q7J8;@?J:KM2W.OK4(?ZDD)EC_%&9&MT^&N2CD0C"AT"6 MA@VKI 5CN(#^0GXN"]AW:/'-\KWSOPN?(B=]% M] ,^E.;UYN-&CE'&CRE?9K]971ZU#5.+$AEV0":5CI@W4B10)Z81]"QZY!G* M< PZU=TF\IB1KUV<]8RJYYC(T9PTDKN&+K3:BDM?K"^"=I#% 814$_823JFV M?VKI&)^M##7Y'+5K[R+W=:@&:*:-RW76.IQ3'A;C5P91!@!] #WR'&6H #JN MV;*G\_^]82F )@%\JIS)(>FD%RXO>L2:6DRP02C%2J*/#J"EJOHM7;.4CQ0K M0T<5AQ<0@JFRV<"YZA)S,_7OY89\&]Z,/>PA9_ZY.+1(NZSHC_9AQ &,%'99 MM3(' N<:R! X<&WPJ!E;[( ('Y@O@GZ'B@-F4H:%QIBEL4Y"HZ=TGU+]9PG# M:G5V87JO@&/R&3B=NLAU=(N_*32<2$ ?)$_Y\+O]Y.;<>L8@&C,G4E9#W4B) M,CNZR/-'\=?&W@37(X'@ @5P_H>N:HG-!GNA)R^K.&%4#IHI*)-ME+O+ZZ,B8R M.(-OW,T0!X:D$(3&/DOS/Q:_%N$ZV*J"OL>GX'KF)E#&2K28-GL(P),40*-7 MG-4?& I@^)U2HX='*#)(GEQ6@<>%H*AS3]J7Z\XD]G?!"M'M%F!A['\>8"H? M4#)/;]RF %KCX]$_\J6LP?HQ+)C+/<*QT6N/C;=O5"$6&[A/".( ?[\C%JFQ;;%J"N/H+;%+O&(QWI-Z$!8!:[.7*!#F% M#E0 R4V9<0<3YM7V<83%Z(J%3T.XT3T(P=([CI#V59JY7'4TER@]2F1"I M% MT,[O2Q>DVQ7 PPR((7[JO6P+9HK(?TGX^@46]^=VZYR=4QTV% MIBS%E :QIP(XL-&OZTL(OTC>Z[-2D#7JS, L7E:JUKU^!W-B0[O_/Q9;$XD= MVE/]L]\ _#U"XZ4X940?DM!+(W6?R.*KF&2*T)+^7\(U<1Z7!-0#L\LEUYZN MT?-ZJE*0U8M5 #1[V%,%P.^EK$)/8LER<0C_L=Q >\1/IHY3QGRUL@IOE4\Q M#C#A< 4 ;U[F"8LP#+5!R$^ ).'*RLO@T^0IS@K@3S_89_V))M&[]$=>\!=S MO7?]M0O'K*2-12D FY)WYGHG?4JX]K 2\WFZ^(0:8<0L7:;UIT^UBI5SR8%M M\03.?7S\UEGQ7X!;AQH4/G;!;Q&\J+\ON56K"$%4VJU:\I5:8,EBE\>&"83( M@5CA$]@[ST]*0;/:=D%H^B48?5A:\W=[J(X(T%HDH.<B#NAQ=91T@%0 Z M!I =4.[U1>Q10/CD8AR_SUI\G-!X66JN#-:=?X-5M^,!A)\L=:IRY9L3T,?1(^4H;;;<\;0R0OV$9/ \0^Q&F/@;$S)8 MB:;6X,]F-=CM9R/"$Z>.M-*'5CH=$$T2-*Z 1=OD?905($!NNKJ$4J=_Z&U%!!G MUL:XR?8.#3>X)GV&'JFHU;J ;;:,8$C>*8"5TC*39R;I6KV=VHDY]K#G3O,] M8D<-Z,U1B/Q]Y9\P!DI-E6%\A%Z:5^YP._&&T2JLS>]P%].XTBSZ,R7ESPG\ M?O1R9?!,#_HL-!*2(?,_Q?O1$_ZW_B3;/.USBGR;^I+&4*[UMN$M=%.JSRSF MCQ%GOD^\'X3FYSK17QZQDBCW"9)N:(/QRU!2;>'R>4P[&VXS MKP!$76[AW:!N7S]2K'*VK0'P-$)C2-P&)9X'Z)DN0K*YU!K2(% FV1'"PM0? MT^5Z-N>J.32W GQ=L:,]ZO&P]$_<_QQ3&O@$>+@ MG40Z3'""S@ O!"FYWNVIX626[8CZ1^E$XM%-N)98@H<]K-3\SP[*()+ELDJQ M!WKD?:T&H>/'>ME2"'^!UA9YTG?Z21+T%4!(Y;F4C^44S&)PO0K@+T!6+KXH M"%<>%70C8A]@/GU(^W4J[(@>.1Z58X2N8,AO MG5W23T#0YN^;Q!GU6,G$=4)+'TVG>N\(]CL[\EQ/+4OVM&Z,Q$//'%+&+$T< M@[AHZT?FVB^O=JQFFT*H1RC\!4EG]H#Z.[>8PM@%!< [OE-24=\FK]MK ; T M'BC+""4$4G6#\<[1HS-)4KBPW"'&_L3ZZ?M MPNV71R'"8J$>,W2$1'*@TQ&U[< G/Y*-*5"5>W\>UUY2FY!#J.K2RH=YNP!(AK, MB+\&M(3L-,B1D=?I;%+L'+T(UDZZ9VK3[@9B*,E*5T]R_E2(WF4! J86;K 3 MLRC!6[S 9MD0Y@2:A%0"$1UKG0[ORB3DC=@?6W"H1^ 6KTFO ":L>11K&0,_ M]*0#:K-(LB/55N.:85$I;#.<>*Q#;7H%CXF,20,LR]G/N(G#NH:"7U8,45%B M^AQY_K42FCT." 9? MD5I.V7-4@^>1& YI@)#C-&A7-9A.;E3+>&P03C]06$M)/0S VZ%C2*18TA&C M$H:\#B#%;'*-[ K25D!NE,XY&%8ND)6@GK@#-O*%6H@/34<#*> F@5KBD:EC M\?X&!7BLN5328<\CV328]RN 'XON*I7;[%CLLECL<(>'5\IE]HQ?07CB#(7S M#3[+$B77@[LABPF+5#Z8B%*U:B:+9C(#<5U M0/-*?OM3S%M:O9<$CE\Y/51/KXMSU^!1U@C56&TD93 M%#V=D/'7M5\8P^QHZ3/=69?)VNIX#._P8XBJ+SNE2,VDK2^L* Q0ENP)/U4A MV!2]TX1#P01D8J]3R^P,NY8/A#IZ2>;L05PB$R&4+EV7=/^M]+ L/)TCE&1Q MA=SC6*I'/8>*.V9<.^Z@ -3Q447+KB8,^!D6&%-DA+G.?/M3C(N%A0^@1?I@3$\X"+N%9@V^[PQDAO)['AIE(YU_X!PI@@V3^V6:6 M.@=2*92?U#8JFDM7EY]!=PF+U#1.8*N,!_.D3HLJ][,H94[>2G8I\@JT0127 MA*;*OT@\U!PA-BQ\'4=8!*:Z075YDTX8,726<> .NQ#NCNNB/MW2F$4W91H* MAF?-A?-/K05:]89$.3X7Z&KC$0LX9:A4WC"S?\]=77.C#^HXAJE4(BS&K\(E M@6'CY"_%JV=S^E43%]W!;JY8\9+A GV$1$=$( .V0+\^B3 GYYGW/T/>F#G^ M]J* VQ'!2<=7Z#P.B=-(D) HK>[@Y8LV;2*$8>QQD\V[ 3/M! B>(@MISRL" MX;J(I)KPHSXB/Q&'VY>P[&K$Y6,Y]1,I-A[#5',:9EP!]!3[V'OIU9LF.F,^ M0U>3-&()!>Y@BT=I0 ;))^G]4BV[)U?%H=X4$6R$?YJ"R#P=C_2'F),>SQH_ M2M M_6 ?SER=-*0\:Y8*)^Z*&\ P![&,\>4 N64Z M80E4.(@&4>;2@JTR3^ :#"] 6PGHP['$]Z3=MK$$Z%J#T'\2LWXY+2J S0E: M]IO"VYU5XPE-A*R>S#7V9F/L AE!*:)>Q:I8A!]$5Z2)T@6WVJJ@O8UPEF"D \.*))E\HOK9:.>'U2)]O8%0J5^;)B7T)!N0\ M(X%L"W1;*.X.0N:B)P/!,,6H>P7&52;J%(<"CA!6"@!\*-*J'ZP\]29;JUJ; M0LI.A!?:*W-CVA^72$RN1T3JW%V\P54 S(O? *="RI&$74ZP\XU,/J=T;WV; M42J<;":=;<'(SN7WRYT;@(VY.@/;V%CIPGTN.6V#KU\!907Y0)ONYP+#3/ M)&9U3:Q0ACY\:79%FXEQ'5,'I/7+7]QG4P]'.B'A3XVI->CI=%\PL1]9 LH] M=@C8!1L* Y"09T_!*68/BC*:V# .J2[9&?H5EVVWY 'Y.D;2@%YE4\\"&>*X MQ"2WJ!8"C>O,WI1XKIYC7!,;3@\.7_2X;Y:NGN[7.Y=_L06.($5QC"RE)2!; M[6RKG [0@$3K5Q2G EP6LU"O5!ME5'X]1F@]J(*W$!@ETF<:EJUTFC+1>$5J M4Y]8Z8FS!;$P>9T8FW_#5Y!I)33L?A(6GLZ&\.%*=3D(G^I() Y3YA8[0!\S M>EL;$ 4B/3HSB< R9>[!JB,=IA+E,2LANG2S",886FBZ2 E0@QRHIR,M0"]^ MQ(;9QGM*Y6#F7LQC^6)281%Y;C$-<-(% M&X4W,!87.!6.T4? O92N=+FJ@/+U@L=8>V,7FD%5 ,_SHPV-;3F_(.BG%B#P M1*?#RY=Y%2WB&%Y#I(C?M[ROXJ1Y=;S:>T&:HS+EGM"[5@@4]!MM^]=-WN!;\ MXPHX2YN8Q3L:\G&87Z2FW7"5!%J\&U:7K([+*G1@3RCS='-&;QO;)!*N*G%W M@T!,ISEE5T"I!L[UIH9J[HZ$MJ?[@* JN W#.Y(G-)+%=+7!S3LBC+L[W3J* M,M7LY2> H5\VK2RL-.W2F'9_PHJ67='@I\APV6Y_66C1A9@3V!E##:O*IW:^ M4#JN:)E\YQR7$>(34G_"%S]C]"X[BH%(E!O+94]8.22G.8ZD.R["3#W;.@;< M0G@ ;%CZUF6#2BW(D:,Y>QJZM1@(O/*\62J/08RIX$A4\A<)K/WNP!VC< J= M)I:7 [?J=>?IZ MF( 1PO*0&::&SWC3MJPUN,,#A:&[G5 );'3)QGQI$D:/0Z']F:\U0]\CPGO9 M @:<[B /Z]A79I51(Y,0,"$\-^"VM^_?5:(9.>%PP"P1YH:ZISRD0\6;G:39 MF#41,($U$LW+9_;^$#"DVJ9R%_.;MH16;Z&RP07Z8-TA=_!=/K-.UR@+CQ1 M1W,<6J_50< K)PAS1KTDTW^F96A3_>7Q:>BDX&]&IJ$C[^0+ES* M'/> ^A9#33BO54K7V>$$(1&I(=1N?+G&B5!+90<]#)R$FX&K%$"$1MVNA1;\ MO2GQ9H";#?H%GQ?*ZS*V7-(L3*UUBY77-3K9#[YF5ND T-S7AIH@78DQH1U? MPU4#Z;9W0B%C/M,TN"'W/ALS*R^]])A6QP+P.=_#[W>JB]E!,73#Z]I[( M=D\XI)]DAT=&MQ;_$AL:DHA#)+4!=>/'8+(/+=P>Q$Z"(-(%TN8-AN]L3$,; M$$))1/WC:>U>"D9>L<5L!\8AAT2GBBGM">IQLA87]C#2UGW]-DVR0_H\W(B^ M..5H.;E43YEQ127P!:2M I"4 /M/![>,QLPQSH?3:W15M7+2"1AJ!:2( M8914&8P1'V?YLG41A,/ "K/7+9YE#ER)._0S,$5" M:Q#G]M2<5@FGG!]P!XIRY)V5;O5C,>H+\_+&, [P]U%FOS5!" M'I=TWFZ@NU,3Q11!D:HI:;E!%02!1[@WDNZRT\<$Y;$Q!,O#NH4.2.0LO AP M,;R@^5XT)5-Z#05?=X_)48J+[HQSHV%D"ZZP"L%BT\"4D$_D_;$:SL7C-_5: M8B5AZ"9Y!& ]9#9F.$>F5.$U]77D-$ MB#BP$AU@AROT&#&=73)%=XN!RFO,W:)]!"W1+/P)C?6TS[O">\E4%OHO]]UJ MNS3L(B:O *;^_:2"]"5MNJE4=D5O(-1:J\6*X5.\V7ZP/Q)3:1(3HW+%?"O# MZ%6,NTK)LG=C++;N3!ND\KV(/NO @,P =DNQ:<=#7=@#L)(_9YM.:.Y5!N9\ M2@+H,^5 -P?.$K$KT9T)UK[AOR C6?W(#PO%9@FZOO&G=Q213I M:B;=D%2%4 [8[S7V :WF6\=X$>Q28V+'6Y 0[V1#"T[@369IN,Q#O39,7<5 M%15?+5XA;G'E*=5LI_-%E<'V+!+2:5$GUPF&LBJ7)" M/);8]32J!>/3I "RAAZ;^$Z;1(Y%2-\K .06#A55HP!68N/>,XY@"^:G[%<^ M*0#EU(\9Q]OZT81/7W^-C]U)H-7 .>G9SCR*=SCEJ7^9TQUZQ4P M%@HU\=O33(?;< K]Z8_X3K ')F8<4QV@,>$GJNH++ET2,Y>FG<*9P1:(4$+M M%&P!-D=8[%U"-U3/U'"[ GKN]IM8!7.+8HP?"RTR?I&8A.*R8@7'07?0UL?2 M%V:4HS)QO"8TZK=S$:#A %C*T'FO2EI<5=Y+D6@W*M-PXHEI%,B3/MS MEHN7(7 D.1A=WP&XB>C;L\3DQLUWW7YGQY#JR+,,MS%A/?6UG88+E[&'R?CJ MK-? 5G8V?HO0Q6*M-H@ZNL'(JMP'J]+"N4<'7>V M06C4D?_4CUT=L;$!TGR<#%NOO_/G_8L81,X.1_B-8.['_K)H5KPYRR?91Z5V M4P53:OKN^"\UIG_N'N;K( :FUA.='(=->)RY"\YE0M!Y"D![QN<$OO'>FJ@B MXT\[E)H-U(W2EN/;AU8Q@R."+F\IW6L07WOU+^9LT$ 1^=YNC0,:J35Q_3N3 M*J!K _,':C6_[S7R^KO7+-#C#L&Z<17T!J&X>@'1E\.A$V^DX.=>+P#7> AA1-*SN[77@Y15FGS<3O. :#=[?N8MU>\!FC'3O%^JV M$)),^'O&B O3WI,1'!NX 1OT\D"TZ?;..[-W0G_C!E@1DE.I4Q_)8E>$5@XY M.T2F80OP]XJ1[&>7/#&0P'82^.^(1=)O$G2PV8_G XWS&(E'3^734Z\=W<<( MQ>R;_>S1H]L(%\:_/CR3@+9D QV0;PFKJ681D^$^?E(] M62$*)J:.G,HH"XS9EN.#"3X_&E+1_K[1./(% #=*CKOTOL$C42["I\:!%$!. M['R[]UE*7YU"U'_;BF_H\">+-YA,P*;,6CY>UY M!$BAD>-G;L5.Z$#;^,LWP*9D27(HW,9(-R;"2!K6_LMKQ4A58I_>PPN3K-F7 M-A#4#PE,<,I,X/1[L/1H2?K'*W57-WVXJ:6:1I@IU@'Q3Q'Y<\W&?Y7'UA@T M]CU]<:4,Z__[]Y/;8$!C\+-E5B9NQG.8-4S6SYXP9*-K7Y<7?>+_BGFV^#'LE-7]BP:G<:^!M(DT/D(_KL' M@D V)5UZ[AGW]ZLSWA4#9Z_UI?S<,XL:9/$/_R;0C6\7"^[/-S 1YNPO4ZL: M[ZP+]'_Z9>S;WK[UNU^!30#'#EN\#FC6[47Q^4EF]ME?ZW)^>C^\T#'@B+U6 MSS!AD?"48YT5""1? 33)M[W+YAWDRY^]\&H:,?8R<-ET\JKOL[]LA7#VI"TS M4-#%#A5_WY$:N_GNGOY^73WS#;.D\,P3HA:KGMHJL5L^H=Z'>%ZK\L<)KZ$ MIE;T2.TI;3<'#O)'*'3I:0(:=Y?A^8[ " M^"=V=)OMF.7RJ;TWKK\%)6P^#_N%*Y?OG8:];9ZF75S:W#\XN4X!!/2,ILA= MX7K70^YZ'SZI')]C+R>@MOS KQ4S]K^)_>;Z*?];\O.PKH%>5_V=W;>?XXWX MD)M2KY#M+:DC,H_32>MGQ[);OD^\-=XDV"55=@?*+XG\C6KLUT.?%,)4%=ZH5]\9/K>5[O MQU2%'>O34*?KEG7^":K9:8[.AD(A!V .%^X6ORV;]'E;G)=1FES2,_ZV\D%C MTQ$OBL&K]PLB6D&MCM1/ &W9V6==;VULLF1^WY>IY33OG(Y=';+5, F#M #3 MR0WH&[X?,SI!:W@]KB5V]^/$#^_JF<^(?>SL__+&S=&C= MW^V[K0%G%FFX&)\A/4EAZYS?="-J9?^!O(-+NT."#LH7V@?ZZV[@*I529AW( M;CJ_4?84H46-\R:Z+*(.K'W6I)Y\[O'J.Y,9P)"VT5\AHW6.ET\D3>" MQ+I7X&89_M0O&XV=]J\WKLL[?_L>3>QUAE_:U_"2:_WAQ%2K:Z_Q.N4D44'F MB6B=E%OA<<=?WZ'+U_YX>A.9[:CZW6?,I8#R8;?:0) L<)S<%SY*NX5P'3EG MUSBTFY];:_S#Y.-1KY/0A@S=\ M!&J'.*>D.G+6Z];CRV\6-1M6 &1+\=6Y#BU2 ;/58@)A6Z!YX!H[ =W$Y.YL MQ-PZKR;F\2=6PSP^E%MK]Q57R&^'F^?JTN7JP^PK>L-*"OBW#_PZ4DO*PA:#48%U_\Y M .G;="C,"756-@0QNTXKCO-8@D29GR&Y1!QU5 !.M]O^-OA' +4'-=!' SDK M_ 0AORL%=6[QEZ:]YB[?2)3V^%:],N.OE1)KCC]H75 4/2W0+\_4>$JX-B'\^*SKB*O*FNTZVO?E\-"AK# M0DPA2-X,X\:PZAYHG[8G'Y->2DWO?>@2_%HYSYU2 -'N[-J9W"7M\QN6KL3Y M$KT%>\F-LGW7]%'W_]KWY#OL]CA;2_ 3.D.:(3:RN%%T#ML\0;!R@F+B5OUM1ONF-OS-G)S-%FS MT%7$0NC9:/%Z@:XO%"1.G]V%?D.E>Y-9$GSM;2'A-V?I9-1P2YU6G-T(TB6B MX:<="8OA(0,PZ*S[%W:M+#^C#)UTI=@C8'^G\K3G^S>'Q+@V,?ZI3AN+,JMJ^< MPG)J2EJN%+%5305"V,]P+'J! >/D+UG/Z_W8(:*EXG=V>V_HWB%Z-FT _+/[ M@QI\?J#E98 ^= .^^0WIE87 HBOZ M=]X%W;1:C?K.F6WT"YXJ8MMYZ?&(#;PS9WM22\0AQ^\TGGI5U;5SQ":[9WHS MZ2#;-*QR8^UG!9!TS1G_0P"ZG[+U\E9-M@C" ME:X*F^1"ZA[OYV:^V4WSK-WQ5\!L4_[]%NI^>:\2BZN7O&7=Q-CP_15Q6T7LGG?:[;)VD MSY9M/MI/&O]KL%LB,H6=,I7FRW2[41OQ'7C5ZOR9L_S(G-&C1F9?=I":G%\G M[:[WS<85J&QE^=RP'14_ILLW]1P?9<4_?X95Q?WV@-&4$ MT;P 5^2WG^65&H24O?MUA2V[7>B W]J)83X&N;F/-XJOB=]V<7K['M9K2[G1 MS!QATE14"NW/W^[:,@Q#&+%^?)S=-O&&^'O4/J[\CO^88QC$?-I<-GL%7,KG M-%!^DD?G7(K%3B<"@]Q3>C?45)'PMK=)[!EHT<;:P^)$_B,%T$A86T$&3V8- M1I'F.T>F6*Z!E[HP_VS/O%4U9H%.B8=+-GZ1KQAF&]E.K[H?HL<-]78PR;;! MNMSN(#E ]-3>U_VC[UBAG*#[R:Y=4H?GJP-/)TUS=X3L<6$^HERKF" MO9._:M3G#F%T."K/' [[:<7A?B(DA^4S4O?ZJ >L.SB+>[28O7(^.CQ7.V,-6BF,_21BW=B07WGIR M/G#]P>#9;1>B#G:7KB7O'_WE5I 2UP+7 M1;0.NYM[&+V<^:N5W7MD.PQJ ML2-V>F[VW^>KT/P]/^SEG\SL._^IHZU< M>-4:(=LZ!56/V]$EU\$/2]P>/&EYY>_98ZV?4?%!F'Q^Z&]?XX;O@M^'HCVG MY 2V29D:>L(@D,'J!HU>IZA+SU'%_G&'PDM ME>IG[&TX&XL[\&NB^IOS+P78[B2*OEUJN/M\H)<[^TW/M$3]N>.A^#:!I_Q8 M/U4!]&H[*8#O\R+:DD4 LP_V.P/U\&G+IN[MA\;>36)WOJ?_M8^$09: 64=C M60J 5+V36B.GL637C[PY @Z/IAXUO) S$-O1D# MDWI]KV"(,=76QA15KS5#K+[R56$&H1&6M5' 3N2")\>\Y=S6(]_Q6\6?&AWI M\W^_>Q%N5.7SX8:9Z26*0SJT&(B$O4V3;@SR.JL DJLZ5^W^$.6G)L+8"/BOKXZ0Y^I_AQF?_PJO(7 MLI!#/HOI:^J+_WI7P/JAL%6M-](6M^0*GQ.H#+-?6[=6''@;8&LZ69%N( M##P3'S@ZGH#KJ0HRMW.LE08?Z6D+64=E'G?](<*(&KGPR+HMU+,".U6!$'C &U8''CJ;[F1ZVV3QZ@K0ORUVS88\9]; M$1GC_97#/N5F0>M_:X_X1EP9_ M&:"WZ69TJX:+1M3TLKA[HT@W9&"3_M.'AI5V1VKV=]C&@@9@N!4 I40!HGZ^Q76:35EU]"9KIEB(V'$8=:9NO9[S% M?"[**N?HC8'D;E&CJ6/[-!!;LZJ)#$; M36,.Y:,X )NT?(H$@7%JM[3"W7ZB4_&YS0K@%/Y>_=2PA/PY >U,8-U5 +/. M4A<2I4\!++D$_@X0<^0KLA2 65X397X]6K)=^1$PR^CSDSM/OY4+?22ZM-2D MS/7 &,O8BO*E\NQ2ZGR^ LBV>TFH62]/V3KR/>&Q$8YT%\W)!TZ.IW2X ;J\ M]()Y!<"[]L0;J\?"/FQ'/_6/LD/?RIJV(RD !\??FFZ8(WY\KCUP=0/Z.D1/ M%\GD4N9$1<3;JIJ8JUJ\?M[4?I)E0>&#&%]8E](QYA/#YZ$ @A4Q8[^JT>C] M8HS65"*70AMQ,I_X%;JB5<0IH/APQ.YXOEEZ>!MG>)BWV(G=8#^6V*4'-@E/ M ]Q7B!@7&=[QJ =;5JBR2^;U3(VK4*G"9G5K#4MN:ZMQ'4?G_6<2F[3(IG2K M6 V_7<,E_C0JF_+;MBEJL[NCB'5U@X7/3G_TL&D,,RV4PC_K3%:6R6/QYP% M@+[>:;MK]+J*E6&L,6'FJP)[Q+0%R>2^A,40.V[PL(Z-WFN[RS&\)JI\KTL!CB$ ML(2\TF,LF4M%4HMV-\C6 3\%4$8X&^G&:BJ850NG$'QF_:WFP 59=!^!/!?X M9V1%>TQ2+VL63_G=R4D1;HL5<7BRHZLR;3/=;(X1NPF)"@#1\82#;#5:P14K M@$(+$*B-E0!Q--=E"X22CB= -[M-M6VO"8,";/ M?L4&8%<[' Y14N>&3=6#-]1S'K9-98FDRX!,>V\)M@"?F]:_GEC/;1,QQF)/:=^"F.-1[!N\P)_)WMJ?-&,6CB[:X^?9-<]4Q#MJ'*W%7 MT:!""J'>4[QA'DF8(+K8982;CK=*.VF^H38!UQXU(XY)\S=4<7.S(P< ND$# MENU#+E/]75([CV&32OLP)Z0MIX!M))99T&?6OV*IP!L&^SOS:Q-CU9<$4_8K MJ\:VC(6WK* ;=@8#'#@P;RJ-'A/-%X/-)QK:#'W9):*'9](>;FLJ7.1DQ\IU M@-2_BE^3+">A2J4H/3R\Q83B'N9$>SA#KPS8O^N)!EN/&N8UOBE6?0W49SP; MZM8-W/O$>8HQ)(=0%X5/L&,YE%BS))Q4/IRUP+IW&I&!*73ZJLD2F<)1(B_$9 M^8YM/! I8BQ. E1P4GAAD;$"P,@K]@"XPFA AD2^B8]-BXT;#"=5V=!+KUYYMVI24 M'=[N@)#O-78V*71NX/22^; '@*.M>JB=1A7WSX_U-=SG^.GE+)+3Q5Z9G5R' MM0L0 H2=_*J94'&SSJ'/O@P.NI//GKI8] M^0=ENVZY8TQA.>@7"BJN8P?6W9)L?H!.V^OR\@DS:&JL,C#%XOO]Y.-/_![J M&=DM,:\OA6@BSK#2TZ4YA$D<\ZO[T,#987JTZFSS=9VDTQ.>&WKLPW3WA6G$ M)FF$QOS("&^V9=[P33KG>::N^\D_EVQ"=OC>+4)&WC'76\3H@"1@@76CL:7 M)V%/H,^RP"V/ ES'$3DUC4WZR >[GS?-I2VFL@F-.].,#?G_Q) SXHYI5#X] M%):663KV=FVDJMK*R<A&YL* MUN;]K @BG/RQ_4#J;,C.)[=W6[7WF/D-)5BNK;)!<,:N"F;]=A7= M^9GL]H/GZ.EW+C+.2G][)'9#2[Y%V!*:T.NNS!\[>SJ*>'/HQX<*5RE,KNGB*!QQO,*.B.BKB*U)=[\ M,#]'K.WP(6UTEK7-,V5P8=657.)X-OH&2\5.G5,:]SI6 &O^D+M]]7#:M8\E MIR\^NG_L7@?YVO8TCDM;$;02C:W:L:-V&2_TI^OX>9=GWD^.KS/%WKW4%V8; M3O0N*^4?8']KN1V]=H:\O6S;6&)G%(D:VL#^Z[IZM/>8K^?7/C0)X3+2?[F\ M\YK,XTC%S@G=;2'%R:NTDII/)K0#G/Z^,G2SC_X'Y83&&]>]F"6RN:L911^: ML3<>YF]E[:.-PE3ZE&,B?A?%GCGD/Y(/J]%6S7Q.SAV/.E; F=PZZ9/+0LX*.#*?>=4L/O0C8-]5C\(7[]P%E_5TVK2P&XH_Q M&6RG9"&CSZOE^Z%KJVLS:.66#=%5VQRC\O10B;=L!F)?B5CBYB6C@-H]@N:) MNI&I\Y_MXO=C]@7&#GX9?PVS//Z\/Y%')%'SQ=Q:]\<(< >)B)8%U_ZHP0K6 M-W\XEW_VI_CQV;>5)U>^:BCYFJ9F>P$.YNN INOX7_;)]<4?63X:J**^MO=J M"N#$IK58K8-+]_9S-GB!8BC5JV,I=.@ZZ8://WX+T<:_.@_%/]T]Y!2R\MRE MW8TKFYJ>^!G=_!:G115_].Z\IE=AL#WPV-NZ>\[YTT/3SA.9:U:H_VH@.W07 MWILZN1?IMG"F]L["L>I"^?QQ]3SKW>79SKCT.]B<>G!AXZLBZ$<%< 6YTT7\ MC:]V-*0QS_1XJEOSU,O^,V=NPS,U6;L6PYSA:(N7PTDQLIGD.JQYSYZ?^WU. M_PQ8OVYV+;2BQ]_9S)#8.HU>*6YT$]3=$,9O%PZB?7Y"<&O0/BM\6^H ^ M\5FMGU@8Q1EZ2&RIW5#QG>),//]C0Z?1.0,,:?Y8\.>F.VK(?F<;&W9!=O3F M!-2(^*A@<_]\@?C,BZC LQ_VX3>W##*N+"W^Z6+5&F5([/&NE^_HYG M?&9S?@KQ1?/XN;[7C3NW_I5594MQ7&DI$JF>"LZ@!>"-:I8NYY0,7\ M;/_N0NP./JZQY1I#FX?:7&B7@3U9VV-^,Y*^2=2=\X8V!*PW!R/8U D+\!3Y MYF/8:_Q=-8C4M=22V[]VSN=WB?*86 U+(C QBP;^&*$"0%:Y4@RB2#SGC*+'++Z=-])PBG3#3 M//PFTZ'!A%TY;@\KJC/$ZTO/"*ZG7ZSA.]UZU%%^[2W)_%TL]^%F]_8S[Q[M M&M/18P0L3BL/[#XW*R@D_?4IM6913X9\ O:%(*Q[KF^W*CHR=:ZS:!H*%M), M0F[5VJH31BL$N@9D:?,TTDHF^<1$8%Z*L[D[KF6<5P GJVX$N=""?>]U:T0F MC;%S^A)0[.]R+6DD_^#\?#ZL"6EUHA,+5P WR]U.[S1<]I?\P=U3A*G&T:.V MPR.1.8\"K$^]C7H4>/?IZ:#N:9##G)ZCRTESP%=^32 EK$4$!D%S"RT%*OO5 MAK=?._.)_=3R(U7M_<>/[T4&U/?55;$O4FVB.6'30^.D.:E[5V69] M07/Y AIBUO,7]K90GAUF_3\4K=TQ>BRKA\=N[W.WA?OQMT<5M"1 W"!( MUTIL-!YD4)EKGSV*8C3A]9(?=R(%YB7FWZ+HR]=B,-THC9),8X=P6OF M,%W;\6WSK8PVJ^E-:;#1\_:JUSAZNGO'^H;)U9C10(^@EU'D4S^"VE0;X^.W MM66&P2^;$K]=NA TQ;!ID): 9X9[WYZJSF.AGAJ/])YAP(GFJ-/]!="66LTO M/)3)MP&&69ZG3\T]TND[A'LWD8N;2R?EM@+SU*N%C,,"C=+BG^\W3?VF%:?L M,T\Z_ ((U,QVPRC+8.Z-K*!V2YSU(*RQ[@9WV!.$"/J[YY7?<].#QW5YF84"+56*:=*:SUC3J MK4/B]O)AG<"S06_2S?;%I'\W40 )+T!GSC)N7,-HG2MN>?'L?,#UE0\/,KNJ M.RT81[^Z<"3ND!)YZ_"L3YQ5>CP7 DF*+&#G_U8 (9\@+08:882W&UMUIZ?H M['3\WKFG>2\#]-=*AOTKF?KQ8]$_P_VM#FT4&>YFR2MV?!P]Y].TL)%W]D>( M*##9/2F6EW?OTYC@_=T"+,*/7P1]C[ZP)SOD'V-39[-56P-VE+"$V)47%J;# M*3'T;KR*_#LS?."W..MJT/CEIJ#G XGEG"1$MBW.QVCR/%)@G;(]O]]18%SZ MQ*MU"-M,'?ZB\A:KM\% 5:0GB3WU4-S&EL+$90@7!4",I1 D_O8P-T*#'7@[ MO4G'S.;$6W4'B+G5'*\=PSV)-Y+WQH1\>@!K+M3ON;K7H'_IZ'%1>4_EP:C< M/:23WF^? =9%"./;LZ1D-DPSRF<*UOMAFOKX?M)3+'7(%927Y#B5;HTUIST3 M[;VU9_;6/IEM6W[&FU6R#'+!V3+Q;CG SS"J\H;(H,V_=@7I3N] M"L\8SG[M]%X3AJ^8@ %U?D8$;S&N..I+_9#=!_[$QS#?]>MFOFZO:#TV.VNK M/JU6>[%M%_I3W;,4(<4NP:_\9WEV5*?\4;%UWY MMSO\#M M]N^C^49%'Z:<%ZE\=/",4I4!.V:(4K\FC'J.QZ:-S&T)L^2[AM& MIWBYGSIHJN<7EI50U1X&[:FS)5R!:?H;;Q4S1FL\[2TD1YM_SIIEA&9?/'F& M7G)Y6>*T_JMKC!NH+8*]#\M[I*XO?\W?,RBJ[=[\0&,Y^MI=$KW2VQ/>N./A M*Z\D HU'F4L#1(2?%+8Z00UET1>XOA![I=)EWFY$=_N[?28W 5C4,X!=9GW! ML]_'$+4LBC#_N"."H"4.;]KE\,RKY=274Q6HB...;H?W=2XWX=2>R*$?\[E' MF[M N5OX9(&Q^,W_"GX'LWK;2\F.RF?^ZF-WXE'3SJM";>QT?67QL3A[6#'A M#;V!L#9NO5(I@D9K3C$]8K_DWAERC;VW:65:E'=;TVEO[8O1!H$?EQ:_6^>E= M&Z9:+YOTH&Z_^&5L7)>T=+CV?=?.A^:?W[^Y]_#V"@,WIK=6YF%^-$3)O;(W M+AT+($#JKLCL'+K/V\2M1Z9#<;HWHC/MWA(MXGP3$S/=+//G9OJIK(R6BJ#U M33-0QN9B:MO*[4+G"0=]0]5[D 4HP'YH(C0CD_8.:P746E0O158\&^)9/U0E M7*FKBA[OLTH>&"L %]I=KM@NWQSU>=A9_N56<]\O_]HS":?+J+N(7TR7J<>^ MF^*H8G5'$] .VR]_1U\=_OG9:#/S=,H7;Y(%ZH=N([*T.VJ)6_#[D@8T--X! M7"C+5P"^=HS$PBWO!>1;U[[9>I97WMY ZJZ\O:9@7=;@)S9@;#DP&\@R@IWM MCD-'5<:X/8Y^.EAB4;DNO-H-\G8+!)+?Q429B%\T[ZN[W%.->NZ"N J;KBJ+=36]:GO,R=[/!!?R[5<]'\^G.R>/S2 M"KEA!.V4C%KGB_1BYY&N(HZ-#/IA*EU*V4GC(7JO7^-Y+2?=IJ$'R*7XZUH% MB5E9'Z]PY;ASQK<%UBTHX[=>_Q=9;QZ75/K^_Q_"Q,JDTIFP6"R7/L[C'/'<]W6_KM?S<*[K7K[R];-OMX[DS)A:=F?-MJS! M7_9,!R8>C3UY\=[J1G_S*Q%ZN*- M?/*%^&K]M4!!3NS0SX/+/U(0?I*ETT] M2G\S3V=UM>3'=9Z\P]YW878:=5YHP3]O6QS 7$HT]U-%%:.B+S3]7E3OL?4% M">-S$Q[_2_QPK>#XIK=?YYY/O/C+XPLKYZA^I6W^.?/ *<8R\KJ?14*8MX2. M+8*F: 3#-L!NRVD(\?63CM?[M>2;\T:VGB5A ^4#<O9YL:*637HR]5TV2D]M&!#OJ1#EIUY%_S>.LT,TJ!$[S;NJ%(/=-X\ MOH(_[ZUWQU^I0MC#^Y[55H2L/ M'3KG-!!\XO(NO)N<\Z;>ZX6_',%H'.T-+5(]X_V][/ZOP=)*S^K5,6K8'6>6 MKE5??D?S_*L':C0?[/KS$KF\D]=Q\O?U+V-O^NEVIR_2+6_W#81$G MNL7K%S3^3+XJ3,^X$"?GS.X^+CV>_-+CP\DGU[-D\HW-\TI,[ <,ZKUH"6?=]^]_7?D3^KS*4UVCZG9I E!ET=4OR**) M=?LMM\(#+<7'5 /\2]D*Q>SN;_\2XRPI3=&/NWX\ZX.N3$)Y[7AZO:?LB^N) M$Z\#X+%@]@=.V;&49WC=>EI2[]CZ_.J?/Y>7'E&P)E;G!4=(BDUMD.Z]<\VN MP/]OV[5E&SR7EF1^0B"C?^^8(345]3">-SUIKV=3:=7S? MY^^%;^<[I^Q*_/DK:UGTD;"\B_[I:>.OQT-8CKZ/.PQ4') MIP$C-N"HY#0MKG'EA;GT7]M/K1CYY_;3LY2U0Q&+]H=Z#(=C"'VO?QYO+?GN MI+(!G>4(:K-?Y?FUCO6=2?Z?HXP=2_&DX-D8ET1&M]X,\6:,) M"6%DB@U0O0/6.NK =V.K";4HRREZ74O9V=[G?W]/3Y83E0(#%E@"=;BB1.=( M(OA:XXT8SWN> V>Q(Y*H^HL /<\&-/K8 $5!:B%1-]<&?-H<';M;1%1O8:%. M\SQ%I&&J#;C=^5)8!%WV?P5U.%?M'VV,ITO[AQON:PNE!=C*&N+1(FCCYU@T M<U8=0LT(8U@)/9OFK:22^V- MZ\,INU/>+53?7Y_@HT>8E'VEP&)ALA(!*2/Z@="5#MH"%^+IMFGAZW0.R!*: M[IT';#MH?(BK$;F+&.U,YY@Y@8"S3 _?7CU3RN5-$Z:-#W/ICRDULL58-)HS M8 .ZBES"0 [7.PP'%J:S;DQ;<*X5VCOJ.\*_.]+W MQ,MC'>#L-VM5>CB@Q.!A)C566?G^7JC")9-,F]B65WX9 R,FRN_$F?4V " G MYW#B^=;Z3B:X$<)^,8LF8^A?HYW782'%L$;[!\X8WR%S"?!TIK00!5)36TGB MCP 9/-F\&$1:GDTCIREH5J;I?6M\@',"V0_9)_V2IW@ T, B ?(6GN$W;9 , MH+W X")KO?4^$+Z>X$C3#=)LP)GI*7"%JXHOXC>?#VR[J^0Y)OCRPVR ]=F, MC%J'50A?"6,#@<>=#NR$RR%%#B")\5M^>AZ-*HJ'ZA=>!>!DR G=B#7=@"A#SD)B18#VAU_XE*P\2C84D8H_X][/GO:=PK(R+B_:?-+S+*2+]\7B M/UY\-F6ENQ<87XNZRM@$;&-.^SR:PU*R$E%OVYED$$:O&I*X8<7?%,@0K)*; MK^)8Z_?"#B5YF%AQYLSTMBFS'SO@D/SU[@//_F+ES<<'>U(GZVU*(<[0SUAW M$7Q"WHNT3(0+W!%8V' W/?JJ/,#1">SNF>@1-V08./(#"G>V9N<=V(?FLNTK M-T<2S]\;>8 RRJ_2/)\[ /)$Y M_"VTN*H2(.M)+AX*0SP/GV)Y+PS0(S!#-TC/DC6C/*4TQ:W&Z^F^1[](*/IW M8,^5,)GYSE.2X*L?KP- NB0$^X>E2F ER]NRP:X-GK3S$"\RXCG(+B^BO9&* M0MXT%=GGF?&\4)$#Q#4N[OA<63*NF0ZDTG M@>G1'9\&WP1RW[Y0CH7+E/RTHHA*\; 5BRJ% MKUU;4I48:YKY^\96#]G$^G*\XH;""T*%( 5*8K:Z-;&0N>S/1FN:DGBU'%A6G\Z_R@NB=!9[G,'! MAS%(*[^%OK#T9IE?-LT%(#R9+7^(+G9(DO%5)MI?S'DT;H(_*JK> MBX-FR$U2$\.^#B7&5GT_,P\C#OB1KD@ADI0! '9)^J^>L6J1WEQW[_[JX/YV M?INN05Y=UB^Q:(UQ'=]68["2L 1'AB41:.SAU6#@DVK>.F;QIO1IW+^>=?]+ MAX6)J7P5DRC"%"D4)FV^3FG6JP)F>N0J8MC6)A3GE');*&LE)D((;4M:6'(0 M?#BUL06<)9(BK'7'L!3A?)@<\\,/:>7561:#+HZ#/.!LRY#KSR2 R@_'E+9Z MS J(+\YJ?+<0==4=D88@#1AN +^+,1(=Y(G#G!?Q7JJAUI)M^=)ZSZ12>B!Q M!97GK[2KFK[M?X5\!R:4,$^7Z]9$8#=KV+T!?&-^0?";D$9@K.P,G DIGM&% MV@L+Z0QO_)HX\;1?*M]%"" MT8NE'T,IW8"F;)J&9TY6CHYLYD?Y6(@279'S4RES/HO"2K2+&,_BWPZ^[,!% M%"D+A\TV@%\.K#D4(_OIX!S+S0JOA(GP/B.O;$"V#>B+^K!82&UH=7"FJ+JJ M2>VWHX Q4?1MNZ\D2J1Y8'@L+K:R?VNKF-)6F"5V\K0CO\E:(8*-62])"SYG M><[FD3^*& NDS.O(1SLA%[:5P9!_'NT)$/I*1M'$![+15MBN2@%I6=(95K#)LU/ M2+-G\LF6&+/Y7V%81,!P'TK,DG_#^Q:DCHT7<05A/@U*<':FA6'9$;NBCI8$ MX?4IZP!(%@_X/@UWB&*A;F-C)NHTO1&M+2OLVFTRB*D2Y9;HR_L@W]-=A[IN M .?YW++5$,30)75"C2?/1XHIZ1[(OB [\(%HV M7.)6A.)HKED&K94:X(Q*!'>0&5,8IKXSOX,PHH@AXU\E^%7ISK$(C"+6Z'++ MN-;=@07XYAC'BL#HNW+6W3&Y?LC(WQ;DP[Y)Y3?9@ _F>VE> RT_?43XH,_[8U6V-#JMH3%YOK-GWY2G6[&ECH M<'MJXV^M\936RJDUAE3<#!LPU5$]T#'[=%775/&=7V'\:Q][I_GQ1W(:?@1O M @POH5-2K\CW\G^_T/2LY-F[9Z=NANUSW]I\G#5PIZW75XGW?2^EM"PCG37(:4(>D;:^$D[].NSHO=KY[;_/#Q:/C+U@=&5$-)= M$'M\W0X6F)OMO_VS86GSKAL__!#",_*_LYOVCZS_]=7MBTZ>H?;CM#V.S3L= O02_C!.S<0N?50]?MZ-U0>/8 M!=3T5Z.+I-S/N'V_4'K/_)GZ([D+.[%E:+<-F)7AI7[T=;_UVJ==]USR@?JL_H3K$XV18 ZM M5L:8WBIGP 9-4\*6*3HJ"C[''?I254">!G;H:JM7AT?8@+F,/U2<'WOH_#1[ M&I-'K5=#T?+@;,Z"^B<+( 7!RWP#D#8@TP8X&'-)G3'O?Q*6#.[Z5/?J9P[I M1J_G*$N]RW?=5PQ^:BJJF<'\LMR0HEDD;SQ9UGM\[^WF%?O M##PPGH8XS^OVTA6^7L=P?C+R"?I'59>.0I'?W/=+G73E"D_&XOM5_>&$]N_T M^-V$7#;.M6&OY,):3H^)*E\:\L_:&>G^%]+WI;H,7GE_,*]YV[.'"R[,H;Q% MSBT"##T[#3OE^Z>_K]"CG(Y_RKP_JRS]UNK4-M>&J=D=^I.H(#Z"*QJ?U:):.Q/--RZ^_3Z ]7NO46:&5>SM5O/+H:8 M-LQE&=XR?&QS:;D,T5#5EA/BL/XFT>]]^9Z M!.6!:T=?0S\+8UN,S"*H9":TR61'OJE5[Q^_?1>EOU3S5#K\Y:@3Q/-T>-C4 M%77]F7&OKEZ(J[ 'QEKI3&M0\0DU=F-^_7$FA:N5]M>H4-*.D[ M.J_J0G#-K;_S03=C@UAAR3_BYJ>AEFA&64"&UJN1<6[5OL?25&CS^]\OU'[6 MI3/=8CT+(IB.::9.^AEUSVOKTG\GXB_T[S^UY]&RW<._SDN4"O9!(='M=L2]XW=_]G3?VS\,+1P=@+:MSCNS:'@9]QX__(R-3[=\< M^SJZ>MWU!W\<6'09\:TJ9?&_E"?%_\UAK=+KBZ!.FKE-?6Z W^MU*:]@HO MG%QJI+R[V[TYGMWM=61%D6L6EY%5D;PA59Y';:_S'[MZL.\QM'E6J,?QE#U( M/M%HP:O^X]]78DQM8%C"#C(EBW?+AVN!#H3TZF#B53[&Z= W$/A%084?R!*( MZO_L3GF>ER;,]-&]!A;F/"J6,UA;KC-0[P-F&VP M&F$Q1>R^!*<(08BJ!KO"1X9#AB#__QK;_]$QP^A)GZ1CAJ7DR=A:("UNV-<& M>*;\:0-H*RW.NYN:O@5V:)A^ZI^9--IV%[>I.DG\ M-;-O@,O0(G*F7\KGK:*WJH:Q8=-VE@M3R:<(J0608@NM/0Z"H$C-.0'@V&_V MN^NJ1%GKQ9+D0NVC4RR MK,/!9%\JKXC?5+J430 ( M>P)>X ^M+)TQ^I26(P[&-KI;_RRN%081#F1)*HW#H=FAPFER+"!G^_&CZA7A M4\YX@-XSOQ7>^H?^,U"N)O8'!7V0Y[0A,VDZ:W3_)M!OD!,RV2R75#E8U5-- M Z9]_URKH/"UG2QJ0=!JJ/1+/OWDY[>Q7-=69)_'V#8@OVBJZ%V#Q-.9 M7:LS!YH'8T<5\&&]*7RW!1.QE3M"Z]UL M*Z%&9)@'FB$.:TM5MEFP1(X\I!>4+\'%L6_1^,< 7TDD/[;/K-26*CU6HE;! M(+VF<,7AZG3%(?YWO&508&)-WS::MQHDP7TM!++38X#> M49_!3%&E?[O0$S(_%( AJ/1B."KO-B@$@&(C.RW0^/&1^EL($IPN&1D+(CI0S MWWVE77A2&='E,5 +R+'H+N[7PI^5> @CJOZK-[7P8C./%"CIOQ&PWAG^*W%Q M(TZ6J/L!C;(,@BC5&&7!M*%"B_?%#GFO%2908L5XWY9QDWUJ?D8.A&U$DI U M\IZ^4L#+"Y6%YMD :>E:46N>+TO9L?VN$/,= L3QNPB/"S*;[."R.G 1R^X)E&GH T](PF+F* M8>H0RT^]@6[PS>EPX7WAY?##'= GX@!*[_95PI' R7KT;W\0$>H>CAT_TBS' M5I%!HBWP3!Q8Q\4'^.@ND M^"X;P)_%HJO11 %I_ @HIVBRX\@DWK:4R7A8":*NP5K&U\O&P=5&Y:B;Y%FF M$Y#GPQ$8=6N NGU<>'Y?%8(8H6\9OZL5ANJ\$(Q6ZV,;\+P!(W*7X%P8*Z^. M#K]; T?Z)8,GFZ#P&T"G9=R8?"F$I11HP9H[2.X8Q,@X@TC6\@ YSD*X@]HF MS RK46)1O'0KT?KR"*A\_%]?E92C%2EF!J]+6?E%H41,,,[@F0T.8%Y6JGY, MU5,??QG>!,35;R%#ZP-5QMD!SEX*!W9=T-%9_;XM@-[\+%VS*36,BRQ"#:BV M1IQK%?O)[;S4SIS: F:3MB25QG,+0$/Y0^WY >[&.L<=-B!,!S^)SXT_K32Y M'/F_SB?<:OQS5)A27P(_B84A)(#%6[2@EB #?290,!,S$]K#T M0R.-8%/$(>RN;R7H@0-ML\543K.\IXMK\6:%LN2X.+.)0= !73CL3U^CFECN M$,--A!@IH7TLA2LGRC'8:,T\(H,&9C68XC@B@1:_&'0=<"V8HN')RX/;$I52 M*.BLSA_">W ?\< :PKBUO+D*3*$S0E?\@DO1 /%/AT M3;Z)I_)LAQ?F3!;>(QD")3>IR!%UG8-MQ1)JU[RB%@1G*%@<;2>/M#T5F8N% MZUJM=.&U)G^#C)W.X!?;I:0SE8AX51[@!'E3%PBW9^94*>"DV[: F6"EYR': MA!0[^3QD$#N.U@ADI\0NF4>O 2P%5S:'3.U3R^W#W@H5!X?1IA]M@"FGS %;,U!X6UZZV!)&N] "3.M)A.0H- M6)5^*([79XF_4[VF)"L/&DT2V:&1&P[&UY&)/N'*@3$1\0I#TEXZS"LZB4,% M6D.&=6MA'A90N;APG M6HVJ%,S,."5_FB;"2 12U-M!X"-]:)@[;N8HMYSX)1[3.B9G<22CDCI"]#-J MVX2%*%%MP?;P3A>*?5K _/A<#80?X,AT$B G+F)5^,?HGL="S[32C!;^0+E1K+O*UE6X1#[NHF> 6"*7&Y^ M134/IW_-O<#Y.^GMN=(/;V[_9M5HFE&RO.>+NF7TT1O['Q.C4+#*ARQ9@+X MN0U]C[U85J2ALAFYX'WE_9P_L/(!.,,:??ZA=LC$D'#>U#J3NB M?#)3MG3%ER<>'V:$,0-//=B_Q[%VNB-H.8_D5;"TQ30&(-W61\9UZ](KSW?_G9'@LQ&V2<#9G'H% S M11-\EH#J35W7>7QW6^FS?4V(US7Y=RZ'++C,^3SP!]F-C8&#JF#FN2\LL\#4)Y.F/C@?(]JY?K M3[^ES AYGK>:6Q&H^K/$E1LO.>@CS*R[!PW"8%1=)EHXY':J?(RIX7!>4$L, M]=M?G$>D;!JUOL67$$+V5^;GN4"W0^]B*J[8@+$&PYE[AK>;-)$VX".JY\:) M.?L:$Y].AUY=*'M U;KL8=)<1Z(6^S&= 'D9(P]OO-OPBG/5$"#$X!C/ATV3 MQ34TY>OY%^E?C]];@W#L'-N7E=AUI?/P;]KU\5[)HUBLI/..X8[F>#/1_47@ M\7]2\V573%\^++O4TX#>-N_*80>7U=.PQ$WR!AQSCPUX7$NP9 M/CS8D$W]13- M$6+/L(@0&S!;(M^*=>P$Y^[WW= D\OM% MKU>(EF=U'TH<-W4N50>EFOVDID2YB<&%3BA59S=GJ5AP[7G@U 8_Y([8,C+5 M7&6E/;8T4+G4?"M#[/UN, #6*DP=A,A\LPS)HL5-V!9E;RQ6G&H#\'ALD>-= MT&Y# JE_D'%5.;(515;,9HM8R2*CKM0A+?89S]>H%ST-'%MS[17/1[0!;[3R MKHN^@4R!-L"AQ2'#4[/([G:.VX#AWRJK_M?:\__:&]F O-HA&Q#YOV\*VK\_QH9W15_N8Z14?+Y6\*GP'/Z M/ KSA3Y]VD7,6B^6LVD[B'4XM$7LI%-H.:-.I8V?5ODA[^1!1RU'0*NIO.NM MA-X4DYQXQAL#P6+\&7DE& D RNF#%(N,RNKV''.4F.'"(+4SI[A06;\Z9%+Y MJLW--F\MW)\?BU8.K3)T,=;3=4+]PEBC3> 5;08[^^9%Z>G.KBDHE]B M49S2J23<(1T&YCZ.?>T.>:;E'M+C8NM12COJ_ XXLQ(EU38@ZLPKTRP?;I*0 MV( 2,[$>SE.H+*0-B![TW\:J@+SERF911D0XER, #$&"@+U8K-DAO3];)&^_ ML++7 XX,$)?.Y42_NKI@WS)RPC2)#=@SZ3N!W@*0;$X(1&7Q)OTG)Z[?)J'_ ML4#NH,UB)<$D)YR3D)8C<(R#PN1:V&,>-X4#N;=$13_3$X@FW7D7;(L<;@/V M!HZ#1L:#"243,CI1'K:TL&9*\$,[\_BW 831'(N,EKEUH:4]#;78I!.XP&:+ M0V1@"=DOG?[XOYE,&BLAR(]>1Z^["^J6>W41E9UY+#+C-!+2!AVZ$;5Z-6TR M95'?>5@7M,K@C :2< .^:C.?(_"U7L@ R+Y6N-V M1WDR+2'=1*,5^)G"IU0Z,,,P\O8SGG?GG_.48Q63/[IYNA7K93%*J4JJDX19O('&R(MU4!SC#+"$ MNRZMI=$&B+8",E<>#_E#061(_$>'V3:@RSS83X]@L3?QH)5Z8G^ DTN@1YS9VPF0 MY;-!/_PTIHAS#8T>8\9'/97;AK?&EY("5@4E\[LJP=HB!\C2_-8&ZXYU&URE MI^!:P_;1T.T)U*$NG+)+^L2'K1 [4MKLFC(=8+'GLBA=G3=JE&"X-5'.<@F5 MCY:X*]< PHE>=@D )45K=:41$F=2U)TO^>>VBP8<9HF^B1"K&=%O+H$+UB-Y MEX"&4'QO5KZ8<.E50O?,_.^D**+I*S]OM=+!)>50K,H8 26'>AYR21-#!,IV MYJR'<"6X4IJ_!?W-0]O!\QNS'N3?ZA:&PED)I '=V"_S9;4*&JJ2*C$VPM8 MY:]0_\GYPL)BT4:NO(VA?W8^0NL-=LC*S_8UOUL/PR7^=D[T<+)').'68M!O MGG%5<#510F.!:T"-&+ JWXI2GB_8/H5%HT-ZZ2CE6K<<)Z/LP/-$F0W88N>R M/46.*Y?XM&5Q6ACGS/=>+K330+%,1?F,J0Y)=M)]1 F8>Z'9V.4VS MT.O;;U^](DXW):LF)_Y8L)'&=)(@"'66YS23=)$B.\1CSC0\=(!/V@MPB"OH M(QEV6-O[.V8+)ZI$,RQ2;M:>G$^3/U29Z(GGZ!LP$CP93_0#?A_$#M*OC;^# M7":FE&5:%D=?12]QH?&.X.X-T.*R# S]X/_PR2?7*SN8POI6>+2EQ4%9X:<) M%)(0-N 9;6S-"A@K!ED[F&E8 S2CUOD4LMCD0'&:2;$=]=(M=C!U9!,_%7H) M<<==SDT2*8W;UU.R0;H(Z=!YX*@Q@L7TH^2(3C45;J4\F?83].V23,.][:U^(^F?; M3_*3J&&>JM/@;?XA-YT<1P_@M265R2H,B M&PN&W!5BB$H]<""2@)7HQ,2B,KGWJ(SRXRAI21@$C09W6S/]Y!5I^FT\WRN0 MFDAKG%9?Y!"?!H/IAUOMUF(;^+(X$*,8?QV2^H?DA*LPU7Y014LN\_9$!MJ) M_NH:.TN%S;@L[M4KUT@;!:!1792Y,&#F[?.+0##5PW0HJ33&CR7WL-0T2@)XVZ_/ZAB<4LKUH.<*GJ0;":Z4+_DJ?TH M+#*-9M?D(W;88EOY2E2ISUD7'S9Q=@_J/[K;$ ;*(T/E39.MS+U,0@>MY.MJ M1H,U$2B@$RWQ1-.'V> #LA2Y%-651YQ>$/$8+D>DV>?QXJH*1WNN_32%J\SI MZSUILL( IQ>K3 H+5A42V"#!BTG81HAI.S-440!5Z8A*=0EU= XYF-ZG1 M. MW2MRG)/QJ*!)*ZGS<+@7Q7C>:V)P!KTIES$+.'C'] F[7L^*#V,EI/9(!&0_ M'>HBX)O]4>3%E>.W+B9Z>Q8$1Z)>Y<$G^P0^H8T/&72E(C#.6P0IMD;? H)H M50ZNO>R<)\[![HID<)GWGKQ SVQZ3$^:5[V^+,\)S/1?SVB>#AQ&.[-BB1>7 MHY-EO/1YP!'W1G#*1M[UX:VB$XD-(C+A<6V#YV5C6!CILUXY%/+V":4+7 0_ MR)S7MUB)X^K@4J?IIP^$P! 8,?;>*B@8+LLHEXZB+@:%Q7J.TJ@=9&B_(2M@ M9@,B/46B+[NW8*+ EU,98="A;A'O?4KUD'/C]&M>MQ9" &U>)@E93XH>")@F MJG1[A4$;:N#6..+5M5[T!$)=IM; *.R\YNLJ*NE>V]7U= MEO6Q-<<\80-RAU0-)VJV%;; -;HBQ^HO&"4OMSY:*1TM6^>$41)N:=NY#J2#W_?C]._"AH_K=Q:=/B@E[(QFPB[8EQ"^Z/>S)&L["?M#WCIUG; MR224+G%+EN,OZ= FJ-9NO4 >>0&-"U]&(CT^V*/W[\MM^-P;-&7QN T A\VS MWJ7>"AHZ"UT8$8 *9ZE_X43Y,5*D??H[Q; 3E?'7?M&"NI+"ZC^M_],N8%7I%#E9 M1+@VM$GT#8OQS L5&0>/?Z-4'(MD"'IE*2ZT1+-18 /BCZ6VOJQMP!"Q6*(2 MK.)O:8.T9U&%(&+ JJ/!9-^ZQ+W=+XE_6MF):J.^\N]:N=5\_ M[I$TT((QT2.MB2!=?B.<%9=-OG-C?\Z]2)9""2XCC5;>K*]>NZ!PK(?E?-8H M*5TY]JUL[J(QN@RU2IN5;T]\?H!IXU\!+:VBJF$6_=+4GD(6A?<9[]X&+=M/C73CZM;#4?9)^/\Z!@OAR,X$6><-_T2#,04 M^S2:ERH3.U>^R1D;:I$[A*0A[NX_%>[ >1HYFYOPC4G(72(63 _%@#'VU.3A M31+W>K?BR=A*7OW32CLJCIZ:^/'>\H1AEZ%"1M]?3$+.D@W!AT?@!LB/^=,=UH_C[^IG9]!%OFFQ\VK^XGS%)!ACR8W9/350>D6Z>! MBT4/1>4K0H5I(V*\UB#;S;RXU_ 0=?RJE^!=EUX0?/^+YF;M0PB1D&EWU56F M-LC+J0?M]L;\410MYBR^X@X5'K,RJU11\+7[S,Z? M_TLOK!F36?]AD#*($[O&B9KQ54IXU>1C\7#(T^S='D@\>96=!3R..N[0"/$! M*&5IZFW5W/\:YM?^&R)/DQ1;B/GC34%5F8\999M;4,),WP#DYUMW,%$@T1ML M22.L!1Y#AN"2K#N_:E3K>_Z>2W7-_V"W19-N9.C AY$ 8/]_0:MS9@\S4-:X3P^,&#J.>KYD:L MPA(S1E>G63>JS4? 'U-EC@YLR+OA3;39-8D'@7BBQ$M?.=^O;@BE,:*=XZ[* MK(\?W/]<4+0_-$?2YR7EMVD#D"+S1@>J=.96R+=(C#!PPB RI)A5+8X/4AXR M2EH"L2BL@C;1<>%^5 RC=+-JO.H&H+\\U!J5,PDC./J.T )N52-\IO%=FO>' M4Z"=$SOJB"^I)&O'"R%!ZFUZ M"N;W^LCT*Z_31#WQN>87FTB'Q7:W M>\YRE/XQ@4;RB53$<*F&<$AQ]7]^<=W5;73'O&S2MJ'G*=$DTE[M0%V-4>M+U&I$&R;?^TU[>VS02LCG&.>Y6K^MD -CCE&RW-@?]+W:(SX?&TY2X MN K&RH'AR%.?RG!I%327VM*YOG-J\UL&Z;$_&&.Q)EH;Y/ BQPW56.NX\5V M:#K9"89I;(4GCXNA_9&5G\J6^"Y-=%=VVYWR^@CG?'37.]CW;&2>.C M&\#0:MA9>%PQ,9+SC3A2N"TF[BD4)B_S/=\\\?O]Y%POARQ50XN5H2SWN-XJ M',6O8IBLCT%/?;)>Y9%]NI4%1-)_4B=WXKHTW3]G;KV%WL3IO-A4-J.RO40; M^71]' :#+AQI9Z[IN(OMR^+U9>$M%_]8KU8HQN/#H$AKO?B>\;1S'B!,2%CE M_^W6MZH6W3 O8/+508=>5S/.Q-^[.CG;,>"'']@&?/]E=B%V^:A.T?X@+H_: M,1K5%G@N%Q99F,E>JO5UM82=%-!!O0 M;]T*'(J1,6&HP*[Z^AK[B>X?_I[_LDYCW7HR\Y;?20E&G*Y#R?L$BK$L3/-D MPY31R3UC0&=G>#MV#G>931U'1^^*?Z["Z- 8Y(?W,U*;0 -GW\8>'9&0 M1 *[-WJJ.4"^3WU_3B6"_*\UKK)U@4M8>Q U9_#8' %FJ,O(5XMD^*7W1A=" M?G/+DJ#-$]8=#T[.@@NOPV.RNOC?G;RZVR!+4]_; /^?;4:5]HJ#HG>PN W(0;!K,:? C#WY- [W_R\N45>9^PR M(^A\?N@I4P&3H@(EQJ^WQD( &[#]NJ['0G3Y.'@$? ;G.BIOHSGS![9Z*B^W M2,:I!NOE+Q?\#SIZY*K=$1SDB^V6\WW)OSIIAZH]Z8]!R@DJ=W$DF1!ILM.\ MY,9QKW=BJLB?&G7VZ:XBANA%:BL@[[.++NG77VM:JP.%J7L!;98[(@%*>1QG MUEL6G^S&+,M<+;#SS*&_0Z;G77\'I 5B,,K1.\3H-W4' M'C\GA#[EL%WF3N[?BCFZCLOY5SA-9KYE\4N6Q:H"D '-#\7ME):IJ273"B_6 MG6N-PNK-#[H=\P^1_[ SH&.CU8UQ^,_*I4=AF)97[+[<-KL5D/\[4X3!$!ZT M7U]B'7X9P4T)2X. ]95_^>&O?"6(YKHK8QJ4 I(RU%)X$+2P$^ZL?1PC5T_N M.2K_O9_SACR-&*U]O>@#! QD=<1YE:9CVI<%03\NA#5.W,%CAG4EUI9''HS; MOZ=SO;H^,7%[LEO?LP.\!L845B_^J]M3M6UGY66I:X?[NL>"L8]S68=.RRLQ MQ',E^Q1KV'?.F=![KL0)>5 *A.,YLF[S$3QU* PC&)*<*0U=;CG_+C/ MG>Z[,\="LA7(W16$^FT![W\$;!L+H8IVN@\9QXN@,Y>1H?]!,VLAZK)G!?ZR M43(4427]R%CQX6=]]]@6\K*O$E*-"Q1Q9N'@&,Y^5X%H9E:5W0/=!;_R@\?$ M27FZ.+R?$E"87*V.==U'.B&HP7P4F6\YYG+A0#7QT!EJKQ!"D:K1HT50IQ0' MURP)!DL4]&]3+@GR$6,E-:C+Z3U'.L'EW*62H ?27O.[3VQ5OP"&(Z_#$XQ MI+=!F#%8O'^2)Y?!G;Y.%@=K43A^]^^JO^A*L@%\6*"R)!9U#>%[@UB5J/>X MN7BNYYSIH*R^+TP"X_ ))=DYV+,ZZG$7XJVCW;*U;=SP,&9:%7,%T'HNG6;) MS/1V_%LPB]1]4O1AKK$-(DELKU\,KMYRP^1VA$8)[SM8[3&;&^0/$FG-S]LO M0L)ZWEV"@=V[?8QR>^X0#V?7MF+EGOF-:WJU_$M(@0-GD\EKPC6LX515 U9V M3>AGHD,Z+PWNI0U/$RKGL$GV9C\.AV4(*J[!58MC] MOKY[[RGPCV1E5Y8-Z"R9Y\)UFQ$'&/D_Z!19;@ 4_ M=!]'=1GIJ%!&S-&^=2>*Y):LUQYMB;W.'QM*Y/=N(2YP$R8SW MV:3II"BE>OX3?P(Q7V7Q>^O&Y])26+?H13^HXHS[MD"5R>ABLKIFC- M+Q^#M.N&RR^>CGU*0O;=MD8);RY4@)\\4DDV1F_E0X\6G9EP Q0*!PN-EA/R M!25U.]2] 7\>=!XPGLO^_+(68B;":?K2PPW"=CP&/S73SWY*0N"_.2FX$Q"8 MI-KX+:??LC)_;'Y&'"KI"/B;,WSV8YE>/*+MM3Z![?(XL(<,R="A^J/#^="A M\H:'IWDYLW,D,"'^M;?ZV]47-J#Y)8 5QEHC$X7XQ>!!E&%1N.A5])R,YXRO M\78D>7H\^N!N":/JS,6Z7.:3<\/%(;.^.^3# ->'U.@-X1 )OSI/\N/MU_AI MEH%ZDNG[$^.:DFL=AW@^V937].?T3U'S/KS8/X%/S=WR?LV0?G_0GQ[>QT_< M5,3\MIWL+]O]+9'QB/]ZT9:5S*3A6M589+)N$1.GALL.Q4(PB'^A>DD8H58P M^K$WK?$[Y1UMCE4<[4;?9@.<7&J@B.5AC@PQHT7 ^2CY>JZ1 .J"5#TE7@;2 M/HYTDS$FBEG#J0R3;-^<)(EB2(S?ZIRL8KZK*!ITO"X4_4/09G=PT#=<_B/! MZYF]AAG[)?B3=\&2G6%!TK.X*>EP%KV4L62GAZQRAM"WF\)IJQR(^MO.U,,: M_#2B.DMU/8HA[[ PBLQW48\JF_4>4-#Q')C(Y$TD*1:#)8W^62*LPQ1?:SH] M<6"BE1, @E9J ]R0-5!+.BJ, M$= M&,?_VP+-6MOX9,7@E":0-7+ M$LO52E4 '#;QKFNRDUTI)B%SZ0O4(WM -H3:@-/0_4KK+89)IYD@F#>CB>IL M56SWIQM _WH?]-2_)0[K-33KI?X62)%R_D.R?Y+Y^ OBY*6W0^R7SH^T7\HF M2O8FF %# ?';'UUSN;)]J/C%X"SGW?FCXT"RN;ZE%%BAD1IUZ,E6_RGUZB+" M;\.>J?,CQ3[\1RB- ,HDSDD#-WR2@6'O[HV/CQ>YS R-!+7)E[+KE4.D72<_ M[U$DZ4=8>G$00X"I4%G=YC;S@LT>IFZY-7,K)L/^L0F0+'WQ:+X-0 IZ^E3& M<(@3%,R#;)3:'4E6:?35XAXA2#=.W$ 5=3U)N:B&?@T*14[KK+(!4;E=J@## M5 W:D_'*M5R'MN*=Y)"^EQ2[^#K[I-N 1 MG:[[^<7:Q+,L?4$$7GK:#[D1GO19]UOK+8S1HS9 763UC%D)*(%[#!92G 5^1C,Q'IHC':W6UNAS@ ;"JO!C?-:_.TCSZ$K45UN AFJ M.8>;BM[KCF/>C$%]3'0RJ>,Z'(_'Z&+KSTS9X8J;4#7_@;# M3 TJ#P?]A\5R[D%:B)(G(01P1I (Z=1Y-M@\P:_4K@&]RF&-@NP4:C*.%P?) MLWU:/5>UN"M-Z4GZ=_;)*[:B%WL:T'O1B)G53S./H K^EZK.N@1&[+.*#D5 M35(&P'U]R:)",;[[JPQ0S?P%G.PG M7%HF7U"_-Y\P->-WE+=ZU\,$AK*W#3+U? $A<,C(T#^H1DUYN1 9G*TOKW'@ M/-+VF*UN!JO]Y&WVZ=4S?7@G)]H@LU:MCYDBP-&#NWK4I4M 8+"'O$A9;?SZ M/$N]]"O, 3I5Y>7!G<^(M@$[\=:IYHV--N"\[VYQ&/&]!&;%(^?06'5R%=L&#(H$ MM 0SU)#MLJ_Q60Y5$/DOTSF& M;7VSTB0Y23D<4XHJ>'(_[G/H4^9M)F&HW )3,TR]]"@=Z#6+6]C5T[7FWKCT M._'&[B/U#B\] $ =7^$K,J>CM';4LL=>2O,4@77Q<*0"21!GVA6A#?(+I#>J MV?X7VW:;;,"2C+A3>!>L$F6A#9,:4>?\V3C4 QFO_B]"K;7L4L8!]'HHXZWDHCT3E3FYP5Y?,5Y>8&?;E[9;\$/C, MT<4VR%'R (.WO-\&K(ZW2Q%3!Q)Z-\A,^2:M7B6II^5?2O!IDY\Z8%\WFWX$ M-YY"Q7DU?A)A49KA8>N:$<-V*P'-AZC<=1,^DZ@DO\3T['F9>1^Z;<"K:YJQW=;%EC@V4=XSZ5@$7HT,U"]@ZZSA&/+<"QF3:KS& M&0E \N9C!??$88'N\E^Z&:^N:L91FN!CO7#%OB2Y:A-AAL&\TGQ^7G68;SQ5 M6K\&)&JOQ,(3,.^2B>HR7&8-Q[!1'ZNKM@>S5&[PD=NSU&IVA;_\AP$K0HF9 M)7@,3^_*(EL1.L7AC;$ZK?-%S7W6T:*-'ZN8=(LR[JG!T;)57C(?$O=0,-7H1:[)A)7_&*F$/ P5#JOX_]0U3UGD_( M@&GZ/ R;=V#^-P??%X,+IJ?D!:UV&K$P/D^^RRU 74-B/;B9DUO>X;H.V(#I MQT5G[ /N=.6>!/9T[A\I^_7E.A6HK):22(ZFI/]#*0=+2+S0SQ#HBURV>CI M?%?AXJ/JT0/6C=_K#$,\IZ$LDK<[ 6.90V*HJ(R5R<5W3T/5"MEZT5KYT$FD[T1&-FDXA*(9D0E("P65?VO9?[(?[ MX_-\G^?S?)[/?9[[P_=:T[OS59B0U1SX0LR,F'Y[9- %K\]KLJ4PLJE^1X: M?MF#?;Y]IY_N>DCV1KSE^V$.WP[2GN%Z6(&-RR[#O&9C-:<#:Q,Q'+\E5,JK+3?V2\QD.=3JO*>NZDU^/#S4>3QTF7(\>VKWTH.MDEHH3_S5 MK'VQ#J1\K0XJG" S?L8.%QD8;$I7"_OH9(0OY<6E@]&IO59/?9.P$5Y (IE$ MFUIU]B%_W3AH+Z&%,;>$TIN?*YK!?A8U!Z$%L_61E MA34;6/K$DJ-&X!%#S;OH/NJ7W+>3^\JGB> MZZP0CSJTIF>$K0W]XWTC/+\1"@?2#2.A#2/E^>7&730A,S+>1M4CSBO7_?-< MI[7^]&DGX<3[8/(9=[(==2_*7N,(\X-Y-B]S7"I!U '[ ZPB5PKASY8A/:\_ MD+/5@;3E3*-)S.?6*]+#]5Y[&C#$VHLD:%M,_2Y:$*J/(^B(PU,'DAU*59.C MUV5D_<5-"9M;H;/BQ8&%EX+0X31+(MK14+]+)M2Q3_V$3XF6@88Z(N &(: & M'=?$->*QC*NX&EOE.7-PWC9B:968Q-3YF_53NA72OE@*Q_G# -.";Z&AJC&P M.5KF4GA2EBTB2735I-09=VZ>DVU(?A2Z5S>0G]:R5Y =A H""!AOICFFFZ/+ M*0(\O#PU%S0P$OHRS[T52@; '5.?W_,PWH&YJDEI+'M.]4Y?-20A"/[-V_P." M1M$=FW,[\'TT00 M=*-&167)34*'L7;Q8\*K@SK>W5_L/8F@929Y]$"1I!\ FE\5PLL)^^?XOM=> MBO2_"_%>%"F'V4_UB#K?MTDEWA65.&B9J59?*,K(+ &V^.'R-",;X=AJ8?,* MF9[NE&472X+0HD^@O.*ZB;$E$PFN09JHPQT-X7 #+/=ZGCG?=JL?2)T?Z/.8#TO1"_E)E6C!](*92S6%K']J]#WJU8B'28;^1E1MJ1)>/%*2D))0S_NP_A_;@7*'=T/9G?BPT_40"F;L6;J&QZ[Q"?XM@R[D/@OS6EZC MZ@C,65\LE*$@@ *M#YS7P6PQ?Z=U.[!\+Q>ZLP%^V%LJ?V;W%1FWE@"R?L,Q M4[J&GWKC0:=T8E(\-O%#[#NLH,%M?G*&W+_BSHS=MBF#FR'IJ&1&1>>)(PN@\_\__SW$ MX+._ 5!+ P04 " "]BF%64_M-$'P5 !^%@ &P &1S9W@M,C R,S Q M,S%X97@Y.60Q,#(Y+FIP9YV7>3B4_;_';SMC&=L@9)2M[$M2DBF%XI'P,"@S M%1*2T-B94O8M>\AX>I"R- G938A)PL/8DS%CRSZ#&,QRYOE=9_G]KNNSO+\W:X(U"XA:65RU #@X 8"#_0"L[\ E@(N3\^_%-F[V MXN'GX>'FY@'Q\?'R"X&$A 1!@H+"(N*BPB)B(H*"HE*B8A*2$ A$""PM(R4I M(RX)D?S[(QQ<['>X>01X> 0DA06%)?_/QOH$B/$#ID !%\=Q@%.,@TN,@_49 M@++CY.'XAP'_;AR<[!AY^?@%0()LAWI1@).#BXN3F^OOJ-F[4>Q]@%N,1_R8 MWD5>";O;?,<#)/6?9+SB5S*KZ8#8#U&4#>X$Q@B I*1ECLBJJ*J=.*E^RO"T MT9FSQIH6]L[OW;W:/L'?W-Q %P<_V'_+9<8FXN3FYN+F^]O+@[. MD+\=Q+AYCNGQBE^TX[L=('%<_PF_I%G&JYH. 24#>PKD3N 02$KY%$F%^C?: M/\C^=V Q_R^R_P3[+ZXI0(B+@YT\+C$ !C#LSVLL^L?B:N%=X(2"T_78T*P. MXVLU53=IR2X2B!^7^Y4+40*C@4&3%Z 7-):SAEO[=D-90(:$'0NH2;_) @A% MW2%_5=JG'OGZLB D;>#'@,_SE!5S&Z3E@0R.TH/F@?TL_(G<(^%H%3!2"A.$ M'C+Z"[?9A:8ZKDO^SHB L "8)PMX MN&COYD <-B6=ZM\>R@&@Y%I!4Q@+B#&@G6;B_0.E9Z.F(J$:Y'&\ MGW-H5U>P@N(A-*ZNRW]W1&OA0>Y2L*[E3?#79AC-'193O&/S[\>$I(30\]+% M6,!$;1GZY_>"7P4%$U7F1C*=)59]EXD>QH^\;8Q.O-XX",/HL A+XH#,_$_ MT4N8,H.SY0R)*$$FW8@%0!!#YD'_G!O#@S;H/#+0U/LIR>B9J42DZXA6Y#'2 MJ@ZX(X0DMZQFK:RNXIFI6#J/R8<5.=&4#M4BCU'5.J%\/@5Y70RIS>NMP]7E M&+*SCY6FL6<"?X%0LHN?,N:Q?% C(ALSJ'G%/HGS6( MU)LVH:21N=.%"RTM+;2T*_:O5QH;*S5V=LX._BLV]%]K;#=)8^!@5X,9W<<" M.-&+* 8B?4NG24'-:,V78G<\T%3NIPO OIX60"YL)IDP58&D;A!<OM2P->ITC7=.>3;JQ%;ROD+")K\?2$@G1&2O@2\^6&!L'6BLZH M80$QL?=@G(;^$C3UO4[CW+>H\M!D)QT4S\B]]$5$OV+G^R^?'L) ^T(*XNVG M7RZ3YKYM%/D7S"/&QZ6]Z.X/UD:_(.)IZPY,ZI-B*E*QM["^W"-N&;+Q(F3RU M,P\(:+.+FRU=.C*?(B]$KNU:F*CZ?0&DVY)VZ+T]4=%8<>I.F;V3K?OZ[F'Y M,E)EA;C%2\.R $\=:V8X*GQPC4H=/IS;B_6D0NG'\IC20_+K'QI'M,6FMKGC M/!R/3.BEXF."4F;'>V"R+,"'H43R3XM6HZE&@3;MFPI[3A=\:8TA2>G6:)6< M"E5\R23%1>'+PL,>@%JPQB#3'3\4:MB*<3_P3HUDSHD1?TMT;W&94IE6)#^1 MXH03 ;=0MAW]WY6(LEM;HX*&9@$\5VAA9*RHZW+S3'QE*$(N3JQZI__H9[$: M1>'#AQU1GV!62QCS?#/M:\F$(>9OPV=SQ:]]1>?OIH:AU]DUKJS4@]X%9QTX M%??X)T\A.XIC#QI2L26'J-04Z^/=0A6O ]<@$.?YR.XX<%ND#A7.! 606$ " M&HPBBER:C;HVX&8Q^8?+?'MBCL#&!82W9U.P!L3>\$TGU1X>'@:63BJQT);( M*;2WO53X!]8/,!ESQ'U-]FB=*'J#_CE16X2=?*2,$X1N@F:!N[AH2K+D2\-=3 M=*DM!!;P0!^CFBM;D@/W8P&7=M*2Z*DCL-ERHLS&IG(N-X61_5O@>\MR:=!Y M_8&KU8/<+*#C]W8E;]DDJ/B] E71E3.*270X+8<%J,AU(W3F>1FN3=[":=YS3BF^Z<[N:G_0LG%Z#S$E5\KA M:I'EY^9/VXO7 :<"MV%3 0 XDF8PA;.#S98AV2.>!&*\?%<7>E=L)C1W2^O\ M!6589GE_=HI8C^C)%5W:)C+#R3AU+/^ 2EU5NECHB[M@]&ZM!T*&>W"WK'8HWJ4&@8C6^2^'%O/F(.L\7P*\DU+49-;IAF1']18&?AIHK3OZXRP(D(B_YO@J-'N9M$2-> M^TA!?'EVAR__!3>WN&TPZ(+BR_'5V+QU04J036W,,(%L^V3=[Y9YTHECX_>' ME,QE'!W!C]G7+_4@XZVO]S1Y.44VX1JF[5'$Z"(3C$@F_O># 56K']*_"-OG MP&(K4R%=F]P^QEG*3L9.J;>5%Y3LY ,N27K, KH5G'/ 0PV*K2-NQ%2%;M;: MEF6P$LY6)%UEX>'^D["+?5$:.ZN[VXS7)D>,UJB5]YCB5$P\=J5@FNJ]+I+^ MM@NE_# 387%;+E.R C+XV_NCJUN'GV:T6RG2*8_\Q;TIWVVCRMSP8=PAWNVJ MCV[U-07JZQO?K2>EJ%B=":]?@(:[:BPW['^T"$ 8JG=FAFNM+T9W>4/?AW2< M@PI/3*TH\-6V-L>,G=G0GB&CPMRN\P9]O,"A+!Z -]P'4[4)ES_0\LC62,%- M66[C;*JS=-8W5;%C G$;NF=,7V#OT]AJSL-'ZZ6"+[4->XZN/;+6:$PQT$[W M.1;LT,6A9&"\U,Y?19R\-%L>2P^8$S[G1F4!J9%:)"S(Y9IJ+N'WL>I7S6WJ M00L)!1>^EOZZRY4R9SB9=[W;,WN%; !Z!Y]TPRWCE(0&/-R]D5\:,[)Q7'9,3 MM*X\:^^L O@'6R#XIQ?"BUNN5G>04L&[BL-:?K]^'%_J=L4F\3#&"GG6=,(D M!20SRO/%:U# /+V+QNA&+:PXFQR5'"VSAZ-WMW&S=;K=AH@VRZCC."V8P<]T MFG(Z,@%M;?5U1SSH\*^="8L/071GZK-09-Z7_@[34^M\O?\Z86 MDW^5(M2IAFFIO.6AX\:8^BJ$,G_%56^YH.>""A<42D$DE\!<[QM0MXCG]:U$ M]?&%_8.C8,DQ$8QLX5Y9Q($;T\NH,E3-;LCD9,GJ7L5[5Y^MWSX&M%_.U(RX M=(77='%Q"APH-]S.'KXQUT-AZTP8%9UX-$BJZ%9N10;@/N:BC \# IM MZ#(>[_8S,J,XKI]MQ6E\Z"+&:?H7#YZ.D]S&^[+J3I6U#4]JU^DE8,,+F:&[&_4<,"V>/ M8]HOFYM2YBI>.=*#EF\.KMD>0J\>FJ\25F57^[QGV_0O- B+?5>9+HHL?= E M7ROR.&T>_NT 4Q)0Y1,"WPNLVX/;UVU;_7";R+T375K >,S(;E>-/$YSH_!U M&BM%6E!2BS8G>?KG0V1'J^P3Y_=?&N?KRWCHT'D_?/-T4.N['=^I.K_3#/^% MGD= +*').:Z;-NO[2D.:+, #_?2TK)7W$-V0\KTS<6&SH%OY1;J#AF?OGIHA M!?IYD*::_MF)NMLX(_R> .]<#^POKQY[\Z=YPNSCBT=F,WG#/D$&Z3Z,UFAU MHVY_23!_Z.(-F! ^DNIL[@^I&MJWWHJ#ZV5VO'>6Q]1W@[_CYYK.L(#8^# 6 M\#@81_=I#*2WG.V*WH71;"[&(A6 M"'UJ3;WO]/S'#$* ?,,Z0W=*-.V*/'QA_#-V_\2,.@MX7TUDIODPO&CG#LU# M56'/VN59P+,6\OBSS4AKK:2^*)6>EKL?PJJ,()Y"KZY\D?G4 =D_1N6[7M=& MW4Q\H+7Q!V;&[]KBE84D1P^4?HT0_QG%M"!;)=2*NYZA;[5;\ZFB=W6-M2K7 M3ITT*QQ"CARX,T%%5!E:\MSI5-(9#RU_T@\3D[<8*?*Y)[3MQKN)5]_<:O MH:@&Y.+/.#':ATT7RE]Y3NV9\THWISD3;+^4B[K'@F @ABDM8+82&1\-4/9B MU_DCHE0[Y50>ZN'N #>.G.GMI?NFZ_9HMNATD2A;>UDV]'ITLK%NG8(&Q*G: ML82P2=B"\="5R.D9\&R]&-LG2>! M)1'+X;E%DIW;MA$""\'Q:/&>2SV-]F;O\8$S]2[K5F?C0!C]K+J<=_63._NP MD9^NENLT=JMNJ_Z8Z+YT,TRT*J+\Y1(? MX,6?^)0YB46PQX$S7;G.GS.TO,<54RS<,:(]W#DRW8E]EAAR3GOAI\N(AT(P MU&K+-A5=L_0QLSES^3K//W+$7/N5]*T+7Z\\U@?71\ M=#]1*(O$UP$3H+E_2_)>OS]FG7^;S[W_F/X5BS"E(%$!KL=GCJH'F5S6S3?7 M5#D;,3!.)Y*=1+(KWSAR=$:1*?_:/<=V,;35 >;J_\9EQ MJYU&MFCZ"CST@*KKJ61#ENDN@Q#*A,>J4^Q9J]ZZ])*JD9-?K]Y/[SZRT$9[ M.I>OXFRT(MN_'R#<+&[2ZS$P:C>@/\&)NXR;?54,?D2,1W]HB#D5<<[ZW@)A MF%4';?*[# M4WG+:N/Q!T#6$!JJ(%KXGON5<2"3NF#H*Q!9U.+_-:=V R?\1NJ%XI ML=\Z"ZHH4<[Z"[X&7T,>ZB[C>$S!>!3YZ.DIM(0O?T/#X@KD^??7^L]3EN0N M*L\U*;W'@AG9N%E,>'%,N[H+K;#G(#>]PGE9\:;KI/>F)L:S)]KL<,ZN/NR! M02;?_?$94Y.&]F8*HH$W[_BE-[U>ZC=ZE;(=G[\%706>&TQSW30Q+ZC82A-Y M2K @SN,@M:MT27 MN(O'3^V6D'$RV\PXOCT-^#G&R]??T]0UX\" $UM<&"<0_"!K&:9@*A)YE*D;>H!3' M9W Q<'9QX@**?M,&F<9"\)#9S4GI;N;I)@*I=J3NBLU:C++WT@L_Y;F7EWW7 ML9.63('52KHH+<-]3D>KP=[FF8IDR(B MI1#+D^>^6[95I2I7WG62).^.&7R:.ZPWHA\/ M/\$"7IC',SGQ3$BU>;3#H/;2U-8[/&ORWP!02P,$% @ O8IA5A? ;MFW M#@ C@\ !L !D&5X.3ED,3 S,"YJ<&>=EGLXU%W7 MQW]C,)AAD'/,R"B$1 YA&))3=S5)I9-&)*=P"QD,,\Z10Z*3NBER2DQDAG"/ M\^@@0B'3-(9(CC.)?G>,>75?S_L^[Q_/]5[O\WSW7G^MM?>U/GM=>^\E'!6. M [('G%R= (@( $ V!R!D 0X 5$3DU]R4Z.84DQ 3$Q45DX+!Q"404@@$7 H. MEY:1EY66D9.!PV659.6V*"@J*B*0RBI*"BKR"HH*OS:!0#?7B(I)BHE)*DC# MI17^;0G; #D)8!_0!H5H 2)R$*@<1-@%H#?S%(/\+> ?@HALYB@.DY"4@F\& MT&0!$0@4*B(*_97UIC=NTP^(RHG);S.V%]_B=AZF%:9@DI#[4 *SK[9=\>@ M3WN/]^5$22DE9155M>T[='3U=IJ:F5OLM;1RV._HY.SB>L#]V/$3'B=/G?:Y MX'O1SS\@,#PB\DH4,3HF*3DE->UJ>L:-O/R;MV[?N5M07/*HM*R\HO)QW;-Z M&KVA\7E31V=7-[/GQ% Y M <(W(LS=('BC'W[,O,29OTA_L4M):M7P84 GG.'L0VM<;C%I^J% ]V3:ZLWE0A_/15%;YU]U63ZCB^:J2XQN]0 68%"*B1#P1X\YG'R+=??E M=7(/WPZ=X&0T%2SZ^^8I%6QOC:VB ^.(3!VQ9C^*G6U:<:LV0_43Z5B+$$@L M^AJ_A9S^(4_K4Q1#A[-=UZ%3Q='9/D< IOVL_@J=(J5;O&DU M.[],XA,-6_R0R6GI!C780YCDC=?UX=@9U[9=%3+MBZ,B%.O3OR)WTDLJQKXJ M*2N/-,B=/L5B#K[!]BIB[$Q.I8\#UB-FO*&)AM1XHYD&JYYDFOC[^JN["GL) M3^2=$8MW/GI''=EN=]BBS$.30GP@TY0Q]9V3OK%E&!L4Q]V*E#UYCEC -+*= M.YCHM6QWEWD6V=Q?3>(( 3%Q 5UY]2C/-_7V@WVWA8 LUJ[&=$8C:OL3AZF@ M-(T-;Q$J7WW5W0Y]F-C08ZO!0]W=53)A$XY_.^_C^<9&\&K?@[B3F]S8D6&/L+S0ZZ4-[(9LS9.Z8RKFQO4AF+D<4$<(S.<+@;JT M]NFG[T..+G47?+X6][C^U#=N<*.+LLT5$?N0SX6C#Y#E,\49@.ZFZ7_&CW5V MC34P6S/B%06%V&W19BVGTW,\^(7EY\.F7IXO[='4TFCSO9!? ZCS3'8?BO5; MV,[G. ON;2"#&%;#Q_HU,@RN#%^UB[V79NV3=3DV+V_F84X@B%[U%-3'JY%L M!D)]ZTI8.*.O>:A-=<"<>;1_\Z*^H5MF6?1S?MT]4?(^G _T[ MB*-WU5&/$H:TB?TID0-KV'7K:^UDZ:R&KJ6Q\)[ T,BL?9+#XPYA6L]LWKSK M6LA6>9;LI-^LRG3MW[9F0E(4 JEKX+.)T#'8Q/!-Q1^).P(B6J6)WN.M^9B# MFKFIT<"%*;S)'I1Y L&==(SOUX$;->*:ET]H6'<6>*1E@JFO#PY6#UNNZ-\_ MCQ%%%!U]TP;D+4*ZU^5 9]Z7#S;D/1<"E[>M?%+G5Z9D_W.T8 M3*_=YI=_O2T8>B4F@7!+"-0O]&2L%,GXJ^&S+[;P1WH(:)?;N_VSIWVX]R2U MV6)/9*EPTZY*[ 5=* -?!;*XR1P>?ND#SO4W5B4-E\4P]1N*N)/,\'I;DB=] MV5!9VZ#(2M^EY98O,'X9\AW6ULIZ-N&QX+#F;I&TKLJ%XY%$J(/)ZQIVX(QO M\\E'>M>8=PM.[WM1FQSI6@8LZ39 M>-SC36L=KMW&8E5/.FO*&:^VUY<(^2 MUS'@'!?-6IN@L9=RL.YE1'(;0Z/E^("MQKE R5!SJKD3JXIV$74YT6ETA#(* MPRX"*S,;VNL'!+5&2P:VZH>B>2RNELMP@ZUY 0956;5KH#& 7Y!I7.?KK;<::$.AJ%C79#,C^=,6*2M6X:7!IG7259?6EAZ=$8_VDZS:3^2)!@\ M\%.7^B@L UBFIA">]7=R$CF!>1WGU!J>,IJOOPRO/&O-/M?7L_9CRQX7Y]I+ MR,-! Q7%__C]BBFV1H(G0L"/DUY4O_G@\CIZ ^B&O*A.Y2MC9:6K54^+0F[W M]5;XJ.K(5;BU]:U^*30C!Y#!'82.HC&E*;/?=/&4EOT2RV;2,FQ1]YJ/$&UU M/2:LU[PHG. Y8(=6B>\EURIWHRD,/7K:$7"Y:@XE,C0ES_)7>JNP9K\QG^H4 MIA;S&!5WHAG'BEJ- ]/6#OO'J_$LTB+9N,Y/$H4K(5CG<(QE\RVSM72UA,0_ M746_L6+U^H?RCXA;))&VEX+PC@+G--,S)^?KJW<-6__FKW7DH9N"[E=.-CZ< M8 6FK5HS0.K:461ZT9;(9K0*#Q2.N.B7VD!\A\&?UI:E91 M;4Z6K4T\ZYP2F$1E?ZWBC70:GZ&59MYH?K/'J<.)8/![Z2/O\/OG 4LJ?>:! M^"%$U.Z6H\RZKO$J#.5XPJR$C2.Q/XOL@TS$R=(DIU+&M]6>^M/RZ[&GJ@)HT\R1% M\>>ZPYIFA "BQ7I\Q8O4W*I(I'PTX3.]:.EUX:,O]B[9H>8];9!3YWP"UK:3 MK#S\W@6;D66-@]OFK*:FWKK/JYV-^EY]QNA#$E>I*.Q+.V^D8R*X&=LS^# \ MITKO 8(C&S]*AJ[O&JPIX7MTY+JB/V7;'-4[2VX[482(:*6^3V/C&H]->L*=E('8D=* 3S#>=';X>:Y@5]5?0"ON65YM[S7I#LV_N%LMRCN,A[O,$BQVJG[ MS]LEI5?WXCIST*5=SO[BQ;U S$@>>&TU_6GJ7_4<&)'0A9.+/'BY2>QQ]7WR MTJ?# VVV&?.<^6F*3>#U^XA",>)'.'^H^ZE%(0G#^ZEJZ08_5,5F[GG[V5%V M[Z*%5&^3X.9G_B-C:A<^/=Z$?]79<-7ZS&93%FLB8U*M>">S40C$90$QZ"R& M&1'.[G]'>3C9%XI?<)>+$9U$XPQ5((> @2 M2EY^QNT5 CGI+8VU'.L:_552VCVF7"%3[O>+9H9IC'>W7RU*^R%%(3JQJ,F M8JW'/2TO82T>!,2C:MU2:(-/)NE7XQ05I%C_JQ;_PN3R36YZ26!$4=]SF=>9 ME6J/M3+%W"BPP0Q=R#LW1T#A_S"R\,-_ 5!+ P04 " "]BF%6-.^X;R$A M #S) &P &1S9W@M,C R,S Q,S%X97@Y.60Q,#,S+FIP9]5Z9UA36]?M M#@%"#[TI1$6EJ8!4I01%FAR-H B"$@$5$#F((D4@ 5%Z1T 0"8J*BAJ1*BW2 M146J5"4)J" UH80M27:^[3GON?<^7WEN^?7=1>:?E9UDS;'6'&/,]< ;X=$ MR<,V]C8 @@\ $/ ?P!L'K D']_O%SSXX9> D( /[^ " HE*"0F(B8F*B(J M*BXA+2DN(24A*BHI+RDE(RLG)R>&5E"4EU64EI63_?TE""3\&7X!80$!85EQ M47'9_^O!>PM("0%7^2R0B&T GQ0"*87@M0$8>)T"B+\&\*^!X(/7*(@2$A81 MA1^HD@3X$$@D'S_R]ZKA=Z/@]P%^*0'IK7H'!&4%U([6-XL MY]3'V*[O=>6&L(B\@J*2\HZ=ZAJ:6@:&1L8F^_9;';*VL;6S/WS\A/-)%]=3 M;M[GSE_P\?6[>#7X6DAH6/CUV)NWXN(3$I.RLF_GY.;=R2]X4/+PT>/2)T^? MO:ZHK*JNJ7U3U]+:UM[1^:[K??_ X.>AX9'1,?KDU+?O/Z9G?LXREU=6UUCK MX*^-WWDA "3BG_&?YB4%Y\7'SX_D1_W."\$7^OL!*7Z!K7J"T@<<49Y!,MOV MQ@C)'LR\7]XLK*;OQ)#SNM(G(K_=@+Z#^3NUOS+[/TOLQO]39O\CL?^9UQ@@ MAD3 FX>4 K ]_B#) W@OUUD%+HDA+%90^!N!J4]#U)B8M/F#>Y=:;_QY=3' MEVY[3^A^4E 1,D LRKIT\P &$S]*A9(NY/& R"X>T#8X1&0<(XTN0W3/Y,D+ MV8VUFVJ><-[WHOI.N&C3TI.*),'L %:Z*)C]Q_ #9!!;_+V=Y3KPS>5X >"F M\2!:1(.L#M:P3W!V@0IDMYFF?#YAY[$=<_TCB','\^]7THOIE73X=(S9;47SJ\Z?B=!+=O+O4 M^)U%U;<7(M;]9Y+]$Q9I:;YWS)PT@CV_2&7X\OVU"DWA]O# ]O0Q(IW8S'>\ MPT-OH#(Y0Y]EDQT)4;=]@VXC9H-=.K.(S:Y$'[O%/[",[(M'8E/G'AX]OC+N M<9_1PQH'M9D7%[5QZ+"5(UDLJYM5]5<#U3"6&"48M>#CSJW1!_BE,@Z\*SV& ML):%8ZL)>3OX@NW*40ON*S<>ET!J$2,7?;I7T=RW!! MC\Z*EDC/*7]\)V$VV']^G%/AD<>@LCB@'//H#^TSF,Z0D/6L#'FJT\FJ*[C M0H0EYF"?8W.0RD?-77MWE9N(I:6(O#(7,O^Y"E0Z6@.RO^-6],-0U[[\$:TG M7=MI"#S)0I];U]F.'H^E4ULH2/P2XU':,YLRHO"OP%)7ZOK%B(YXRM758G3O M=3=+/0=+ 5F73(X+MPR2BT0S-^]'IW(\?8HO5KB_&',_C=K5I[\WCJ:Z]SE6 M!%A[K_V#!X!AY/DE'F"M[\ #FL[Q@,F+[GA0 S^_'KZW7:&M6SMBLWCS(.&\ M+W*F3KN @6TCB48>'B!0Z0%$W/ +U*E+?\I;4DX'<_P?H@S^SL E+FR:]154 M9U#;KZ?'<6RGNK$.0ZL_SLP/%(O/_CY$VJE@*3.V!2,0:6!V M8.K(17%16_W=M76U_.0[HRT,]&GE9,#J<8,> M]@\&Z(J,Y%GV//CKL#GWJZT*%@=5?I;B/NX&H\]:1570=4#-O?FU*M+(FMF,*E_E)@7VT MW_TR[G.<]D^T.%AJQTS+EGAZ?S:DKIJD^_[TZ,?7-M2$8G$W[2X=K!]9^&?U MA'9MX^OAY\6,M\>?=EGD:"4D\VN5I-_)F+5420TVPBLW:#X-:VV=4*IJBDAU M\1C8Y/+:==(K]1+?O8]?9>^U LOAJ\42LTD:Q7QP\'?X_UKC 3=NIX/=F 3J M&A,-):11BNN@*"SMD2VD[S!IS(VTX@$/U(HEIFA4CG3-)+:#%&>ARFS*)L^$ MU(54!;+N;'T3*JVUJ!WW=JX]< XF,EMTRIAS=K?WDQGEYTGZWZPOO^N>-]ZC MO=H)"?, 'K S@$&&FO%LY[F9_0#DS_%FL">I\X^F% 7+ EZ&84XEKKOCW0\S MGM]9VOSD,C6&W(\;T89$HM3;CN"/@E%,KTG%:^-QDG[0UBVV*@,\0.PJ(OKE M=4%%_N$)DJ*%.'A\BGQ#IT%[2GS/;IQ#G9,@S>P=9K/]IFLN*@F0,X=%&,#S M&1)'XZ>.OJ"QW]R#VK=]<5\%$4LK0J_'-0DQ0/*+V"Y MFD44GSDF$1)UX0'JF^@8MKPW#^C/GT&^(U[ @NKI:<2+^/B*,$IKW:=L3T^Y M^=R=VD.7V7W.B315"T^/1AX@<08LYP%6QO'8I6\P#T=Y\@#^ !Z0[3R(G?=\ M Q=9D,N$+ (<>$1L5H*T76=#\G0F\1*WX\YE1H?OM3Q+K,>7[S>_Z[?AG%.6 MX2$DO5/MOE8Q\7"]?=)?JF"!A?BBLVBF6+1Y-V$_!P-BF#JL&B;W:U&LW'""H<_.21YP8E!]Q[:N[]]S*KJP MB>1:+*WFNN!]'B",;SWB6U*=QS(M.P+^XVA MPPKXK&#WQJAH"U.&>-[MCWBT=*V%_]/Y@^>0(X6]J"X2XQA#&8'FQ+ O;]8Z_(A>E-'W^+'DJ4_9]%-%=I6NSE7B;G2+9?>M2G#- MA.?GV+)'%_"]-3?-MI: Z%:WD)CB$:O'?D:2S^59K_9\MD8BF>M+EIA,%I%Q MB)J@[YKHPUR*7UBTZ\G8FA]M<3>:+ ^.PF?I SC <#]".GE&2T?.[R2M(6__ M)B4/0Q77SM21#22^R:3XB?D3)(T,;B^]0=@Y0T4%&E*4_.NR01_';&75^"?2 M/Q0[)_(=(M\]#Q,QH15>Q5]/NA2TW4Y*SM'6VC%:FM;*+EY3&XLV\X9$8MBAZM$&93TW M)P0&#S!5YFW,+T!C1R]Y>4(/I?IM4"3+J#D:#E0O4^"^;E+*W:?NZ&7/ U[B M/!#/YQ2:MGPF&YK;_'#XP.XJ")_.3S9+:\OUPCG9DPGP.0\G=GWC[.4!KV*) M,Z7%Z)F0WYQ'D<72*KX0!J\K<)/EJ1N.0?BJ-1 ^P@(DN,A*>BGSKM5PP28G M 2OXT3Q(^/,4>2R=7A_6 Q=LIF?IB]5J0>VAH)W@9V$S/KV5I-47/I#0,#,9 M]RHWPMR[=2/EW:.;PJ8E^U1BM%.&1[$,6SW2J#3, ,=W+$')-YJ^FVL@?]7 M'*8]B9L/9\;97]I9S^ !"<'^)0)0SF6[I+/H;MFG?;?3>,!!4Y=5.<:F2=9= MYCA=)XX3](B<(UAV\7478I^N0[\=;,G.QV!R"'MX0+/KIR+BI<:(>5,S>NFI MJ H?O.F'I:6*#USM56U(6$EEEM E?V$N-&/L7E=-SY%\I$?9B;I@([>Q1!JMUPI<,9XU,-[$.Z7^H390,O* M&SZTZ7\$PP/#K/Y;,"I@P?#Z2S#44*)IGUO@!.QKN946:L3AC_B-'=HL=4B8 M"XM$$*,&:H:5Q\8<( 3Q@-:\IEWH7_D-^W@ <3LLX_YKZBQ7\/C32$D014?S M7UR7/'-QOSDYTV"H[<[(HGK*RD2CN]*COS0.?8M"*[?"O [&LE2J(!S^-NDU M#YAOGL2,E78,-RDQOJ[EW/K^XGZ]GTZBT E=1454D?]:("2J "_B'IH;'T#, M'GZ'9]CH_#+ID2*.P!*VZM7+3V5\IR9C5O7#KD(0?"#;^OZB[I=H3LK$YG]P M.F -A(7.GV&8NG(+>8 /&0W*G*FK;AQ<_?6GA_WS+KU76:$9WFKFBBZU?=: M7 _( SKJ EO3^?V;-(=V+ N,JT)Z\I_3F=-CLU MOV$3<^ECWWB9D;3!@?7";^?+L_QG\/&_E9J4#.WNVS)HF(JS8314;+E6T1": MY=QS04@7/87?2WA/DEXEQE(K7:(;SI/'[][;9#>8&Y$C6OL@Y_P*L'CL5=#B M TH)5B!L_ "83*_7D0P+/%$]%!PQTO;JS%AM\%EB)LLL"> < 6&SQW\;'*>= MV1^Q8+3;N#VC352QLNO=G9B9%$%"SBR)88^Y292Y!.F&Q9Z@- V;Z=//"!RI M+GG8TZ2QM.=.9+G!D<[W%EY!F1UHPXVUI(N',O.TDAY]^K'%.ZAC;U082,09 MUO)'S$U0TU98?Z6&5Y7P/22.;!F$^U_<$7J$!*JO<_)K6BAL >*""[EX;KKG MW\W, .0N'+B[,RY@-P?'H'H<X[2J:L\(*J >[&;H$UL]H)V MC8$?ICZETTV5^F7,#&8>%"\G'X&MBABAY8^^IH6)]\[4W=05<;M91;<[W2 MQ/UL&4C1E&;,E3F#@;@D9C%:$N;NRX2QIGW9>CM-DB7/#RQC]%F>LS]HC2ILB6V\LIR MF KR L6->*%G7)3>LV!5$E724O D_F2B\>F9O#;;4%33%\X'J/];E/8T9LP; M$MY!PR4&X?VQ$M,6(DPI\6VC,4TM(7,W&KU[GA5&*'/R/AM0-T,?2?+?JNZ] MC#2W98"!$=B$0Z6>=HQ-^[3#W^E0@F%,#'*LP)@&DM+*-A1?Q$K8WBE^.OSD.IG M;59WKJ:N'!P]I_I=D00B MR*.'_W5-\?N20#L#)#-QK51!,]0SL+Y=@?ESP^:>5.;7GH\+'(V2>CV:"$"G M^*/' N&O?$UMJ5^2F>U_.%98W/SH9TQTUB(M#A51 2Q:6ZH*L#FN5E]XTR,IR50K!="NY981_2B2A$&*;*#9D>>F!TK;W,3U MCXH==FLN C 39O+F/?T-'M$B&SJ0\'>X[K,9'Z 6F#H>%#4%DQ_P %H1?CD< M*T:9WT+=T)Q!;JC\Q1+M:' 7#^#&SREU\FLX?S*?4_A+(_E!T(]]-)(O MKQW2)KDFGU1N[$Y@B_>FZ29DYIAHA?_JCO1C_T'HV9B>[V(F.S/BRJ5R-X5' M+E@PA[\U5*OKO<-*",T?D$7<9TS1T]O2Q_%3P3\OJ7]>^WIAYLOL]<86TLY1 M^U\/0V: S0(LP&55G'&QSO1 /\_!B9=65\T.O-GG3L_"J^I544Y6@K( M_AV8GCR.[%T(9_6;2=MAF)TH7D0:B;KL@Q'%SLMB5[V'IVK^-T_THGIO_^L2 M)G(W7(8PAV7CXJ'6:DK7W/)55@#W$<>1O0?L6&EKDHU[[\\N.^X[%Z$4/&)G M!MB:N"X(M.( M1^_+EAQ)[WH%ES@6V"E7'I"'1A-IVD2F\T]JA0Y'3FVRLWTIG8!B_%GA\\#V MT9S;[9 \\< _/VRQF:N'8ELZ- M8:(K&TU=7MW&!5P3D62:S+06 "Q/!WL'2P%;,\T@_DR[Y.U_/CJE>$[73-+V MD;TU0#"#OI 8#O="6]Q>EDX1;Q9<]5=5R2F((*''Q;Z9=MAAM1FF4O*HGP <]PIO!%>KVI8*RG M>:FBF&;MWFF3+E\]KTRG"*,W7N,N3$TTS;U*PXT0); MC9LWG^P95?"HSIHE+O0(7Y0XV>E^RRAUBJ3E#*$Z+6X&SP2QB!QI-*MLV,SE MVE/.-J;ARJSP>=_ 2O?$+Y4)2999?+AC"#%SW4'$QBWK+7^[N[^"0L*"FBZ< MHKRVP T0-C:';/&]9PBJL&P1?=!)%L;<%Y'A+WQ5^8:KHG;.AJ48Y^;BMCLA M1/BL$#U;D@#N 5AQB,2NNY':<+?@ GV^OOZA?CQ"R,T]?[(F,5Q'^Y8C6 % M!Q!]L&/*'1.F$8'\X,2$4(>T1O$]9]MB9(Q3^BB9E?39]>"$,+.RO79\U_&S M\ ;;RB(VYMBG81T\U(!D6X#NQRI[#1VPV>+UM=\ZS@, M?%M=)[=3D:!Q!ZG*N"/!X(.>1M.E Q[9=F3AS"CZJP]#)_Y?'I>3=]*&9BV M8#N^-O[D;2Z>)4GD0^-Z#! S/ #9)/.3A(3DP*O-;H?37_\T*A.U$Q1[?2W4 M8KZM8$E3KWOW?^D0LC$,%W0,1=)"/?(ZHZ.$CD7-J6XMCV_M:][10;K8_\!N MSTY3>^1+(6PJ$$'A2%7"IE9K%L/2_<(#9FK+ED2@H,HE&*WH_BW+ER*%IQQ, M0O]<7EAX;-WS4N 4#X@C<$N(,S@FE;M1"\L' *5H(KJ)^^W96$)?_3"DP0-4 MUGA D0MF"D^AH )T=EG(@A;CQ])< ^G] 4YATZB/I_@/*QJ%?[K>B_*V+W3J MERH &#ICH:P^!F;^:2B]/E!^4UGB6GY2PB59LXR#)OI[L_86T\Y>B?"1^XD7 M:]H+ZDS))TJ4T7B E.M<;M:>I56_F&"X_=Y/GM2F]X :ZAR9V#8>H-K@'X.B" E=?%D7'V>&HY?= M<8WXVY#P0CNCM-?K7P"MZ]+/Y2T>51DKZCU1,5>O9C\-AW43(=_ M0"+2F5MFN.#0JB#E\9.5V^O:^(U?ML!U6.)M6K&J_H*'== D.<7"PKK_\2#G M/%F-\Z#[<5TA)N"-X2IIG@PK0QV8RKS:9J1,2EN=2Q< #VR7/AU5%?+UB\:T METWXZ=4/WK*(]76.]-56A8E-W/3@4SJ.)MB!4-1(P5K!P;V^R%]Y63I*4#=)85"79,F,CR.W(F^( MV,63V8=;&5N&%VKF?]^WB(,1;"LPI&/8>7"A06?J1*IW_8#.(ZF'K[T%Z-ZM MFN9U:3DE;&]",T&"^]R@JM$/2U=A/GKF->Y>DV)\!V7W S^%)Y34W.=D@XUP M_BO@%.,B=($H/.&_$7EH?K!2SEC$TDRE; 7]/AI;7/O=WMO%1B)EK]+1 W+9 MDX%*OAZB Q-LCZ%=E1$&_/ED']<\Y&PX^0=KO VOP-F)K: -FIU_>,N$O=?^ MFKQY]=!2O 4_)P3\2DCTH:?+^R]H8GXJE'=_%UO?:W^+ZXO/[%V#1?:B)O%UC>R'B2Z_ ;G_7UPQ6=OBSBRZ. MHWZLRY7K"C*Z)](,^2MD1@!M1@0D(LJ^. $-8B0Q]GTO=\326:EZ[J*14PM. M$N*MZ820V-XH_U&8QY_@:WPXNXXZ,$@!UR?3,D<.IZJW[FTIY@$?NW@\\H/CIRWO8"\3D M*[8_=%JQ\K)K4 =H?D9/)@P9JX%72TTP!C." M'F*P#Q:T7$,.5?RV !8 $],:.'K]C%K[_AV+,4_O$1:#_(C"2;C=69*;4.7- MG++YX^^*T=-76?K<4D/\J/'4^<=DD]K]8LM1R:<'RC]8%\J/$5/1:C.VUZ&; M9GJ31XP[5%4'JKI5%TT7=!QC]@2\W';I>>:K]YF@,J<0UI\[A.;K(%AHL252 MG_%U@NPS*;C[J5_=.8'NQD_[,C1FR(/LZ:%&(B1\?I*<-,'_NA[TA%M>PI8! M@T,GW_2MF;+WR9N@76+NI"%FFW[!PJ/WCSZBIS] (D=@9W/_=P?K!7>PFOAR M&/>E7_KIMT@L$04A_5LH MMU&YM:+/OQN>;&QYE?H\3%GSSZ+ MSGT[KX_/V B=KV%2[6Y_\&0LM;.<,BL;&PN?V*W"R/\43(+@IIE.HOA2-V0X MH3R \!+;D0[Z+(T90["+4X$EN"P=[B=G&@J=ACNQL&H*AW4VDRI2%]+3#+@N M?PQ)U =M:RTK2TRY8%*=67_O#6J-7.Z+\+\+)C-1A\!3M'O>[1[;&MQ5, XU M_LF)[B^!&52(>K1I]ID=8?B%6+8>><&9\1@G3&RQ#Z>_*;ESQFH7,GCO.\18 MA?K)HQ&2MAZ^2!G6%6XC08[0Q_(M\'A9)U$;%J7@&IQTF3BZ;VQJABBR8:)[ M5FA+[!>7E3YF/$L8'&>8GL@I9=R#RCUE+IB['+2I38FA?MN4QY2;KFZR %N+ M+8,_1$5T&.GIO MP^O$38(T7 %PG^/2T1IYF/(I_ZT_D,U]HI"95J1P6O?.\ MY&R_>[OJ9+^1Q=(QP>O?AM\1&;944:H_IBII]I7:)G,UV[K<'P=ZPY/4CN'> M!/8.)W%TN1E-AH3>_:LVK2T%'\L_375_7KL9=O\8,:%+?3=X@>)'].H915IS MLPB;C?+%/CP+N^MT_N[)SR$!*XKH7 .5S"N73;-PUX&-G?\8L]^1+5MY#&&? MY*:!T'.PEOW7#7'?WRW %L5'?S>!T@6,AR42SUK[XOQ6C_%+C;@?NI++W#J7 M8ZEUR2LW"=!X\'?\X1CC8 T<',K8]\%*R6)6RSKUF.<)C56D[*P& KUY&%;. MZO7.0)6PES_F:*2W"T9+IY@OYCT-7QS^D+#Z9'-41]X#4^1T<>]E>N="E#RY,G]_EM)S8LXG;U]>W?:R++O5^F;V3DG65<0/7C:,[,N M8Y/$>SEVQI!Y_"E$8[0C)$82=KP__:WJ;@GQ,,:X 4GNL\\X-NC1755=]:M' M5__\?RJ5KC^V?8<.R>?^ETLR#)S9A/HQ<4)JQ_#IO1N/23^83FV??*%AZ'H> M^2UTA[>4D';5J%7U:KM1J?SZ,SSJ3-P3^"?$^F!\,'73(H9^8E@GNDZ^?B'O MOO7/WK.+SZ_/^G]_[?*7?OWVV^7%&7E3^?#A3^OLPX?S_CG_ IYND'YH^Y$; MNX%O>Q\^=*_>D#?C.)Z>?/AP?W]?O;>J07C[H7_S81Q/O-H'+P@B6AW&PS>_ M_HR?P$]J#W_]>4)CFSAC.XQH_,N;;_V/E19<$;NQ1W_]^4/R+[]V$ P??OUY MZ-Z1*'[PZ"]O)G9XZ_J5.)B>6/HT/H4[/\#72]?\J-R[PWA\8NCZV].I/1RZ M_FW%HZ/XI%YMM>8?A>[M./TLX%,[":EGQ^X=Q6=GGNIXU Y/!D$\/EU^P;H[ MI\E]H\"/*R-[XGH/)__[!PV'MF__[RG[-'+_2^$1,(V8_H@KMN?>PD-P3*=\ MGB?P'<'_#)/_@D\>+#SYGK(Y# )O"%]V?XS=@1O_ST]&0S]MMZOFSQ\&0*'I M"\;C@ S2<-. W,DMB4+GES?#Z/9'!45--RSC!_W1;@]-73>J_YG>OB&V!]S^ M%-K3L>N\208S=*.I9S^-$-7'2.%WZ#KS]>7'6NSB[@MYMN[]MEO_?S!WSZ ML:938]_>4"<(A^2&WE%_1B.-='Q_9GODPG>""26C,)B0ZRD-;61-1&Q_2*YH M++Z6,H'_S*+8'3WLNDC^[ "9+Z^O-7+MQW;H!GRY_,]/+=,P3\D7.W3&_"-# M8QQ:^!Y7%.F/*3FGD6.',8U([R&*Z20BG\)@-N47PVRKY%V_]]?)>>_3>_+N MRHZ&]C_XQU_O@21^,&.:WHTC,G)]4/LN4#"DTN*^^5W4'\+P_FT#9\,'?K\EJ%$E M'; \JZ,.Z8B&E$W+#BEQ??+-=]$(]6(;J;3YU=]Z_,7.+,2'/."X-3+S/1I% M!)0N#>_=")\Z=!TT;1I[R9 ",2:@.H;X/MM!R40;RHWEMQ[Y1'V01,][(!W' MH5,<#OP"U(]!EY"OH0MSF'I/CNY3I_.5C:^Z;\E%*3/UTS\I<0(\)X&'.3^9$1I<.![7P'L$/& MP3VYAVG"\(?4 XL0DDD YR0,-5)E5P#?4+JL+G-WX&DP"7L#\^\8#9$ M@?:H _3(DK,R EP6,7G#"3"$%L6@[.CM \@DLU'$)F%@ \WL$8T?.-%=)I9@ M[&)8W9.44_ &"F^8P,]DQ.R&B1MS7J1< -JP>2.C85I()[QN!FOL(7F3'3,N MPQLHJ&$_K@H6[2"T*XO@<9%%K4$^IOK@ANL#V0L%7M2)@$:1$[H#OMX9:T$% MV*Y'!M0+[C7RG3YD5-,8AN_A%+A.79%)-G)0 =X,M-T)&W',)'P >H2&O[S1 MWQ"'>I[ 'NG?T=1VDK_%!/D=%2?P/'L:T9/DE].M9BY@;0;;9( N(PT.JP)0 M*9C%)R/W!QVNHU8&E/+Q",+]'(?PWS 9J[BL):!1/,Q^N3#>OCNAJ%[NR4T MJ_Y_-?X)_!O1T!VMS /$-\:%+,;%A@A3.+T?@R6H(-GHB1_< PH\S0Q"D/7'JF46W/']E:]T1V MJP9Q&B9EEKXD968C%3/=RFA))69*S#:+&<;\7"YJ3+1TLVHN0NE6(EJ MLJUER:J2S /L*$'3(*_HMF,\ YXZ-\5PA6F\U1CZL$-0IN!@FX KE)PJ.=TL MIUT[].$U$;IM)!IC5!&DT"9#UYMAN'!@1Z[0CE6CM22Y1E774QE#?*GD3,G9 M>CGK#)&8(%#=WR[ZYQTF4:917U:*='U>>&\AEK= YSLW<@>NY\8/)V-W.*2^"(3KUFDV8;22Z5W( MR68%W9HG 9G0OB0ANY@N,VLB *JG\4\C,SC^:&?KB%R+[B71F.5'QM[YNAN*C3&9;?))-;"^GS*<@(95!2.WO%7L$,SNQ MO7O[(1+D:K6J9BU9Y2++K2^EPHN=8'\Z![.RQOSA\]<=&A(_\"N8.LJ$I"?4 MCF8A?)^Z??@DD9AAV01 +JO)M2G\@G*X-L^%KZB2/S$6#G?2=6.EB94;4,P. MP%. \S2*-1+;/S").Z3P"GAES#21/0E W_Y7_!7%@?.] H:0LIS#E/H1^X:\ MPZ@ZJ&!GC%D7$4@GC$MPZ8B*< U[Q?M,Y :K/VXQZ?;(_5$2-97D+?0'CH>%:/ICBBE"EHNU62@*-!Z(,?>M>1HL(?$ N#6+\>O5M$#@ MWP;XZM0[FC/B"3(_(1(1"Q+_,PMBS.AH.'9X;B2$8/E>C5L"6"(NRRHMOP^) M9R?19IA@^A[\@F?[0GC\-/#9[?Q"L""8^@I O#S.;1RB%(D'JOISS+XY-&+BS8!SL61PLV@;VR8+FUN> 25PS-Z(MM*&$4144 M-3.(#/PEPQ2O-P0H3+'5$FSCMDL\LZE7]=K;+"I80F(9VY!Y/A)V!!1.D$+R M=P7!WPFW:_= M2?MS;I"(GL0!0C[7X0='L9M)N6G$ZL3VO3Z>W,A4KYKUA<#Y!JIDYS<-*8,I M< =A%9E2E>&A1$"Z.LPAAX&BBPS. IU'68J%M%+!S0'7]2Y9K)RAT97"QCPA MS!RHTL*H1JRJS1M.W+\>S*U>8\7 DO5:&938H73SIS"(YA'K;[3=0^*^0^(]M$5'X+S>ZB^W+ M4?CO:/AO_3X7A01+C 39_J5"@L$#1 ?SJRAQ9UE!<5X9 H#SC58*^143^>'> M.H7\[N/7G*Y="015&'M0+D@(_E\.96&]9DYS\.XLHFK8*.T@Q( M6COST^2\A$+T,!=#54W+56^Q1YJ6&V9]W@^6-Q4STJ9BAKG8Q),?%[!PM @\ M8W[PB+G7MN5,F/?UZN-1XQUK?ZH= Z#>U]TWSK1)R)>1/"OGV+>;UJE5;DGN]"M*V*N_Z_'O+ MR$BA:D*O)/%Y3>CK]:4S7^8(M+[L]RS(8*IRZ[7U*OKG>K=69UJ6G12: M&8!XB6I@__(&]J9J8%^"!O;-0W6U9O%2.XI)/0D4BZ!I1-[-?'LVQ%.?3\EB MMVM-!('BL>UG[&#Z[=IFV$G':63,&WF=L;=N>YTLO94?[/D+'/!GSV?MD#WB:R.;HBK3C"M9, M_8B'B_"@QH$/G7ALM\'61/E=UNZ0IV(*.YXDLLKC/1XLPNW2L5EH59LK//S= MDL*BS;!'L>A%+))QTHMBT5Y99"@6Y9U%-1D(Y(#\V7DSKT*$\EERN$W "VCO MT2/(<@CX)!X>=V#()UOO'9-KZU0?YTS1[)/BBN**XHKBBN"*E.,N"X6*=H-] M!VE-LSIGJ0=FZL>;Q\&!7@X/5TR:PVQ)ET<;+V%[ *F(\$@R(5O'YI#EZ\!^ M5HL]SF-#YM%SW&PJ-N>/S5958I=)Q>:>BX2O:B5'2XJ.'UJ+YUHJZS%/TI$6 %(^RYP^U MY0,4Q2/)/#*K+<6C7/,(VY%)!8 E1'M'PK32#Y-_W<'4 B%$::?+'S58>O". MVX_ZYWE6P$V))Q(<-":V$U;AS/SJ/>S6K*(PN691;0_95L4BN2RJ*1;EG45U%*:DH135-D7LZ^*F^7AIEF6Y@.* MF[@V)99+JY+,C8-<.! X.068'8BH(IKEB&CB0G9JM83,Y99$K? MP*-8I%CTZEBD(IKYC&AVAGB2-R"_[F\7_?..BF&^IAAFO2ZY[Y"J$CK&=IZ: MJMLK"R/+$LQZY8PT9&9P%2./QTBI?=]4 >;^@.L^\_%E!*X%0JFUX@4QCY16 MS[,JK16R>',_2;E<\ZF0FYH5GQ2?1[TQ2Q&ON MZ"$[A24:\F_2(Z;,Z=:G(DD<%*-',^, M4Q3/_V3D@'U7("6Y)Z2L0W_VJ*O M_]2SXU$03@C\( Z\R07T.20 \^_C,;'](;&=?V8N/W<^TLB]"Q_'8TKHCRD- M7>H[E%WEV%,WMCW\UW9@PB0."+"83(*0$G98/=[/WA+,0O9\[)_D!)/)S,?K M ?M&8W<*#X6W.'8(SPXC]F@ON'5AGDY$HJ2)O&C&!)>R&1JG)+)A,AW/LWWR M6TCC6"-G8Y>.R$?7MWW'A9%=CT9P;U@E@BC7,(S!+')]&D7IS",<-R/0;1 , M,XV>/"!>:-^RTEF@(8Z?360^ 1@JD&?L>G2!9# 7G[@3H$H,=+/C=<]DC01B M=T+Q[?BOAN^P84B..[5CF@P/;X(KPAD\T6=<"&T?[@?:U?1*K,T%< 0.F,6Q&>U0-8G#XXKJ>>7%5NO!UYHL17]>; M3:?> _D#/@K\_4OB@F34F2!:&H@&++H0N691H8!RF>JMD!R%N9#W@GEMO"I6-;O-50$0G,F^I8)U 0F>DO9KXNJ M^BH(@>&="6AZ9.(F31AFM49LYM',R9%;.&QB^"A8Z9]I]X,1A3 2HU1XX/2 M0],&^I]6!C"HH="CMSA1^#7"@=N)8,RF*)C_LC*+@-\$ORP2V7; M#!%(12I M>'H,-:O\&O '[]G$>_$BR)N M&:LR/K:'Y%]FLU&MI90%PX.LJQ(V5M<'E<%(. !IL-H9%L"%O]?P\%*F?^87 M_JMA+5Z%UPBUQY1=!%(T8N(+T >,M1!45+71; +S>4B%; 3?F7-QX=Q8 &Q8LYI<4I2@[>,HWH2?)+EM@-(.&8 M,:KVA**Y$O+P$1Q&O M*XH_G^+/3!(^92SE3^ZYQVOO;IP M]1")+LOA*;Y) <6+:GSE->,OLP34RRL!1MM<+O/.#V+KP(-XL#0.4(N![N*) M($+_F?'8:I[,\;'%=*,++DWL=I.S=T:U\3YO^.G8#-OH4!Z;88VJ\;Y 2*>3 MS0EC\F4VB-RA:X< <-;G/)31VP'VY%=>#>D:IIQ\70]F\LS7^@IC\P-1OHJ: M T4%,W"B:84*4.$$41T19N\+ DV5KIQB6:WBRRK!,@A#FYQ/Z@]>BC/]2FG<=N8 M57HT5UH4/62JO-)+\TK'E($=-9DEQR?;"V>Q.[]04ZYL#54"49P7[!0[GXG% M[0K]/%:#4VS>XI:$ @$EK+W1R(#")]A+&1$3;ND,5.+I52,CJRFMKUZ9I2"W MV$B.%!A6?LMNN.(26UXEJZP22.9*;;,%8C@,9K@Y[5 UK8<14MQ2J,#4$P7- MKXC[+V[X\?A^C+VT\EB9ZZ:-ZY^8I3GS@MEP_]O6/])!.-_4:]2>NW']3]^4Q6[V'>8Q#;;94"NGK<7*+.)R?&H'>(J&XM7I6L(7_F2 M74R/[H(P:_-U(,AOK6Q4&J?[>^>0 W<6!^%)LFHS0U_\0FSVPG8TGNO3BOA; M7S=#\1';=UROME*%*#8>+WR$RL/B2N*65OA.,7L$,SNQO7O[(1+D:K6J9BU5 M2?PS'>F7(3ON?R$K&,&"4PODH'53U0/NA&SDS$&?6ZP7DR_8? MQ#,C)IR\WQ)8@ID'9+;!W(.FX+2=5B=5TNTCJ_ZD0U@40_M!(U]L$$=A:JIH M8V!&-K8P\F?80 >>$5+R?PU2,QJDV:B15J/>(B"S\%&KU8+_X.,F_%AI64+Z M@>=5/H:4:@07X2WY:D>1$PPI,5O-EMZJF3_MPMAG$;X_)Q.G;.1.@#*V3X-9 MY.$2]8HF12$CBN5J9:"7H9/+!I>R@( M"^+4-I$.J;"L$20N/2APS29I-&NDJ3=UW@_I*PP/[7(J6R>D832:AF7]5"4= M8"H,!%89Z^ $ER832:B^.H'GLU<^]AP$LW@N>;)YG%5'Y-V5#6K@GQ-RWOOT MUWORKM_[ZP1^?8^2B(2Z]8(!Z!,PYV@ 04*Y,60A2[\RI!-F4Z)@%-^#GJC8 M4<6NB/Y$"^V,0&=Q(^%.V!.PF1K:PC# Y8=[#4$596P1LZ6L.9AHD96V/X)U M [8K0M69V';@$CF#>083U%?P)M9A; */]NSPZ=%A5S>@.*BIR!E3N E^BT,4 M*AS$A-K1#%3@D'KPSO !=2L\WJ'1*3;P UL,0ATXF-UFFX^88J=I?R>X"C/? M&E,O,;MD"G(88W.I*4@Y-ZT@5H'+'FD[#J(507>X#-3ET([M4]#N"#K8-*-% M\@R!O.Q=;.T A>&YD1@-^_V4MPE$.$)A;*#9*N%JG M=BAZX"&W1,^[^R#TAJG!\=":1[%&6(,=P)DV-VF@85T@/PI.^NRT65^58/>_ M,4C4/S,40F%BX 5_ J%"+P@T@#OR6<[ M!($G/5C!--ULN%[,'__#,+\G28S@KQO MYQJ$.X6E98L^G 'H='9J*'@F,:K3M TF4U/B1%&-_87*&S31?^#VM!D>XK?T M3F8R\!O79Z_Q46,%8=(X%1N',3+RAX,GD_%@T!DZ9:^P4=%%2:TC@S>S,,0_ M\2[QLKFC)-J()@#"9M;PV_<06, U/WY\=OW'Q7G%:!/6;7'B.JA2@DRS4RV% MYO @L=\^<1WG\!U1*7-\3I]N"XM]V;P9M\@KLT*RS?NV!5.T!KQC:M(,5EC@ MQ**(SH*L*R8?*9LQD&48)39@KM/9/;P]'[BTB%\!34$@XQV'!71"PUX:?)D^%U*U=]XJ8TC8:1*PKN9OA] M'@*XO$I<_U-A8"ER[ &' >8/5#6^(OUF0;*S;\31WE$OF&:%"IZ>BL< 1!%H MP:!52/&"('VL,-+<)$_86WG (*(K2WR^')GI3#UP6&-,)8 0S";39?%@[C88 M:M;]]R2!&&DCRCN@YH1&V7ZWL,2Q3ZX7B47D<8\I D+B':(C:1!E.Q(/"2@J MT,$8.O<>3A<6UM:KQ@]B-/9L#$@,>#8,U:>W'& D:]%?'3V*-1?3C.1DH.:2 MH&?9AZ 'F9-R)!V@/4A;M?+ISB]!#HHERC:BVP_BC4'TR#MQ38.;A(MDJ;>P MB_ALDF@@BGK<0=*BW$J.V18[2EM34=IR16F941,-'=#^K?-R0GH[$SXW!QYB MU8C%?>P:7%QFI]-Q^-Q4N!X5!(!0>'*#* M9KZR'7ZG\1R^8#=YIOJ=A\5"<('TT)5'BO'/3EGG#M'$@VV8Y<];YHN(QV=C MDX J/.V ?]=?LP1\OS:652 M#N(Y;IA('E+;P[4QP[A_TC&%*8P4:621 SH92&MFV ;HH0.)9\BJ*NG-G/$F M6((!#0_N_.X']]R7GOG\]]"-O@/[9[X0[U1^.?(9 =6#4!"%N3DV!G1XAH2- M7 #HQ7 1N@@LY2#>G[7KN&RRR(R1<85%*5]137 8"Q1F$??1B$,RAD( O$C M \;94P*&6PYK:2"@@T(,N P)5TZ>RSMQ19O)F]!?T(I#/*K!'&(&"!$^>>[$ MC5G#=VVC/,*K<-V,9CBSA:60A+)8U^V,P\%04<#$Z9:!_#0=/0_(<>T(O\5B MJ;-U2X>@&N"<8ZF_D.$"/C-@HX-@ M 2]5S:9C%#!@C_X:$H8\%L&A9 D2(%ALZ"EB&>WAN2Z!Q5$)H:6!:ZV]D,=&TY )'\VB6['1!(S++BZ![,:B: M!0Q,G0@WQ'M(DBR+.![U3.H8L!5H1P+(!Z@"./TRWEYF#'.WD:+?PCQQCC%2 M5W&S65A8AD.6A1-VD)L+ZH]1HW"U =>O^NYS9SBE=900>XFM\T64;--ZQ$QO M'K,0 UQ8 _9;-,/8K,M2Q^),&O1&!4AB2@-&RTS[XOD>J:+![U--#"H8!H&& M;KZBW#A:2)4GUVR[?#D!YF$=1(4BUH.GSK"$$%M9,5#!91DAU&*,9&[(T>#B MHF9*I0("!HB?(K[$]O;)&EMO:Q*-]QR\1OQP9E\@NO1S,DCO7FT M$$?6363E+)A,W"ABE0EXG0C?9Z^?7Y*99B;ZZ*3?(W_# -C/8_]9YJ\2,D#P M2!V^JOEHOZ2J(LU3G'.R)2_O %Y_B%PPHQ<\1,86.P,F F3 PP+$.FPZ&/.8 M><,L K"'=["8,"]KBQV/"S&^-9$\%*JUH3\8A"_4$\B+EFA"-E]>(2*4X4)C M"#$D8848Z!C;TR@SQBKP%9-V/$0$*$IX(8@-T!A[B#7!2YY1COL1KLRFC$)/ MXH^DT@2LA_T=EBW2(4T2LY-Y)O#J*OFX.6Z5]AY-8S2S<,K5;2;/F+7J-DN- M3E8YG$28%F)S+$/DV6O\1;[B'R,1XP8C0?;="$:1> -Q @\PAYU!E.(*,7K@ MZ)] A8!=S,[[B>WO @HZ=!HS @<#\(SM1#"2JY(SID24?SJ#JQPD+MPQF_*C MAY@<<6>7&0(6&7^ -O M6.(+44BE)GTWII!99%)#H\(FGJEN $OJV??RD^^\[__(GK!0U[ZJLS&1$Y5!"2F<]2 MS.*T*-OWT5E*/IIKI(QLB.9.(Y(,2;(MA?QJB,/5R:#)*($*8E/ M^ F!YR_)K!LL_N'G3M$[VYNQI !BE[F7I'%CYF;=P"0CE,PS"7&().52(8I( M6/ $-P>)0:IM4RVS:9;)$7U9G,A5+99B);'@3#9(C"1*EE)29(0@<@U!1!4! MK*8$6,J0.8WGND3:#T?$SRBCCM /7%]FQS<1;FTZ))#+<%J"K_07EW'7$_'G>/'H[9D4R M24 K=6.3VMI(1-=0:UO9.\+G<-KY#Z")*AFD21!(Y?; 85+R=O>)]1CDLSS??79RH^P<#==U:2L7D#L34.\"C'^)BX;*'/(2%EZ%/Y"9.W_)H]EY^^66MN+! [2/BPF4)E#Y>S#U$ M!RY;FQ@/_%N6=5@J0^#D6F1/&E64U] 3U!_SMV6-5^(K ^=!U-VDE1[@&S>:!Y0RE[/7 M4CTM+:MGF#E"2 MFU^1XXS6P:02TT41TP$)8!*0*G%L,\D1FXQ!.V-U'P:0>!$'1L=L'N8!#1*0 M<7"/(UF@Y[V?#KY*/@?W>$RN)@6L"!EZ%!J)#%+J9''NL9P+QL=<6% MZ)C?!B 6U)TXP8(K*!'OC-8HE5T&'HV9LYV.RT<-1X6T82]I&-),N(*X,0-4 M83"A/)H[<\)IW2)9U6F@"!5R:K;FEZ M72IYRGCQPA9CX$X$Y5Q_HZT1_M,:,P7RDNC7W1Z0%N:Q>A!^7/5T%D8SFN3I MV'Y/>R%TB17*$YI1,.(A3-^+X63M:"9_P@*1Z*[P4J4P7BHK@W_'[!EVIE*. MT2M1Z*LW'61/ALBELM-!0^&RKS'E.PDM:(O,*DS5@W#4$H_X+.4%_-&;.\7P MI.N,E8 5FCV6U,Q8IL1G%*7R+!8Y=&$VL?>0U5[9=5TMV?&E1M4J^>&.W!6L MZO7Y?NGUFU^/=-:C;BKZ'_'H1[U::RL&'(\!5K6A%H!: *^7 4KZ#W\.[5.H MYUG'3VZ^^]3 M;DTUB4?4/F5RI4G_XYQ^+5RVJLT5-J,7*F-Y'Y"%NS>RXYKV(%T,GZF&KM(0 M RXKC1=9'LPA090H5*7XY0 MB@0\%>S,$5-W198&GAJI@&6N@&6B7M/"["1>H-!CSN#)+@=:P4J5%6I78/)Y MW-I&(;[3J]9[J2JQA/KO:(B3E6;%]@^%.8L%3R1A3LNHUA7HS U7=P:=*IR9 M5]1YGMD1)%W)EE*C%DA]UB6[[$54E7G6BW7)SG@)=>"1D&HZ'QG)5!^:3B,;B@>Y_,8?-X"P=ZD MK;L5+C]^+%,2LJZU&E7]U2/K/&/CFEE3V/B(V%AFA&/>!0$;(+Q=/!!!HE9] MQ?'K NE>TRA#>'HCT]_NL>50L4HN3+T,F/=M7E#L'N/.^U7-1U^21PE$%T@K MUVJ%@\-'4\%Y8/O.N+I6.%"]K'T_L#[8OXK>C!(5Z#(-^3=I?AC/X]D2TZM3 MD7 J#74J4@E/13I:4_[YV77;M^7_O88]+37RNR7^-<6_!O\7A\FN43W[%W!K MK5FME;MG\-HDCNK1_VH(WJS6E82K)OPE)GBCVFHJ@A]4PLV2GW*0,X(K"5<2 M7FZ"*PE7$EYN@BL)5V2'F4Y[&>[9-[>3O?AH8&\ M'_LB,D#;I<-X'#1O*;X5Z=[C83[>!:"M,V QO%-(E,,Q73 MBL$RKY?BDL]/5DNV=<.1!JMZ>0A"O[RBS@Y:4"3OBA^Q31F9*;7_!+>8BJ='YJF)#;D43TO%4TMFRT/% MTSSPU&AC5Q!9/#TDFLK.;H^[XZ1%7U>G4)(#((\ ;0^PG)X3-LY;*'3OZN\P M])<15Y"T7>?=F&0\*4PZXI75:CL-<\Q&7*TKH3:_*3?N6Q_O+ MK8.GRSPPJVP^N^*:XIKBFN*:BH =(0*V@B.+F(H'1^>!3%VDHG*[HZEB'WBOXG+/ MP6 -%9Y0OV]>+ ^5X9V!$=LL,IJ!]QJ(EG6[ ^ MC/!%;/^@\MJOE )3%@5 NI3(<"\*#W&#!7BR!$_I"=W%3]>P(\]M)!1_,@+ M/U0(<%>,=AV/:4B<,7PO$8:]HFC?4XTIBP+F3&R;IH*!.>7PCGO1I&>]%%>/ MSM4]Y)855W/ 55556#ZNUF0Z@2H0N2O(W0@3EYKCY>U$DAR WJ=.E3]ZLTH9 M^+=>?X4%C?EG[4YJMUZ3WP-:L?.8[)2^O4FQ\WCL?*75F&5EIRZS2$)%> MU0K4>:(]3K#JOGEB-&07P6@./(BCI@R.:*"F]*0S?S09SSO^2WN7@_W@=ER M,5FU;WVA4E5NGCX7''Z[AQ, B[=QTRQLO>H2_UXA[XS"GM"L>&<6MGNLXIU1 MS+Z6;\L0)5PJ'=TO$BT'['RJ!J8H(+16@&+18R'.//!XMW+]8D0H]V3TBLNV M8@3-%-L4V\K -HE*MF?#1EM'9 M0P>#&5W@1W*?XU$[1/:-ER9AX4LX\PQ=?_LB>70HGO:=C-ZL9?9M\:DT,X/C M/\=A\K*YHU)Q B\(3Y*%DQGZXA=CCG^0"Y[KTXKX6U\W0_&11T?Q2;W::B5R M6F%K:/$C5F?"Y?>65@8AM;]7[!',[,3V[NV'2)"KU:J:I9_'SA:&$NJ4(?D""&U;5V)CA5A27+N(-0Q'\D")N5%N*XCM0_)F! M[R>M9;$W$CUEFB2Y&5O'O5=_2HJ2"I-P]-V>SPF#O_GUW[8_L\,'3@G+T*3E M-C9K:ZE5;3NFW93VD:A]CC_?1254F.Z%;WXU=5/6 MJ24'U3V'WR&TJ))RU3P+F&@NJ][=]%$NJO,@?%!HH] E$8])8[/>?GU0) _,VTEWM!JK M)X7E&*<D^_NWBZ]?NE=]C5QU^PJ?E#B@8AA:S9+5L:ET""2_.D;76FOZ MV^4(8]QU7V^N'BR9;WQQWOW8 MO;GIGI.+J[/K+UW2[_S5[1$%+4H.+5JJ+*1PT**FM1NRW)>]<.?BJM^Y^G3Q MVV4"+.2Z*>50'$71$J;9UEJZJ@W)CP) CC1T60',0ZGL3]?7YW]>7%XJ2+%[ M-J7PF=U&LZXU) =#2X0Y\L#FG5120V]IS88LGZ=42=^2Z*2GFOX>/12?P;LY2YK1JFLUJVCAF(T+_/*B\]O%Y47_HMMCZ:#>Y\Y- M]_/UY7GWIH=:S&B>LA11_V_5V./EY2O'Z7"^'1U49X\MZU..QL3"M/;(*!6% M?=1&WCPM[>*MU$,IT70O_M1^P(WXRM:7.5^C:_6&W,KX$AG[_+H@R+9&GD,C MH$7"&1T2S[594,3%\_\4!"A@LJ:E:Y;^"C?/Y';QUQM:K5:T6M-+:D>4! ,8 MB(T]Z>5I P4K\J!:,V6VM52 MMC(0\'::+3W/J$15@4BH BEXD4>CK=7;R.;!4,[CAECVQN<<09O+;J?7)=>_75Y\ZO0OKJ]4 M&4F^X?W:MO705 2@Q #*UAJ%-?BI; M,4#-YSI4LM (X&OG[P[NYU68HI"8HJ$9*&P*4^1D\0.FJ,MJMZPZA.1;1^0T MP"^G/ZI6T^7JE1)!CSQP>2?M!&RMF[(BKBJ-DS^-=.Q$@)2^)$9#:]1?8:#D MZ-S;L>DJ%JT4+8Y2^D[QV?FM++V#3'C_\9>\S?C *9Z#B_#^@S%R)I@C/+-I M![^"+FHO;G[0QV$84,2]N&?!9!+X)!K;(8UXMM@X)3/?DA[_R(TBW'['3LB;Q5$,O\"02!S$M@>?MVH:*##-T'5BQ^3?MC^SPP=B M&1HQ==,B[Y8^,=-WPXW->D,S#5W>V=RO*4Q3%%>H;K6T6DUNB\82Q6%RZQ/5 M+5B<[5QWB>_ @W +H.T1/,ZSXOK$L:.-H>&-;W?+.,#6K;;W/,\2XH;'M^J!&J!WZ\$C5>V13Z]7B M)FP,'?Q8R5Y*,51$#ABX6Z-YE;%1R.3)PH8\]@J64U:KM]M@/=7QOUO5M^11 M#';2>FW@>LO(=6\55?XB#U!MEMOC] U6S>QE(JY<P_Q-AD"?X=NG<' MUR\[D^8_LRAV1P]/E6GP>].1IG#:A(^./\1##>KE9H#)!OQ([G,\\+MQ88V7 M*&OA2\2RTO6W+Q)_A_HQ#9/1F[6YZ OQ;V4&QW^.P^1E<^A1<0(O"$^2=9H9 M^N(78ZX>D0N>Z].*^%M?-T/QD4='\4F]VFHE*J["ENSB1TQ?<+5P2RN#D-K? M*_8(9G9B>_?V0R3(U6I5S5JJA?AG.M(O0_:)_:.2(:[0,]EA)!]EQS$-(I:. M.0FI9\?N'5UZZ@(S%U^P[L[G\7/%\BP(8_]SEYQW>V>=FWZW1WI_]_K=+SWR MZ>;ZVU>NWB^NSJH[2/SFMYY=7_6N+R_.._WN.>GUX1\\%KU'KC\2/"\]LQ'Z M>6]-B)\Z[6OUP?:>/1-U5 M"WM]]ZY'SZ\O+SDV/7%R1_N?K;[W.U7E/(]V_ MSKI?^P0&S\_U8"=\_-G%TYIABIT_8%*?NLE77ZZ_P6Q/"3SM4Z?SE0?:41[8 M.']Y@^($?&9V(5U.?-"P8CQ[&M&3Y)7X\#%@W?LS2\^/E"Q*>;BO['H[^A5S=ZD(K^ M>Y?_EJ+_\>C?KK:5_"OY?[7T!_E7^.?E]']NX/8)U+GWN;82KX=]NIL6X2_AX)\CKSVG;]8HLEC,<*MB2(*P3DE+$.3 M%OC=; ;V* ./L_G%L^+@XM@LMJK-%1ZOLE&Q<(-]+!8+CV6,6D_9(G?1$&5- MSYM?_Z9V2+K^D [)SQ_<7!F6S:'FG>SNX?? 9LW-/NN$9%L5+A<>U9 Z_4J MIRY7J>5S!+!9KI3L;I(!6WSPQ?B;;,/7G8V'PO@]F)DCCZ[_>5Y+%/"7N1]].*G'=D_*Z"P4D=_TM(B[/)>LD%Y85DS,'J(63 MQ9EBN$$-]JB>[6';9G](X*KO-(:7*&?G-:5LZ@VMWI1;YE8"E%K C$U#:[7K MRN$H0\(&7(;6*BMSZ#)P&W)#(VJ'SIB9D2&]HUXPG5 _5A[" 2K*#F BFKIF M23R+K(CH\T ,VU5C-$PPXBJIDF\FU6N:WF@4-&G"-?TGZM/0]IBBMX<3UW>C M.&2[:Y73\)JLH740,FG='0:N9+>4GY)I'IF99DJ(_1W(3 M.I, 1O9?&YOJD&!$7#^V_5L7VS3:443CB"AW8>\%504R&PU=,YI-Y4[(*)G* MLV:KM_'4">5N2"J*RC6KZUI;+T0.8\VDRK:G/F<[3HY>QR');)DU4S/K(N]*H5EL=%J:E9]U2,NAK>UA7J_N#J[_M(E M'V^NORR<&:#VM,ASP0IOR P\\]92V_:?XX 54-?I%N>RXWX5C]%-0[/: MD@H-CJ[)+Z[ZW9MNKT_$WA.U]20'Z:+G3/(Q*7UG:$:C*>^<]2)"ZZ.Q:QLU M@@PRUYRN_LIX=*!LT>X\:C56>50B_^4/4/YX[!GAKHQR753V:*F(2:LUY!8= ME #2YI?K.T?C5.;H562.C/K+3R?/B^O"8F^_=3]>WW2%^2+]SE]J_WS^]\]+ MBZQ96M.4VPVF:"HJ#^S0F1Y MG')Y]N/L,N\]M&DI 1#.$0_WTJ^E!"PZWJ::+5F40S>#%U2?S<)0;:@_?MY# M5N%82S-KK]XIR#-H-&I:RY">*B\:DW*^409<4 ]EROG],1!6 M7I85,[1:VWSM3D[NN;VS3FMHEFHE4.Z],9I9YL3)55?5E.W1!;- V(?!#)L^ MY&8IR,KJZZ9F6G+/(2L!<"^J5.Q\"E9#,UNF\N!V\N#*) AU4S-T2<>A'=U6 M=#LW5Q=7GWKD:_>&]#YW;M26FV=4JZT1ZU=41U T195/WJGS7E9*SO+-FF*X M1#SE])L=N8YR=@I1'2;+7:F::G],;LK%=@['P()3OD:.BLIV921HE%5&YM!7 M$"4*KC>+)58HE-(\/.79%LI8&*^^,BT7_'R!G5#[50K.0] J1GD3+W]V+SY] M[G?/2>>/[DWG4Y='F7KD^EN_U^]M-J ML\L^,BUYXK#:"K-CQ[%\,S"WWHKQ6I MOC(FY7R;###):DC*3A]KGXSD(-2K]P)*$:IJ-;1:764VY%1AY5J#-313?E"K M!+S>L= JU[RN:\WZ([LZ/\0V3 /^';IW+QCK?V91[(X>LF18&AS_)JWI-N&* M+7>]['%0F7M3$*2&R]1UL*7)$95?_NB M1>)0/Z9A,GJSEJB'=(6T,X/C/\=A\K+Y0J\X@1>$)\EJS@Q]\8LQMZ'(!<_U M:47\K:^;H?C(HZ/XI%YMI2B\PA;VXDW=VP^1 M(%>K535K:2">?Z8C_3)DG]@_*AGB"FV4'4;R478ON?!X_5^#)@C#V/W?)>;=WUKGI=WND]W>OW_W2(Y]NKK]]Y8K_XNJL MNH/$;W[KV?75.79^.B?P6^_Z\N*\@_'U7A_^P=ZY/7+]D9QU>I_)Q\OK/WL[ MO#]A0[K-9:UFV'Z3)A-Z5!!"\M]]ZY'SZ\O+SDV/7%R1_N?K;[W.U7GOE, 7 MGSJ=K^_9H)')[)6_O$$9 >8QDY"N$?Y^6 :>/8WH2?)+=C;H48B5@,+AP#>P M+!=%+SMC+GBK6B!.5Z9XFL&UT9;NE%&M;?0;,^*<>7X SQQYP7VBW)*_F?D\ MX4OQ'HCPY!(1+&(O3BZU!\ M\+->I.ZVM5_/4M3BYPM!7UT1_) $-XRJN3&( MJBBN1+S8!#?TJM%4%#^HB#<,1? #$KQ=K6T,R2N"KR?X<\/K3^'!K6?76IF< MNS@S_/W$C6$0#GS[-[A*I.L/Z9#\_,&5$UW;;(4DN<\;.==:YS(=I'&)0#W[ MWLO8VB[\MEWJX=^V/[/#!^Z@6H8F+:3^J@6!8X-C"X)5;2Y*PBJS)3!ZLU$^ M%*,/PE=N$ O$UJ-9HJWM[,%X]\HUTH)IVFF,D0O,$1YXZ;Q4OMSD.S\4ZI'G)A^]8ETSOH7?UST+R2>W50_Y"Q79/5H MUB=_!RWG@SZO3R"$.5("LY)LD2 M'+ J]7DEJ9+:^QW6K^D,L2AK GYK1.* A-0)?,?U*/%3LX"?.W8T)M,PN',Q M S1X(,&4AG8,8R"V$[MW;NS2Z*1X\/9P.RT>=6L.A%0.OH?ZD'R4IF(>=S8. MPR;I&Z$/Z1M(5O0Y8T)>('M:"YZ<#04VR'%M+'DH/-A[G7"]KIEFO11@_75" M\[IFF.VB(/-7@,.U9KU9)!B^I-$[DP#&]5^FT4DP A0>V_ZMB_L7["BB<50X M>/9*8+849=+0-:/9+"0*/[B!*#";ZVU-;\LU&@KF[]^TU+6V7L]M-'_)D/3B MP/E>&=@1'1(GF$RI'W&C0G_@[Y0HO%E(?\&PM$9#KHDH.@.+Y3 8AJ8;\ABH M/(87JO6&9ADO/W?U>![#=3RF(?$#O\+B].MB\PI,EMAGJ,LM?"TABPOO+UBZ MO';KREDXB%4Q=5E1J ,D$48T#,%-B.T?B7>@L&4AG0-+,VLUY1L4US?0ZH8\ M_BG7X(5*W*AI=;-0O@'<>S:V_5L:$=?/^@(L=T!L?T@\UV:%JJIFYV5;$?:Y MF^8@RJ:I-=O*=WCA_H/"2X%A:LV6RD5LW&5P3"9O:ZO>65J]67^?6Z<#+=,V M=:0*N3YK(_:Q]\'(T4%M4[/:J@KJ^?NPR\'^9D,S++DAKD(8G+PS=S>GR3(T MTRK:5HB-*_OBZH]NKQ1;O//C/AUUYZ;:#U'XS==JLT3>]T<7:B=%!QZ*Y5%L M(QSX*."9Q \L7D;_F;E3W".GH.FAEM6_.@H6R<.%H:2CXEXI?#]V2'0''6,8=:W>D&P82LCZ/*<\=F1]6]?,9DNN?2F=KW!L MOFYEI6HMK:9;^4]SS'#?A>O#_]_12*4XBISBV-7?J3*4N5.JB"$Q6J0OECN270WGQ M,9;B7E_# @WC,@H#"8$J!<&]_"6B 0^B<>4."$=NC$9V0[K3ZNP:"&W=F S M8<.4J]:+SL%B;>Z0S<&BN ?YK532-:/=*!+:7]+\9XN:G:6K [8=?$@',0GI MU'Y@W5T+!P3S@/9?JUXI*9^/W-QUIQ"BIC=4UN*H[6"W"QR!)6FVT)FZW M4>@_K^A?"I=-K5&7=ZB3<@4.U%O0:-<*Z!4X< N\ /^"7R-WR/9IJS,F#G]* M]IYP:%TSC;IR'9Y?FE04<_%:DPUYX-].IB)E6'&\DU-1Z_I.%+N^7VCN,7)] M<$!4(]J][[C(0;W$;EN^&JR06_DM>]F,<6RID-8/43D]N^W:.+H ['A^4UW: M^4U[86QW-*(.1L-BZ[-2KWA MPP*?2FWW>#W;/4RM*;/-0%D\K&-S[ VC4*EJGW\T]JWPGI'9$<1,B&B(% MM NZZ4/.P8*FUJ[)Z[!74AG([:81.?V>VV"PE#>5STTGNUFM5ELSZZT\NTL; M5^\9JU@84+C,H,?$FRAO6W+Z*J0_V8 MALGHS5JFG)!/Q= SH^,_QV'RMKG<5)S "\*3A/^9L2]^,>8+TX1G>ZY/*^+O M1&(J'AW%)_5J*]UP4&%\7_P(9<[BLG5+*X.0VM\K]@CF<6+?!>Y0T*;5JIJU M%,SQSW0DUH=!,'R ?\;QQ/OU_P-02P$"% ,4 " "]BF%6EX"TR,#(S,#$S,2YX"TR M,#(S,#$S,5]C86PN>&UL4$L! A0#% @ O8IA5N"YK2B32 )"P% !4 M ( !?C( &1S9W@M,C R,S Q,S%?9&5F+GAM;%!+ 0(4 Q0 M ( +V*85:BE@ZF+J\ #:$"P 5 " 41[ !D"TR,#(S,#$S,5]P&UL4$L! A0#% M @ O8IA5@)]G"*000 Q%T# !0 ( !"ZD! &1S9W@M,C R M,S Q,S%X-FLN:'1M4$L! A0#% @ O8IA5@"TB& WH0, E_TI !@ M ( !S>H! &1S9W@M,C R,S Q,S%X97@Y.60Q+FAT;5!+ 0(4 Q0 M ( +V*85:,O)Q--R@ LN ; " 3J,!0!D&5X.3ED,3 P,2YJ<&=02P$"% ,4 " "]BF%6P=:,WNV' "C MC0 &P @ &JM 4 9'-G>"TR,#(S,#$S,7AE>#DY9#$P,#(N M:G!G4$L! A0#% @ O8IA5E/[31!\%0 ?A8 !L ( ! MT#P& &1S9W@M,C R,S Q,S%X97@Y.60Q,#(Y+FIP9U!+ 0(4 Q0 ( +V* M8587P&[9MPX (X/ ; " 852!@!D&5X.3ED,3 S,"YJ<&=02P$"% ,4 " "]BF%6-.^X;R$A #S) &P M @ %U808 9'-G>"TR,#(S,#$S,7AE>#DY9#$P,S,N:G!G4$L! M A0#% @ O8IA5N$ZO51J2 >M($ !@ ( !SX(& &1S L9W@M,C R,S Q,S%X97@Y.60R+FAT;5!+!08 #0 - (8# !ORP8 ! end