0001558370-22-002561.txt : 20220301 0001558370-22-002561.hdr.sgml : 20220301 20220301161956 ACCESSION NUMBER: 0001558370-22-002561 CONFORMED SUBMISSION TYPE: 10-K PUBLIC DOCUMENT COUNT: 96 CONFORMED PERIOD OF REPORT: 20211231 FILED AS OF DATE: 20220301 DATE AS OF CHANGE: 20220301 FILER: COMPANY DATA: COMPANY CONFORMED NAME: PDF SOLUTIONS INC CENTRAL INDEX KEY: 0001120914 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] IRS NUMBER: 251701361 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-31311 FILM NUMBER: 22698334 BUSINESS ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 BUSINESS PHONE: 4082807900 MAIL ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 10-K 1 pdfs-20211231x10k.htm 10-K
37138000344580000001120914false--12-31FY202100PDF SOLUTIONS INC0.581.17P1YP5YP4YP2YP3YP6MP4YP4YP4YP1Y8M7D0.581.17100.210.120.060.190.020.110.080.910001120914us-gaap:AllowanceForCreditLossMember2021-01-012021-12-310001120914us-gaap:AllowanceForCreditLossMember2020-01-012020-12-310001120914us-gaap:AllowanceForCreditLossMember2021-12-310001120914us-gaap:AllowanceForCreditLossMember2020-12-310001120914us-gaap:AllowanceForCreditLossMember2019-12-310001120914pdfs:The2020StockRepurchaseProgramMember2021-01-012021-12-310001120914pdfs:The2018StockRepurchaseProgramMember2020-05-282020-05-280001120914us-gaap:StateAndLocalJurisdictionMember2021-12-310001120914us-gaap:DomesticCountryMember2021-12-310001120914pdfs:The2020StockRepurchaseProgramMember2020-06-042020-06-040001120914pdfs:The2020StockRepurchaseProgramMember2020-06-040001120914pdfs:CommonStockOutstandingMember2021-01-012021-12-310001120914us-gaap:RetainedEarningsMember2021-12-310001120914us-gaap:AdditionalPaidInCapitalMember2021-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-12-310001120914us-gaap:RetainedEarningsMember2020-12-310001120914us-gaap:AdditionalPaidInCapitalMember2020-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-12-310001120914us-gaap:RetainedEarningsMember2019-12-310001120914us-gaap:AdditionalPaidInCapitalMember2019-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2019-12-310001120914us-gaap:TreasuryStockMember2021-12-310001120914pdfs:CommonStockOutstandingMember2021-12-310001120914us-gaap:TreasuryStockMember2020-12-310001120914pdfs:CommonStockOutstandingMember2020-12-310001120914us-gaap:TreasuryStockMember2019-12-310001120914pdfs:CommonStockOutstandingMember2019-12-310001120914pdfs:StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember2020-07-300001120914pdfs:OutsideOfThe20112001OrIDSPlansMember2021-12-310001120914pdfs:TwoThousandOneStockIncentivePlanMember2021-01-012021-12-310001120914pdfs:TwentyElevenStockIncentivePlanMember2011-11-160001120914pdfs:SharesPreviouslyIssuedUnderThe2001PlanMember2001-12-310001120914pdfs:The2010PurchasePlanMember2001-07-310001120914pdfs:The2010PurchasePlanMember2021-01-012021-12-310001120914pdfs:The2010PurchasePlanMember2020-01-012020-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2020-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2019-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2020-01-012020-12-310001120914us-gaap:EmployeeStockOptionMemberpdfs:TwentyElevenStockIncentivePlanMember2011-11-162011-11-160001120914us-gaap:EmployeeStockOptionMemberpdfs:IDSPlanMember2001-01-012001-12-310001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMembersrt:MinimumMember2022-01-012021-12-310001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMembersrt:MaximumMember2024-01-012021-12-310001120914pdfs:IntegratedYieldRampMember2021-01-012021-12-310001120914pdfs:AnalyticsMember2021-01-012021-12-310001120914pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember2021-01-012021-12-310001120914pdfs:IntegratedYieldRampMember2020-01-012020-12-310001120914pdfs:AnalyticsMember2020-01-012020-12-310001120914pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember2020-01-012020-12-310001120914srt:MinimumMemberus-gaap:FurnitureAndFixturesMember2021-01-012021-12-310001120914srt:MinimumMemberpdfs:LaboratoryAndTestEquipmentMember2021-01-012021-12-310001120914srt:MaximumMemberus-gaap:FurnitureAndFixturesMember2021-01-012021-12-310001120914srt:MaximumMemberpdfs:LaboratoryAndTestEquipmentMember2021-01-012021-12-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2021-01-012021-12-310001120914us-gaap:ComputerEquipmentMember2021-01-012021-12-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2021-12-310001120914us-gaap:LeaseholdImprovementsMember2021-12-310001120914us-gaap:FurnitureAndFixturesMember2021-12-310001120914us-gaap:ConstructionInProgressMember2021-12-310001120914us-gaap:ComputerEquipmentMember2021-12-310001120914pdfs:TestEquipmentMember2021-12-310001120914pdfs:LaboratoryAndTestEquipmentMember2021-12-310001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2020-12-310001120914us-gaap:LeaseholdImprovementsMember2020-12-310001120914us-gaap:FurnitureAndFixturesMember2020-12-310001120914us-gaap:ConstructionInProgressMember2020-12-310001120914us-gaap:ComputerEquipmentMember2020-12-310001120914pdfs:TestEquipmentMember2020-12-310001120914pdfs:LaboratoryAndTestEquipmentMember2020-12-310001120914pdfs:StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember2020-07-292020-07-290001120914pdfs:StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember2020-07-302020-07-300001120914us-gaap:DomesticCountryMemberus-gaap:InternalRevenueServiceIRSMember2021-12-310001120914us-gaap:DomesticCountryMemberus-gaap:CaliforniaFranchiseTaxBoardMember2021-12-310001120914pdfs:RestOfTheWorldMember2021-12-310001120914country:US2021-12-310001120914pdfs:RestOfTheWorldMember2020-12-310001120914country:US2020-12-310001120914us-gaap:InProcessResearchAndDevelopmentMember2020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:TrademarksAndTradeNamesMember2020-01-012020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:NoncompeteAgreementsMember2020-01-012020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:DevelopedTechnologyRightsMember2020-01-012020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:CustomerRelationshipsMember2020-01-012020-12-310001120914us-gaap:TrademarksAndTradeNamesMember2021-12-310001120914us-gaap:PatentsMember2021-12-310001120914us-gaap:NoncompeteAgreementsMember2021-12-310001120914us-gaap:DevelopedTechnologyRightsMember2021-12-310001120914us-gaap:CustomerRelationshipsMember2021-12-310001120914us-gaap:TrademarksAndTradeNamesMember2020-12-310001120914us-gaap:PatentsMember2020-12-310001120914us-gaap:NoncompeteAgreementsMember2020-12-310001120914us-gaap:DevelopedTechnologyRightsMember2020-12-310001120914us-gaap:CustomerRelationshipsMember2020-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-12-310001120914us-gaap:EmployeeStockOptionMember2021-01-012021-12-310001120914pdfs:TwentyTwentyOneEmployeeStockPurchasePlanMember2021-01-012021-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2021-12-310001120914us-gaap:EmployeeStockOptionMember2021-12-310001120914us-gaap:SoftwareDevelopmentMember2021-01-012021-12-310001120914us-gaap:SoftwareDevelopmentMember2020-01-012020-12-310001120914us-gaap:ForwardContractsMember2021-12-310001120914us-gaap:ForwardContractsMember2020-12-310001120914us-gaap:ForeignExchangeContractMemberus-gaap:OtherNonoperatingIncomeExpenseMember2020-01-012020-12-310001120914us-gaap:ForeignExchangeContractMemberus-gaap:OtherNonoperatingIncomeExpenseMember2021-01-012021-12-310001120914pdfs:CaliforniaRDTaxCreditsMember2021-12-310001120914pdfs:CaliforniaRDTaxCreditsMember2020-12-310001120914pdfs:CommercialAgreementWithAdvantestMember2021-01-012021-12-310001120914pdfs:CommercialAgreementWithAdvantestMember2020-01-012020-12-3100011209142021-10-012021-12-3100011209142021-07-012021-09-3000011209142021-04-012021-06-3000011209142021-01-012021-03-3100011209142020-10-012020-12-3100011209142020-07-012020-09-3000011209142020-04-012020-06-3000011209142020-01-012020-03-310001120914pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember2021-12-310001120914pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember2020-12-310001120914pdfs:DFITestEquipmentMember2021-12-310001120914pdfs:DFITestEquipmentMember2020-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914pdfs:TwoCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:TwoCustomersMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914pdfs:CustomerEMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:CustomerDMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:CustomerDMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914pdfs:CustomerBMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914country:TWus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914pdfs:TwoCustomersMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914pdfs:OneCustomerMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914pdfs:CustomerCMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914country:TWus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914country:JPus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2020-01-012020-12-310001120914us-gaap:RetainedEarningsMember2021-01-012021-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-01-012021-12-310001120914us-gaap:RetainedEarningsMember2020-01-012020-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-01-012020-12-310001120914pdfs:TwentyElevenStockIncentivePlanMember2021-12-3100011209142019-12-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2021-12-310001120914us-gaap:MoneyMarketFundsMember2021-12-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2020-12-310001120914us-gaap:MoneyMarketFundsMember2020-12-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2021-12-310001120914us-gaap:OtherNoncurrentAssetsMember2021-12-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2020-12-310001120914us-gaap:OtherNoncurrentAssetsMember2020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:TrademarksAndTradeNamesMember2020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:NoncompeteAgreementsMember2020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:CustomerRelationshipsMember2020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:InProcessResearchAndDevelopmentMember2020-12-310001120914pdfs:CimetrixIncorporatedMemberus-gaap:DevelopedTechnologyRightsMember2020-12-310001120914pdfs:CimetrixIncorporatedMember2020-12-012020-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2021-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2021-12-310001120914us-gaap:USTreasurySecuritiesMemberus-gaap:FairValueInputsLevel1Member2020-12-310001120914us-gaap:USTreasurySecuritiesMember2020-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2021-01-012021-12-310001120914us-gaap:EmployeeStockOptionMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMember2021-01-012021-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2020-01-012020-12-310001120914us-gaap:EmployeeStockOptionMember2020-01-012020-12-310001120914pdfs:EmployeeStockPurchasePlanMember2020-01-012020-12-310001120914pdfs:AmortizationOfOtherAcquiredIntangibleAssetsMember2021-01-012021-12-310001120914pdfs:AmortizationOfOtherAcquiredIntangibleAssetsMember2020-01-012020-12-310001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2021-01-012021-12-310001120914us-gaap:ResearchAndDevelopmentExpenseMember2021-01-012021-12-310001120914us-gaap:CostOfSalesMember2021-01-012021-12-310001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2020-01-012020-12-310001120914us-gaap:ResearchAndDevelopmentExpenseMember2020-01-012020-12-310001120914us-gaap:CostOfSalesMember2020-01-012020-12-310001120914us-gaap:AdditionalPaidInCapitalMember2021-01-012021-12-310001120914us-gaap:TreasuryStockMember2021-01-012021-12-310001120914us-gaap:TreasuryStockMember2020-01-012020-12-310001120914srt:MinimumMemberus-gaap:TrademarksAndTradeNamesMember2021-01-012021-12-310001120914srt:MinimumMemberus-gaap:PatentsMember2021-01-012021-12-310001120914srt:MinimumMemberus-gaap:DevelopedTechnologyRightsMember2021-01-012021-12-310001120914srt:MinimumMemberus-gaap:CustomerRelationshipsMember2021-01-012021-12-310001120914srt:MaximumMemberus-gaap:TrademarksAndTradeNamesMember2021-01-012021-12-310001120914srt:MaximumMemberus-gaap:PatentsMember2021-01-012021-12-310001120914srt:MaximumMemberus-gaap:DevelopedTechnologyRightsMember2021-01-012021-12-310001120914srt:MaximumMemberus-gaap:CustomerRelationshipsMember2021-01-012021-12-310001120914us-gaap:NoncompeteAgreementsMember2021-01-012021-12-310001120914us-gaap:AdditionalPaidInCapitalMember2020-01-012020-12-310001120914pdfs:CommonStockOutstandingMember2020-01-012020-12-310001120914pdfs:TwentyElevenStockIncentivePlanMember2011-11-162011-11-160001120914pdfs:TwentyTwentyOneEmployeeStockPurchasePlanMember2021-06-152021-06-150001120914pdfs:The2010PurchasePlanMember2001-07-012001-07-310001120914us-gaap:TransferredOverTimeMember2021-01-012021-12-310001120914us-gaap:TransferredAtPointInTimeMember2021-01-012021-12-310001120914us-gaap:TransferredOverTimeMember2020-01-012020-12-310001120914us-gaap:TransferredAtPointInTimeMember2020-01-012020-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2021-01-012021-12-310001120914us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2020-01-012020-12-310001120914pdfs:TwentyTwentyOneEmployeeStockPurchasePlanMember2021-12-310001120914pdfs:The2010PurchasePlanMember2021-12-310001120914pdfs:CimetrixIncorporatedMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMember2021-01-012021-12-310001120914pdfs:EmployeeStockPurchasePlanMember2020-01-012020-12-310001120914pdfs:TwentyElevenStockIncentivePlanMember2020-01-012020-12-310001120914us-gaap:FairValueInputsLevel1Member2021-12-3100011209142021-12-310001120914us-gaap:FairValueInputsLevel1Member2020-12-3100011209142020-12-310001120914srt:MinimumMember2021-01-012021-12-310001120914srt:MaximumMember2021-01-012021-12-310001120914pdfs:CimetrixIncorporatedMember2021-10-012021-12-310001120914pdfs:CimetrixIncorporatedMember2020-12-310001120914pdfs:CimetrixIncorporatedMember2020-12-012020-12-010001120914pdfs:AccruedCompensationAndRelatedBenefitsMemberpdfs:CimetrixIncorporatedMember2021-12-310001120914pdfs:AccruedCompensationAndRelatedBenefitsMemberpdfs:CimetrixIncorporatedMember2020-12-3100011209142020-01-012020-12-3100011209142021-06-3000011209142022-02-2500011209142021-01-012021-12-31xbrli:sharesiso4217:USDiso4217:USDxbrli:sharesxbrli:purepdfs:item

UNITED STATES SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

Form 10-K

(Mark One)

ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

For the fiscal year ended December 31, 2021

or

TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

For the transition period from               to               

000-31311

(Commission file number)

PDF SOLUTIONS, INC.

(Exact name of registrant as specified in its charter)

Delaware

25-1701361

(State or other jurisdiction of

(I.R.S. Employer

Incorporation or organization)

Identification No.)

  

  

2858 De La Cruz Blvd.

95050

Santa Clara, California

(Zip Code)

(Address of Registrant’s principal executive offices)

  

(408280-7900

(Registrant’s telephone number, including area code)

Securities registered pursuant to Section 12(b) of the Act:

Title of each class

    

Trading Symbol(s)

    

Name of each exchange on which registered

Common Stock, $0.00015 par value

PDFS

The Nasdaq Stock Market LLC

Securities registered pursuant to Section 12(g) of the Act:

None

Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.

Yes      No

Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.

Yes      No

Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the Registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.

Yes      No 

Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§ 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).

Yes      No

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer,” “accelerated filer,” “smaller reporting company,” and “emerging growth company” in Rule 12b-2 of the Exchange Act.

 Large accelerated filer

 Accelerated filer

 Non-accelerated  filer

 Smaller reporting company

 

 Emerging growth company

If an emerging growth company, indicated by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. ☐

Indicate by check mark whether the registrant has filed a report on and attestation to its management’s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.       

Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act).  Yes      No

The aggregate market value of the voting stock held by non-affiliates of the Registrant was approximately $515 million as of the last business day of the Registrant’s most recently completed second fiscal quarter, based upon the closing sale price on the Nasdaq Global Market reported for such date. Shares of Common Stock held by each officer and director and by each person who owns 10% or more of the outstanding Common Stock have been excluded in that such persons may be deemed to be affiliates. This determination of affiliate status is not necessarily a conclusive determination for other purposes.

There were 37,707,111 shares of the Registrant’s Common Stock outstanding as of February 25, 2022.

DOCUMENTS INCORPORATED BY REFERENCE

Part III incorporates certain information by reference from the definitive Proxy Statement to be filed within 120 days from December 31, 2021.

TABLE OF CONTENTS

 

 

Page

PART I

Item 1.

Business

4

Item 1A.

Risk Factors

17

Item 1B.

Unresolved Staff Comments

30

Item 2.

Properties

30

Item 3.

Legal Proceedings

30

Item 4.

Mine Safety Disclosures

30

 

 

PART II

Item 5.

Market For Registrant’s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities

31

Item 6.

Selected Financial Data

32

Item 7.

Management’s Discussion and Analysis of Financial Condition and Results of Operations

33

Item 7A.

Quantitative and Qualitative Disclosures About Market Risk

46

Item 8.

Financial Statements and Supplementary Data

47

Item 9.

Changes in and Disagreements with Accountants on Accounting and Financial Disclosure

83

Item 9A.

Controls and Procedures

83

Item 9B.

Other Information

83

Item 9C.

Disclosure Regarding Foreign Jurisdictions that Prevent Inspections

83

 

 

PART III

Item 10.

Directors, Executive Officers and Corporate Governance

84

Item 11.

Executive Compensation

84

Item 12.

Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters

84

Item 13.

Certain Relationships and Related Transactions, and Director Independence

84

Item 14.

Principal Accountant Fees and Services

84

 

 

PART IV

Item 15.

Exhibits and Financial Statement Schedules

85

Item 16.

Form 10-K Summary

87

Signatures

88

2

SPECIAL NOTE REGARDING FORWARD LOOKING STATEMENTS

This Annual Report on Form 10-K, particularly in Item 1 “Business” and Item 7 “Management’s Discussion and Analysis of Financial Condition and Results of Operations,” includes forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended (the “Securities Act”) and Section 21E of the Securities Exchange Act of 1934, as amended (the “Exchange Act”). These statements include, but are not limited to, statements concerning: expectations about the effectiveness of our business and technology strategies; expectations regarding global economic trends; the impact of inflation, expectations regarding recent and future acquisitions; current semiconductor industry trends; expectations of the success and market acceptance of our intellectual property and our solutions; the continuing impact of the coronavirus (COVID-19) on the semiconductor industry and our business and our ability to obtain additional financing if needed. Our actual results could differ materially from those projected in the forward-looking statements as a result of a number of factors, risks and uncertainties discussed in this Form 10-K, especially those contained in Item 1A of this Form 10-K. The words “may,” “anticipate,” “plan,” “continue,” “could,” “projected,” “expect,” “believe,” “intend,” and “assume,” the negative of these terms and similar expressions are used to identify forward-looking statements. All forward-looking statements and information included herein is given as of the filing date of this Form 10-K with the Securities and Exchange Commission (“SEC”) and based on information available to us at the time of this report and future events or circumstances could differ significantly from these forward-looking statements. Unless required by law, we undertake no obligation to update publicly any such forward-looking statements.

The following information should be read in conjunction with the Consolidated Financial Statements and notes thereto included in this Annual Report on Form 10-K. All references to fiscal year apply to our fiscal year that ends on December 31. All references to “we”, “us”, “our”, “PDF”, “PDF Solutions” or “the Company” refer to PDF Solutions, Inc.

3

PART I

Item 1. Business

Business Overview

We provide comprehensive data solutions designed to empower organizations across the semiconductor ecosystem to improve the yield and quality of their products and operational efficiency for increased profitability. Our offerings include proprietary software, professional services based on proven methodologies and using third-party cloud-hosting platforms for software-as-a-service (“SaaS”), electrical measurement hardware tools, and physical intellectual property (“IP”) for integrated circuit (“IC”) designs. We derive revenues from two sources, Analytics and Integrated Yield Ramp, by monetizing our offerings through contract fees for on-premise licenses, SaaS, and other  professional services and a value-based, variable fee or royalty, which we call Gainshare, on our historical integrated yield ramp (“IYR”) engagements. Our products and services have been sold to integrated device manufacturers (“IDMs”), fabless semiconductor companies, foundries, equipment manufacturers, electronics manufacturing suppliers (“EMS”), original device manufacturers (“ODMs”), out-sourced semiconductor assembly and test (“OSATs”), and system houses. We are headquartered in Santa Clara, California and also operate worldwide with offices in Canada, China, France, Germany, Italy, Japan, Korea, and Taiwan.

Our products and services are used by many Fortune 500 companies across the semiconductor ecosystem to achieve smart manufacturing goals by connecting and controlling equipment, collecting data generated during manufacturing and test operations, and performing advanced analytics and machine learning to enable profitable, high-volume manufacturing. For example, our foundry customers generate and analyze key manufacturing data using our solutions to shorten the time necessary for technology development and to provide their fabless customers with a higher yielding process with improved electrical performance, which are both critical metrics for market success. Higher yields in less time can also mean less total raw materials and process runs, which help lower customers’ total cost and minimize environmental impact. Also, for example, equipment manufacturers and factories use our connectivity products to implement evolving industry standards for their equipment or operations, respectively, with required quality and stability. By way of further example, our IDM and fabless customers use our solutions to generate unique, differentiated data that can be analyzed with our machine learning (or ML) and artificial intelligence (or AI) algorithms to predict downstream manufacturing issues, resulting in shorter time for designs to meet performance requirements with fewer iterations and faster time-to-market. For final example, our foundry and OSAT customers use the AI and ML applications of our software to optimize for process control, assembly, and/or test.

Our long-term business strategy is to be the data solutions provider of choice for the semiconductor and electronics ecosystems. To achieve this, we intend to:

Offer a Common, Flexible Platform for a Broad Group of Customers Across the Supply Chain. As semiconductor and electronics products are made with the efforts of equipment manufacturers, front end foundries, chip and system designers, design automation, IP providers, and OSATs, there is a need to analyze the data across this whole chain to optimize yields, operational efficiencies, time to market, quality, and reliability. The Exensio platform is designed to provide a common platform - whether deployed in the cloud (SaaS) or on premise - to enable these different participants to analyze the relevant end-to-end data in near real-time, with data stores from 10s to 100s of terabytes (TBs) and flexible configurations for IDM, foundry, fabless, and OSAT specific needs. Our ML solutions combine professional services with the Exensio platform to further enable our customers to push their analytics “to the edge” of their global supply chains and shift the analysis and decision-making processes closer to where their data is being generated. We believe enabling edge analytics will further increase our customers’ ability to improve product yield, quality, performance, and profitability, and therefore, should drive the market for our products and services.
Drive Tool-Level Software Installations to Create an Infrastructure of Connected Equipment and Enable Smart Factories. We believe that driving installation of our software products at the tool level will provide an infrastructure of connected equipment and help to enable smart factories. In July 2020, we entered into a strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc., (which

4

we collectively refer to as Advantest) that includes the development of cloud-based applications for Advantest tools that leverage our Exensio software analytics. We believe this will allow us to increase the network of tools connected with PDF software and provide Advantest tool customers with increased data management and analytics. In December 2020, we acquired Cimetrix Incorporated (or Cimetrix) and began providing software products based on open standards for equipment control and connectivity to equipment manufacturers and factories. We believe that in the smart manufacturing era, the industry will demand the increased equipment connectivity and control our products and solutions offer. Further, we believe that the benefits from integration between analytics on equipment, the factory, and in the cloud will provide synergies with our existing end-to-end analytics offerings.
Create Differentiated Data Sources for Better Analytics. Historically, companies have only used data that was generated from their manufacturing and test process to drive improvements. We offer unique IP (such as Characterization Vehicle® (CV®) test chips) that is not part of an IC’s functionality, but significantly improves the manufacturing process by improving yield learning and reducing time to market. Also, our Design-for-Inspection™ (DFI™) system provides on-chip instrumentation and measurement applications from 28 nanometer (nm) down to 7nm and smaller - designed to identify blockers that impact product yield and quality months earlier than any other hardware- or software-based methodology. We believe that in the More-than-Moore (MtM) era, the differentiated data we provide can play an important role in enabling our customers to bring new products to market faster and with higher quality and performance, and, ultimately, more profitability.

Brief History

PDF Solutions was incorporated in Pennsylvania in November 1992, and we reincorporated in California in November 1995. In July 2000, we reincorporated in Delaware, and in July 2001, we completed an initial public offering. Our shares of common stock are currently traded on the Nasdaq Global Market as PDFS. We do not have any multi-class voting stock or any non-voting stock.

From 2000 through 2009, we expanded our technology footprint and our operations in various countries through acquisitions. From 2009 to 2019, we primarily focused on the pervasive application of our technology to leading edge logic manufacturing and achieving yield targets with our clients that maximized Gainshare royalties. In 2013, we leveraged our extensive experience in yield simulation software and CV® test chip development and started research and development on an e-beam solution for non-contact, inline electrical characterization and process control for wafer inspection. The first-generation e-beam tool for DFI™ was completed in 2015, and the second generation was commercially deployed in 2019. In a parallel effort, starting in 2014, we re-architected our point-solution software tools into a new generation, highly-integrated data analytics Exensio platform, which resulted in accelerated growth in software through 2019. In December 2020, we completed the acquisition of Cimetrix and began providing software products based on open standards for equipment control and connectivity to equipment manufacturers and factories.

Industry Background

Rapid technological innovation with increasingly shorter product life cycles has fueled the economic growth of the semiconductor industry since the days of the PC revolution. IC companies have historically ramped production slowly, produced at high volume once a product gained market acceptance, and slowly reduced production volume when price and demand started to decrease near the end of the product’s life cycle. Today there are many different business models across the semiconductor industry: products that follow the traditional life cycle just described, products targeted towards fast-moving market segments like Internet of Things (or IoT) – which utilize mature process nodes and requires a fast ramp to volume with a relatively short life cycle –, and products focused on long term market segments like automotive and industrial where product life cycles can last a decade or longer. There is a lot of variation across these business models depending on the level of design complexity and the maturity of the process node used for product implementation. Processors, memory and field-programmable gate arrays (FPGA) continue to leverage the most advanced process nodes and experience significant challenges to achieve competitive initial yields and optimized performance. Some products and market segments, however, are content to utilize older process nodes. Regardless of the process node used for implementation or how long the product will be sold in the market, success for every semiconductor company is predicated, among other things, on fast product yield ramp and the ability to optimize manufacturing and test metrics, such as yield

5

reclamation, product quality, and test efficiency, throughout a product’s life cycle. Thus, technologies or capabilities that can accelerate yield ramp, improve product quality, and optimize production efficiencies are highly sought after because they typically lead to cost reduction and revenue generation concurrently, causing a leveraged effect on profitability.

Technology and Intellectual Property Protection

Our success is largely dependent upon our proprietary software. We believe the creative skills and technological ability of our personnel, product enhancements, and new product development are necessary to maintaining our position as a leading provider. We rely primarily on trade secret rights, copyright and trademark laws, and nondisclosure and other contractual agreements to protect our technology. We seek to protect our IP under patent laws and as of December 31, 2021, we held 185 U.S. patents. Our issued patents have expiration dates from 2022 through 2039. We intend to prepare additional patent applications when we feel it is beneficial. We also employ protection of our trademarks, with registration of marks, including Characterization Vehicle, Cimetrix, CV, eProbe, Exensio, pdFasTest, PDF Solutions, and the PDF Solutions and Cimetrix logos. We have common law rights to additional trademarks, including ALPS, DFI, DirectProbe, DirectScan, FIRE, and VarScan. We also enter into confidentiality and inventions assignment agreements with our employees and confidentiality and license agreements with our customers and the various parties we partner with to resell, distribute, and, in some cases, integrate our products. Further, we limit access to and distribution of our software, documentation and other proprietary information. Third parties could in any case develop competing technologies that include similar functionality or features, or otherwise are substantially equivalent or superior to our technologies. In addition, effective patent, copyright, trademark and trade secret protection may be unavailable or limited in certain foreign countries where we operate. Our business could suffer significantly if we fail to protect our proprietary technology.

In addition, through yield, performance, and reliability improvement services over more than 20 years, we have accumulated a vast library of physical IP in the form of test structures. As part of our DFI and CV systems, our engineers create designs of experiments (or DOEs) and layouts for targeted fail modes. We have also developed electrical measurement hardware tools and proprietary extraction, design, and analysis software. In addition, our technology embodies many production-proven and patented algorithms. Further, our IP includes proven methodologies that our implementation teams use as guidelines to drive our customers’ use of our technology. We strive to continually enhance our core technologies through the codification of knowledge that we gain in the use of our products and delivery of services.

Products and Services

Products

Our primary software products and software and hardware systems include the following:

Exensio Platform. Our separately-offered Exensio software products address the big data manufacturing challenge of today’s advanced process nodes and highly integrated products, by providing a common environment throughout the supply chain for different data types, including inline and end-of-line metrology, yield, parametric, performance, manufacturing consumables, tool-level sensor data, test floor data, logistical data, as well as custom data types. Exensio products are designed to enable real-time rapid diagnosis and understanding of key manufacturing and test metrics during both inline and end-of-line wafer processing, helping customers reduce product variability and cost simultaneously. By integrating silos of data and applying AI and ML, Exensio products resolve the limitation of local optimization and provide better foresight across the entire production process, reducing the time it takes to make critical decisions that can drive higher product yield, quality and reliability. Exensio products are available as either an on-premise license or SaaS and are offered in four main, separately-offered Exensio products targeting the needs of the customer’s business model: Exensio IDM, Exensio Fabless, Exensio Foundry, and Exensio OSAT. Each of these products are comprised of two or more modules to provide specific capabilities to address a particular type of company’s needs and requirements; however, there are common features, functionality, and purpose across some of the key modules as follows:

Manufacturing Analytics (formerly Exensio Yield) – This module uses our proprietary database schema to store collected data in a common environment with a consistent view. For example, product engineers use it to identify and analyze production yield, performance, reliability and other issues. Elements of this module are designed to

6

handle very large and complex data sets that are commonplace in the semiconductor industry. To support the multi-dimensional product requirements of our customers, the powerful, interactive visualization and analysis capabilities in this product are highly flexible and user-configurable.
Process Control (formerly Exensio Control) – This module provides failure detection and classification (or FDC) capabilities for monitoring, alarming, and control of manufacturing tool sets. These capabilities include proprietary data collection and analysis of tool sensor trace data and summary indicators designed to rapidly identify sources of process variations and manufacturing excursions. When used together with Manufacturing Analytics and related modules, the accretive data mining and correlation capabilities are designed to enable identification of tool level sources of yield loss and process variation and enable predictive and proactive optimization decisions for process control, process adjustments, PM scheduling, tool corrective actions, wafer dispatching, and wafer level and final test to impact end of line product yield, performance, and reliability.
Test Operations (formerly Exensio Test) – This module provides comprehensive data collection and analysis capabilities for data generated during manufacturing test operations designed to optimize test operations management overall, including improving test productivity, performing part average test, supporting test floor operations, and implementing adaptive test. Test Operations is also designed to provide predictive insights based on proprietary analytics during test, assembly and packaging to maximize the efficiency of test operations, productivity improvements and yield reclamation.
Assembly Operations (formerly Exensio ALPS) – This module provides the capability to link assembly and packaging data with other product lifecycle data, including fabrication and characterization data, across the product life cycle. Data sources could include manufacturing, wafer acceptance test, wafer sort, test and assembly, final test, and field use. The proprietary data linkage enabled by Assembly Operations is also designed to enable device manufacturers to maintain full traceability of their finished products back to the source wafer without the need for Electronic Chip IDs (or ECIDs). This capability is becoming an essential requirement for safety-critical market segments such as automotive and military-aerospace.

Design-for-Inspection (or DFI) System. Our DFI System is designed to enable customers to achieve non-contact, inline electrical characterization and more effective process control. This system also enables electrical characterization of customers’ product chip layout structures, contactless measurement, and powerful data processing and analysis of relevant product patterns. The electrical measurements augment and enhance existing inline defect inspection and metrology methods. The DFI system leverages our production-proven design and analysis infrastructure. The primary software and hardware elements of the DFI system are as follows:

DFI On-Chip Instruments – Our on-chip measurement instruments are developed using our proprietary FIRE™ layout analysis software and are tuned to capture key features of our customers’ product layouts. As part of the system offering, we generally provide design services to create these instruments. These DFI instruments are designed to be placed in test chips, scribe lines, or in product die, without any area penalty, and to exhibit specific electrical responses
eProbe® Non-Contact E-Beam Tool – Our eProbe e-beam tools are designed to measure the electrical response of the DFI instruments and suitable product layout structures. As part of the system offering, we generally provide tool support services to customers to operate this tool. The second generation tool includes orders of magnitude advances in throughput and accuracy that now enable DFI on-chip instruments to be used for inline control for leading-edge semiconductor process nodes.
Exensio Characterization Software – This software, which is also a part of our Exensio platform, is designed to analyze the billions of measurements collected using the eProbe tool. As part of the system offering, we generally provide analysis services to customers to perform this analysis and provide summary findings and recommendations.

7

Characterization Vehicle (CV) System. Our CV system is a combination of CV test chips, hardware to test such products, software to analyze the test results, and related services. This system is designed to accelerate the efficiency of yield learning by shortening the learning cycle, learning more per cycle, and reducing the number of silicon wafers required in manufacturing processes. This system includes physical IP in the form of test structures and DOEs that are tuned to our customers’ product and/or process specifics, tester hardware, data analysis, and training. The primary software and hardware products included in the CV system are as follows:

CV Test Chips – Our proprietary test chips are designed by our professional engineers using our proprietary FIRE™ layout analysis software. These test chips are run through a customer’s manufacturing process, with intentional process modifications, to provide unique, differentiated data to explore the effects of potential process improvements given natural manufacturing variations. Our custom-designed CV test chips are optimized for our test hardware and analysis software and include DOEs tuned to each customer’s process. Types of CV test chips include:
Our full-reticle and shared-reticle CV test chips are designed to provide a fast learning cycle and are fully integrated with third-party failure analysis and inspection tools for a complete diagnosis to understand root causes. Our full-reticle CV test chips use a shortened process flow to provide a faster learning cycle for specific process modules:
Our Scribe CV test chip are inserted directly on customers’ product wafers to collect data about critical layers.
Our DirectProbe™ CV test chips are designed to enable ultra-fast yield learning for new product designs by allowing our clients to measure components of actual product layout.
Our VarScan™ CV test chips are designed for front-end or through-silicon via (or TSV) application with a focus on high resolution resistance variation analysis for mass production.
pdFasTest® Electrical Tester – Our proprietary test hardware is optimized to quickly test our CV test chips, enabling fast defect and parametric characterization of manufacturing processes. As part of the system offering, we provide test programs for each CV test chip that are tuned to the customer’s process. This automated system provides parallel functional testing, thus minimizing the time required to perform millions of electrical measurements to test our CV test chips. We provide services to analyze the unique, differentiated data output of this tester using the Exensio Characterization software to provide actionable insights to our customers.
Exensio Characterization software – This software, which is also a part of our Exensio platform, collects the data generated from our CV test products, generating models of the performance effects of process variations on these design building blocks. As part of the system offering, we also offer analysis services, if the customer elects not to do such analysis itself.

Cimetrix® Software Products. Our Cimetrix software products enable equipment manufacturers to provide industry standard interfaces on their products for efficient equipment communication, control, and collection of equipment data. There are numerous industry standards that have been established for equipment connectivity and control, including the SEMI defined SECS (SEMI Equipment Communication Standard), GEM (Generic Equipment Model), and PV2 (new photovoltaic equipment communication standard based on SECS/GEM) standards. By providing software products that fully support these industry standards, equipment manufacturers can implement robust, turnkey support for these connectivity and control standards without needing to invest engineering resources to develop their own interfaces to these standards. Factories that purchase manufacturing equipment enabled with Cimetrix-supported interfaces, benefit from consistent and robust implementations of industry standards, enabling faster and more efficient implementation of smart manufacturing initiatives that depend on the collection and analysis of manufacturing and product data. There are two separate Cimetrix product lines targeting the needs of factory equipment connectivity and control. The products are sold via perpetual licenses and runtime royalties.

Equipment Factory Connectivity – Our products for equipment connectivity primarily include the following:

8

CIMConnect™ is designed for general purpose equipment connectivity and enables production equipment in the semiconductor and electronics industries to communicate data to the factory’s host computer through the SECS/GEM and PV2 standards. CIMConnect can also support other emerging communications standards for maximum flexibility. In addition, it supports multiple-host interfaces simultaneously, which allows customers to support legacy, custom, and GEM interfaces. CIMConnect is used in semiconductor wafer fabrication, semiconductor back-end (test, assembly, and packaging), PV, HB-LED, disk drive, flat panel displays, printed circuit boards and other electronics manufacturing.
CIM300™ is a software development kit (or SDK) used by manufacturers of 300mm semiconductor equipment that is designed to enable quick implementation of the required 300mm SEMI standards, including E39, E40, E87, E90, E94, E116, E148, and E157. These SEMI standards allow for the full automation required in manufacturing 300mm wafers. The CIM300 SDK includes CIMConnect, TESTConnect, and SECSConnect.
CIMPortal Plus is an SDK for equipment manufacturers that allows for quick implementation of the Interface A, also known as EDA (Equipment Data Acquisition), and other SEMI standards, including E120, E125, E132, E134, E138, E147, and E164. Interface A specifies a new port on equipment that provides detailed structured data that can be used for advanced process control, e-diagnostics, and other equipment engineering service applications. These software applications are becoming critical to the fabs as shorter ramp times are required.
Equipment Control – Our primary equipment control product is the CIMControlFramework™ software, which is based on the latest Microsoft.NET technology. It is designed to enable equipment manufacturers to meet the supervisory control, material handling, platform and process control, and factory automation requirements of the fabrication facilities or fabs. Developers can leverage framework components through configuration and extension or customize when unique requirements exist. CIMControlFramework, unlike one-off solutions, is supported and maintained with upgrades, improvements, and performance enhancements. With a data-driven architecture at the core of the framework, data generated at any point on the equipment is designed to be quickly and easily accessed by any other module or external application.

Services

Our services are almost always sold together with, or to support, our products and include the following:

Software-as-a-Service (SaaS) – We provide services to make our Exensio software available to our customers via the Internet, generally hosted by third-party providers. SaaS is considered part of cloud computing since the software is hosted on the Internet, or the “cloud.” Since our SaaS applications are accessed from a remote server rather than installed on individual machines, it is easier to maintain. For example, when the remote software is updated, the customer’s interface is also updated for all users. Cloud computing is designed to eliminate incompatibilities between different software versions and allow us to make incremental updates without requiring software downloads. Additionally, our customers can save data to a central online location, which is designed to allow increased project collaboration. As part of these services, we also typically provide hosted management services for the licensed software and the customer’s data stored in our cloud. These services include environment set-up and configuration, system health monitoring, data integration maintenance, integration monitoring, system updates, security, and data upload/download, and license administration.

Software Related Services – We provide software maintenance and support (or M&S), data management services, various value-added services (or VAS) to install, configure, or create analysis templates, and other professional services to achieve customers’ specific outcomes using our software. We call this last type of services our solutions offering and, in these cases, we tailor the use of one or more Exensio products to achieve a desired result. For example, our AIM YieldAware™ FDC solution offering is designed to identify the process control variables that have the greatest impact on product yield through professional services that analyze the data from both Exensio Process Control and elements of Exensio Manufacturing Analytics and make recommendations for the customer to implement. VAS are provided by our professional service personnel with expertise that enhances and complements the engineering teams at our customers. For example, VAS includes our data cleaning and monitoring services. One requirement of big data analytics is to have clean,

9

harmonized data to analyze. This service offering outsources the data wrangling and management effort to free the customer to focus their efforts on analysis, which has a greater ROI to the company than data management.

Characterization Services – These services are designed to characterize key product and/or process elements, primarily into CV test structures or DFI on-chip measurement instruments, and typically do not include performance incentives based on the customers’ yield achievement. We provide these services, typically together with all of the elements of our CV system, to foundry customers in connection with new process technology development and/or yield ramp. In Characterization engagements, we generally provide the analysis of our CV test chips and provide summary findings and recommendations to the customer. Characterization engagements can include DFI systems.

Customers

Our existing customers include foundries, IDMs, fabless semiconductor design companies, OSATs, equipment manufacturers, EMS, and ODMs, including those that embed and distribute our Assembly Operations modules in their equipment. Our semiconductor customers’ targeted product segments vary significantly, including microprocessors, memory, graphics, image sensor solutions, and communications. We believe that the adoption of our solutions by such companies for usage in a wide range of products validates the application of our solutions to the broader semiconductor market. We often have multiple contracts with a single customer or customer group, with no interdependent performance obligations. In general, our customer contracts are non-cancellable.

Two customers accounted for 27% of our revenues for 2021, and one customer accounted for 23% of our revenues for 2020. No other customer accounted for 10% or more of our revenues in 2021 and 2020. See the discussion in “Risk Factors” under Item 1A for more information about risks associated with customer concentration and contractual provisions.

International revenues accounted for approximately 55% and 58% of our total revenues for 2021 and 2020, respectively. We base these calculations on the geographic location of where the work is performed or where the customer is located. Revenues from customers by geographic area based on the location of the customers’ work sites for our last two fiscal years can be found in Note 13, “Customer and Geographic Information” to the consolidated financial statements. Additional discussion regarding the risks associated with international operations can be found under Item 1A, “Risk Factors”.

See our “Notes to Consolidated Financial Statements”, included under Part II, Item 8. “Financial Statements and Supplementary Data” for additional geographic information.

Sales and Marketing

Our sales strategy is primarily to pursue targeted accounts through a combination of our direct sales force, our service teams, and strategic alliances. After we are engaged by a customer and early in the services process, our engineers seek to establish relationships in the organization and gain an understanding of our customers’ business issues. Our direct sales and service teams combine their efforts to deepen our customer relationships by expanding our penetration across customers’ products, processes, and technologies. This close working relationship with each customer has the added benefit of helping us to identify new product areas and technologies in which we should next focus our research and development efforts. From time-to-time, we use sales representatives/agents in various locations to augment direct sales in certain territories. We expect to continue to establish strategic alliances with process licensors, vendors in the electronic design automation software, capital equipment for IC production, and test silicon IP and mask-making software segments to create and take advantage of sales channel and co-marketing opportunities. Additionally, we expect to form relationships with key value chain participants, including foundries and OSATs, to provide services and value across the manufacturing supply chain.

Research and Development

Our research and development focuses on developing and introducing new proprietary technologies, including our Exensio platform, Cimetrix connectivity and control products, and DFI and CV systems, as well as other software products

10

and enhancements to our existing solutions, such as field applications for DFI and CV. We use a rapid-prototyping paradigm in the context of the customer engagement to achieve these goals. We have made, and expect to continue to make, substantial investments in research and development. The complexity of our technologies requires expertise in standards, physical IC design and layout, transistor design and semiconductor physics, semiconductor process integration, numerical algorithms, e-beam technology, hardware, statistics and software development. We believe that our team of engineers will continue to advance our market and technological leadership. We conduct in-house training for our engineers in certain technical areas. Our training also extends to focusing on ways to enhance client service skills. Although it fluctuates, we can have up to one quarter of our research and development engineers operating in the field, partnered with solution services engineers, in a deliberate strategy to provide direct feedback between technology development and customer needs. We also utilize a variety of skilled independent contractors for specialized development.

Competition

The semiconductor industry is highly competitive and driven by rapidly changing design and process technologies, evolving standards, short product life cycles, and decreasing prices. We expect market competition to continue to develop and increase as the market for data and analytics continues to evolve. We believe IC companies benefit from a combination of big data management infrastructure, AI/ML-based analytics engines, and products that generate and collect differentiated data that enrich the analytics process. Currently, we are a leading provider of comprehensive commercial hardware, software and IP solutions for optimizing and improving design, manufacturing and test operations processes through the application of differentiated data and advanced analytics. We face indirect competition from internal groups at IC companies that offer tools with varying degrees of optimization to accelerate process-design integration or test operations. Some providers of semiconductor manufacturing software, inspection equipment, electronic design automation, or design IP may seek to broaden their product offerings and compete with us. In each of the market segments we compete in, we face competition from established and potential competitors, some of whom may have greater financial, research, engineering, manufacturing and marketing resources than we have.

We currently face indirect competition from the internal groups at IC companies and direct competition from providers of (i) yield management and/or prediction systems, such as KLA-Tencor, Siemens AG (or Siemens), Onto Innovation, Inc. (or Onto), and Synopsys, Inc. (“Synopsys”); (ii) semiconductor manufacturing software, such as Applied Materials, Synopsys, Invantest, Inc., NI, Inc., Onto, and Siemens; (iii) inline inspection, metrology and electrical test equipment providers, such as Applied Materials and Keysight Technologies, Inc.; and, (iv) connectivity software or integration products/services supporting factory equipment connectivity or control needs of customers, such as PEER Group, Inc., Kontron AIS, GmbH, Yokogawa Electric Corp., and Kornic Automation Co. Ltd. There may be other providers of competitive commercial solutions of which we are not aware, and we may compete with the products or offerings of these named companies or additional companies if we expand our offerings through acquisition or development. For example, through our acquisition of Cimetrix in late 2020, we now face competition in the connectivity and integration products/services supporting factory equipment connectivity or control. The demand for solutions that address the need for better integration between the silicon design and manufacturing processes may encourage direct competitors to enter into our market. For example, in 2020, two of our competitors were acquired by larger entities, Synopsys, Inc. acquired Qualtera and NI, Inc. acquired Optimal+, which may enable greater investment or marketing of these competitive applications. This competition in our market may intensify in the future, which could lead to increased pricing pressure, negatively impacting our revenues, and slow our ability to grow or execute our strategy. Also, our current and potential customers may choose to develop their own solutions internally, particularly if we are slow in deploying our solutions or improving them to meet market needs. These and other competitors may be able to operate with a lower cost structure than our engineering organization, which would give any such competitor’s products a competitive advantage over our solutions.

We believe that our solutions compare favorably with respect to competition because we have demonstrated results and reputation, strong core technology, ability to create innovative technology, and ability to implement solutions for new technology and product generations. See the discussions in “Risk Factors” under Item 1A for more information about risks associated with our competition.

11

Information Security and Risk Oversight

We are heavily reliant on our technology and infrastructure, as well as the public cloud to an increasing degree, to provide our products and services to our customers. As a result, we have developed an information security program (referred to as our InfoSec Program) to enhance our network security measures, identify and mitigate information security risk, and protect and preserve the confidentiality, integrity, and continued availability of critical information owned by us and that of our customers and suppliers that is in our care. Our InfoSec Program includes development, implementation, and continual improvement of policies and procedures to safeguard information and ensure availability of critical data and systems. The program also includes annual information security awareness training for employees involved in our systems and processes that handle customer data and audits of our systems and enhanced training for specialized personnel and we have instituted regular phishing email simulations for all employees and all contractors with access to corporate email systems to enhance awareness and responsiveness to such possible threats Our InfoSec Program further includes review and assessment by external, independent third-parties, who certify and report on our weaknesses and internal response preparedness with respect to the entire company. Accordingly, we have instituted periodic network access penetration (or PEN) testing no less than once per year both for our corporate network resources and our SaaS cloud-based offerings. In May 2021, we successfully completed our Type II System and Organization Control (SOC 2) audit of our cloud-based offerings under the framework put forth by the American Institute of Certified Public Accountants (AICPA) in which independent, third-party auditors assess and test controls relating to the Trust Services Criteria (TSC) of Security, Availability, and Confidentiality and no qualified findings were found during the audit period.  In February 2022, we started our next Type II SOC 2 audit with external auditors and started the audit process leading to ISO 27001 certification. To date, we have not managed ITAR-designated data, technology, or information. In accordance with our InfoSec Program, we also actively monitor known threats that could affect our products and services and work with our suppliers to provide us with real-time reports of threats or vulnerabilities that may affect our enterprise-wide systems. Our InfoSec Program also includes a data security incident response plan that provides controls and procedures for timely and accurate reporting of any material cybersecurity incident.

As described in the Audit Committee Charter, the Audit Committee is tasked with oversight of certain risk issues, including cybersecurity. This Committee is comprised entirely of independent directors, two of whom have significant work experience related to information security issues or oversight. Management reports security instances to the Committee as they occur, if material, and provides a summary multiple times per year to the Committee as well as the full Board about periodic assessment of our InfoSec Program, our internal response preparedness, and assessments led by outside advisors. We carry insurance that provides some protection against the potential losses arising from a cybersecurity incident. In the last three years, the expenses we have incurred from information security breach incidences, including penalties and settlements, of which there were none, were immaterial.

Environmental, Social & Governance (ESG) Initiatives

We have assembled a cross-functional team of leaders representing operations, human resources, supply chain, regulatory compliance, finance, marketing communications, investor relations, facilities, and the legal department with a focus on ESG issues relevant to the Company or that we can impact as a Company. In 2021, we formalized our corporate values as follows:

Integrity:

Team

Uphold the Highest Ethical Standards in everything we do

Treat Everyone with Respect

Keep Our Commitments

Encourage Open and Vibrant Communications

Safeguard Company IP

Promote Creative Solutions

Move Forward Together

12

Growth:

Customers

Embrace Change and Drive Innovation

Provide Passionate Dedication to Customer Success

Pursue Long-term Profitable Growth

Deliver the Highest Quality Products and Support

Take Responsibility for Personal Growth

Fiercely Protect Customer IP

Although we are not a member of the Responsible Business Alliance (or RBA) (formerly, the Electronics Industry Citizenship Coalition or EICC), in 2021 in an effort to further our ESG efforts, we adopted the RBA Code of Conduct to supplement our Code of Ethics, including the specific policies of the RBA Code relating to the five critical areas of corporate social responsibility: labor, health and safety, environment, management systems, and ethics. Guided by our above values and the following initial priorities, we believe we can achieve our business objectives and long-term stockholder value while doing our part in each of these areas. For additional information, see “Human Capital Management” in this Report below.

Care for Our People

We believe in upholding the principle of human rights, worker safety, and observing fair labor practices within our organization and our supply chain.
We embrace diverse viewpoints and perspectives, recognizing that greater inclusion fosters innovation and achieves better decision making and financial results. We have and plan to continue to undertake actions around organizational training, formalized company values, and a revitalized recruitment strategy.
We are committed to ensuring that proper working conditions exist for the safety of our employees, such as developing, implementing, and continuously improving health and safety systems and conditions, and providing appropriate preparation, education, reporting, and controls. For example, we have Illness Prevention and Hazard Communication programs and an Emergency Action Plan for worker safety at our clean room facility.

Environmental Responsibility

We are committed to protecting the natural environment and our community by complying with all applicable legal and regulatory requirements. For example, in 2020, we began the process of ISO14001 certification of our clean room facility, which specifies the requirements for the formulation and maintenance of an environmental management systems (EMS) and a specific framework for implementing relevant sustainable practices.
We ask our employees to help us accomplish this by looking for opportunities to conserve energy, reduce consumption of natural resources, preserve air, soil, and water quality, manage waste properly, and reuse and recycle, and reduce the use of toxic substances in our operations where possible, including, in particular, in our clean room and lab facilities. Our clean room facility does not produce any off gas or emissions and the only reportable, hazardous material that we use at that facility is liquid nitrogen, which is in a tank external to our building and monitored using telematics by an independent third party specializing in such activity.
We look for ways to reduce energy consumption in our facilities around the world, including upgrades and or retrofits to LED and/or motion detector lighting and smart HVAC system.

Ethics & Corporate Responsibility

We are committed to ensuring ethical organizational governance, promoting business ethics and integrity, and embracing diversity, and inclusion in the board room and throughout the organization.

13

We are committed to observing fair, transparent, and accountable operating practices.
We seek to create and foster a healthy, balanced, and ethical work environment for everyone in our organization. To this end, we promote a positive work-life balance and ethical organizational culture and encourage all employees, regardless of position or level, to raise questions or concerns about actual or potential ethical issues and company policies and to offer suggestions about how we can make our organization better to address concerns.
We have a Whistleblower Ethics Hotline that includes global telephone and web access together with local language support. The web portal enables online reporting of concerns, where allowed by local law, and a place to ask questions or quickly access ethics and compliance policies.
We believe these efforts strengthen our ethics and compliance efforts and foster an environment where employees can express concerns and have them resolved.
In our view, the goals of providing value to stockholders and upholding the principle of human rights and treating people fairly and with dignity are integrally interconnected. We are committed to promoting equality and supporting racial justice in the communities where we do business.

Supply Chain Responsibility

We request that our suppliers adhere to the RBA Code of Conduct or its equivalent by flowing this requirement through our commercial contracts.
We also support Rule 13p-1 under the Exchange Act (known as the Conflict Minerals Law) and efforts to avoid sourcing conflict minerals that directly or indirectly finance or benefit armed groups in the Democratic Republic of Congo (or DRC) and in adjoining countries. Consistent with the Conflict Minerals Law and the OECD Due Diligence Guidance concerning conflict minerals, we adopted the Conflict Free Sourcing Initiative Due Diligence reporting process and seek to obtain conflict minerals content declarations from our suppliers each year, all in an effort to promote supply chain transparency. We do not directly source tin, tantalum, tungsten, or gold (collectively referred to as 3TG) from mines, smelters or refiners, and we are in most cases several or more levels removed from these supply chain participants.
We therefore expect:
oour suppliers to source 3TG only from smelters and refiners validated as being conflict free and that do not directly or indirectly benefit or finance armed groups in the DRC or other covered country;
oour suppliers to fully-comply with the Conflict Minerals Law and provide all necessary declarations;
oour suppliers to pass these requirements through to their supply chain and determine the source and chain of custody of specified minerals, including 3TG; and
oany suppliers not willing to comply with these requirements to be reviewed by global procurement with regard to future business and sourcing declarations. This conflict minerals policy encourages our suppliers to respect and protect human rights throughout the world.

Human Capital Management

We believe we have a responsibility to foster a healthy, balanced, and ethical work environment for everyone in our organization through sound ethical and organizational governance, by promoting business ethics and integrity, and by embracing equality, diversity, and inclusion throughout our organization and even extending to the board room. For

14

additional information, see “Environmental, Social & Governance (ESG) Initiatives—Ethics & Corporate Responsibility,” in Part I, Item 1 of this Report.

We established a cross-functional advisory team of company leaders at the onset of the COVID-19 pandemic to ensure that promoting the health and safety of our employees in accordance with the World Health Organization (WHO) and the U.S. Centers for Disease Control and Prevention (CDC) guidelines remains a constant focal point. Work in our offices and travel policies are in compliance with local, state, and national requirements. For employees working remotely, we encouraged them to tell us what home office equipment and IT support they needed to set up a home office for healthy and productive work. For a small number of employees on-site at our clean room facility, we set up strict COVID safety protocols. To stay connected while working remotely, beginning in April 2020, our Chief Executive Officer and other members of the executive team have led virtual meetings twice a month with the various sales, research and development, engineering, and administrative teams to discuss developments and business updates and answer questions. Safety protocols, such as attendance capacity, temperature checking requirements, 6-feet distancing, managed traffic flows, providing and requiring appropriate masks to be worn while in the office, eliminating/spacing out eating in common areas, limiting attendance in conference rooms, accessible hand sanitation stations throughout the office, and visitor prescreening have been put in place in worldwide offices as advised by the CDC and required by local regulations when local regulations have allowed employees to be in the office.

We support employee action to protect the natural environment and the communities in which we operate through pollution prevention, conservation, responsible use, charitable giving, and sustainable practices. For example, we organize and engage employees in an annual charitable giving campaign. We work to ensure that our business practices support diversity and inclusion to build an innovative workforce and to strive toward having our organization reflect the complexion of our customers and suppliers. We are strengthening our diversity and inclusion programs with actions around organizational training, formalized company values, and a revitalized recruitment strategy.

As of December 31, 2021, we had 407 employees worldwide, including 178 field application engineers and consultants, 130 in research and development, 50 in sales and marketing, and 49 in general and administrative functions. Of these employees, 218 are located in the United States and Canada, 157 in Asia, and 32 in Europe.

None of our employees are represented by a labor union. Our employees in France and Italy are subject to collective bargaining agreements in those countries. We believe our relationship with our employees is good. Competition is intense in the recruiting of personnel in our industry. We believe that our future success will depend, in part, on our continued ability to hire and retain qualified management, sales, and technical employees.

Information about our Executive Officers

The following table and notes set forth information about our current executive officers as of the date of this Form 10-K.

Name

    

Age

    

Position

 

John K. Kibarian, Ph.D.

57

President, Chief Executive Officer, and Director

Adnan Raza

49

Executive Vice President, Finance and Chief Financial Officer

Kimon Michaels, Ph.D.

55

Executive Vice President, Products and Solutions

Adrzej Strojwas, Ph.D.

69

Chief Technology Officer

John K. Kibarian, Ph.D., one of our founders, has served as President since November 1991 and has served as our Chief Executive Officer since July 2000. Dr. Kibarian has served as a director since December 1992. Dr. Kibarian received a B.S. in Electrical Engineering, an M.S. E.C.E. and a Ph.D. E.C.E. from Carnegie Mellon University.

Adnan Raza, joined in January 2020 as Executive Vice President, Finance, and was appointed Chief Financial Officer effective in March 2020. Prior to joining the Company, Mr. Raza served as an independent strategy consultant for private and public companies from July 2019 to January 2020. Prior to that, Mr. Raza served in various roles at Synaptics Inc., a developer of human interface technologies, including as Senior Vice President of Corporate Development from

15

August 2017 to June 2019 and Vice President of Corporate Development from February 2015 to August 2017. Prior roles include technology investment banking at Goldman, Sachs & Co. and UBS Investment Bank, strategic advising at Blackreef Capital, engineering and marketing at Azanda Network Devices, and engineering at Lucent Technologies. Mr. Raza also served as a Board Member at FIDO Alliance, an alliance of leading technology companies to enhance user security and authentication. Mr. Raza holds a M.B.A. from The Wharton School at the University of Pennsylvania, a M. Eng. in Electrical Engineering from Cornell University, and a B.S. in Electrical Engineering from Valparaiso University.

Kimon Michaels, Ph.D., one of our founders, has served as Vice President, Products and Solutions since July 2010 and was designated as an Executive VP in February 2019. Dr. Michaels served as Vice President, Design for Manufacturability from June 2007 through June 2010. Prior to that, Dr. Michaels served as Vice President, Field Operations for Manufacturing Process Solutions from January 2006 through May 2007, and has been a Director since November 1995. From March 1993 through December 2005, he served in various vice presidential capacities. He also served as Chief Financial Officer from November 1995 to July 1998. Dr. Michaels received a B.S. in Electrical Engineering, and M.S. E.C.E. and a Ph.D. E.C.E. from Carnegie Mellon University.

Andrzej Strojwas, Ph.D., served as a technical advisor to the Company since our founding, as chief technologist from 1997 to 2021. He joined the Company as an employee in July 2021 as Vice President and Technical General Manager, and was appointed by the Board of Directors to be our Chief Technology Officer effective December 2021. From October 1982 to July 2021, Dr. Strojwas was the Keithley Professor of Electrical and Computer Engineering at Carnegie Mellon University. In addition, Dr. Strojwas has held senior technical positions at Harris Semiconductor Co., AT&T Bell Labs, Texas Instruments, NEC, Hitachi, SEMATECH, and KLA-Tencor. He holds an M.S. in Electronic Engineering from Warsaw Technical University and a Ph.D. in Electrical Engineering from Carnegie Mellon University.

Available Information

We file or furnish various reports, such as registration statements, periodic and current reports, proxy statements and other materials with the SEC. Our Internet website address is www.pdf.com. You may obtain, free of charge on our website, copies of our annual reports on Form 10-K, quarterly reports on Form 10-Q, current reports on Form 8-K, and amendments to those reports filed or furnished pursuant to Section 13(a) or 15(d) of the Exchange Act, as soon as reasonably practicable after we electronically file such material with, or furnish it to, the SEC. The Company’s website address provided is not intended to function as a hyperlink, and the information on the Company’s website is not, and should not be considered, part of this Annual Report on Form 10-K and is not incorporated by reference herein.

The SEC maintains a Web site (http://www.sec.gov) that contains reports, proxy and information statements and other information regarding issuers, such as us, that file electronically with the SEC.

16


Item 1A. Risk Factors

Risks Associated with Our Business

We invest significant resources into research and development to pursue new product and technology initiatives, including our DFI system and Exensio platform, and if we invest more resources than anticipated or fail to successfully carry out these initiatives on the expected timeline or at all, our business, financial condition, or results of operations could be adversely impacted.

As part of the evolution of our business, we have made substantial investments in research and development efforts to develop new products, including our DFI system and Exensio cloud-based platform, as well continued investment to enhance existing products. New competitors, technological advances in the semiconductor industry or by competitors, our entry into new markets, or other competitive factors may require us to invest significantly greater resources than we anticipate. If we are required to invest significantly greater resources than anticipated without a corresponding increase in revenue, our operating results could decline. The technologies or products that we invest in may later not be sought after by semiconductor companies. In this event, we would not recoup our investment and our results would suffer. If we are unable to anticipate technological changes in our industry by introducing new or enhanced products in a timely and cost-effective manner, or if we fail to introduce products that meet market demand, we may lose our competitive position, our products may become obsolete, and our business, financial condition or results of operations could be adversely affected. Additionally, our periodic research and development expenses may be independent of our level of revenue, which could negatively impact our financial results.

Our sales cycle is lengthy and customers may delay entering into contracts or decide not to adopt our products or solutions after we have performed services or supported evaluation by them of our technology, which could result in delays in recognizing revenue and negatively impact our results of operations in a quarter or result in lower revenue than we expected if a contract is not consummated at all.

On-going negotiations and evaluation projects for new products, with new customers or in new markets may not result in significant revenues for us if we are unable to close new engagements on terms favorable to us, in a timely manner, or at all. Unexpected delays in our sales cycle could cause our revenues to fall short of expectations. Further, the timing and length of negotiations required to enter into agreements with our customers and the ultimate enforcement of complex negotiated contractual provisions as we intended is difficult to predict. If we do not successfully negotiate certain key complex contractual provisions, there are disputes regarding such provisions, or they are not enforceable as we intended, our revenues and results of operations would suffer. Further, our customers sometimes delay starting negotiations until they begin developing a new process, need to insert a new product, or experience specific yield issues. This means that on occasion we have, and may continue to provide technology and services under preliminary documentation before executing the final contract. In these cases, we would not recognize revenue and may defer associated costs until execution of the final contract, which, if significant, could negatively impact our results of operations in the periods before we execute the final contract. Further, if we were to incur significant effort and then fail to enter into a final contract, we would have to write-off such deferred costs in the period in which the negotiations ended, which would increase our costs and expenses and could result in significant operating losses.

Our fixed-fee services or product or system installation/configurations may take longer than budgeted, which could slow our revenue recognition and may also result in a loss contract or a claim of breach by our customers, which would negatively affect our operating results.

Our fixed-fee services, including in particular for characterization, require a team of engineers to collaborate with our customers to address complex issues by using our software and other technologies, and the installation and configuration of our software into our customers’ fabrication and test/assembly facilities requires experienced engineers working with our customers on active foundry and test/assembly equipment. We must estimate the amount of resources needed to complete both of these types of services to estimate when the engineers will be able to commence the next engagement. In addition, our accounting for contracts with such services, which generate fixed fees, sometimes requires adjustments to profit (loss) based on revised estimates during the performance of the contract. These adjustments may have a material effect on our results of operations in the period in which they are made. The estimates giving rise to these risks, which are

17

inherent in fixed-price contracts, include the forecasting of costs and schedules, and contract revenues related to contract performance. If we significantly fail to meet a customer’s expectations in either case, the customer could claim that we breached our obligations, which could result in lost revenue and increased expenses.

Our ability to sell our products, systems, and solutions depends in part on the quality of our support and services offerings, and the failure to offer high-quality support and services could negatively affect our sales and results of operations.

Once our products are integrated within our customers’ hardware and software systems, our customers may depend on our support organization to resolve any issues relating to our products. Further, in connection with delivering our SaaS, which requires us to maintain adequate server hardware and internet infrastructure, including system redundancies, we are required to meet contractual uptime obligations. A high level of system and support is critical for the successful marketing and sale of our products. If we do not effectively provide subscription access to our SaaS customers, assist our customers in deploying our products, succeed in helping our customers quickly resolve post-deployment issues, and provide effective ongoing support and data security, we may face contractual penalties or customers may not renew subscriptions or services in the future, which would negatively impact our results of operations. In addition, due to our international operations, our system and support organization faces challenges associated with delivering support, hours that support is available, training, and documentation where the user’s native language may not be English. If we fail to maintain high-quality support and services and adequately address our customers’ support needs, our customers may choose our competitors’ products instead of ours in the future, which would negatively affect our revenues and results of operations.

Defects in our proprietary technologies, hardware and software tools, and failure to effectively remedy any such defects could decrease our revenue and our competitive market share.

If the software, hardware, or proprietary technologies we provide to customers contain defects that negatively impact customers’ ability to use our systems or software, increase our customers’ cost of goods sold and time-to-market, or damage our customers’ property, these defects could significantly decrease the market acceptance of our products and services or results in warranty or other claims. We must adequately train our new personnel, especially our customer service and technical support personnel, to effectively and accurately, respond to and support our customers. If we fail to do this, it could lead to dissatisfaction among our customers, which could slow our growth. Further, the cost of support resources required to remedy any defects in our technologies, hardware, or software tools could exceed our expectations. Any actual or perceived defects with our software, hardware, or proprietary technologies may also hinder our ability to attract or retain industry partners or customers, leading to a decrease in our revenue. These defects are frequently found during the period following introduction of new software, hardware, or proprietary technologies or enhancements to existing software, hardware, or proprietary technologies, which means that we may not discover the errors or defects until after customer implementation of the silicon design and manufacturing process recommended by us. If our software, hardware, or proprietary technologies contain errors or defects, it could require us to expend significant resources to remedy these problems or defend/indemnify claims, which could reduce margins and result in the diversion of technical and other resources from our other customer implementations and development efforts.

Inadvertent disclosure of our customers’ confidential information or our failure to comply with our customers’ security rules, including for cloud-based solutions or on-site access could result in costly litigation, cause us to lose existing and potential customers, or negatively impact on-going business with existing customers.

Our customers consider their product yield information and other confidential information, which we must collect in the course of our engagement with the customer or through our software tools, to be extremely competitively sensitive or subject to strict protection frameworks, including data and personal data about our customers’ employees necessary to administer the licenses. Many of our customers have strict security rules for on-site access to, or hosting, to their confidential information. If we suffered an unauthorized intrusion or we inadvertently disclosed or were required to disclose this information, or if we fail to adequately comply with customers’ security protocols for accessing or hosting confidential information, we could lose existing and potential customers or be subject to costly penalties or litigation, or our on-going business could be negatively impacted and insurance to cover such situations may not fully cover our exposure. In addition, to avoid potential disclosure of confidential information to competitors, some of our customers may, in the future, ask us not to work with key products or processes, which could limit our revenue opportunities.

18

We generate a significant portion of our revenues from a limited number of customers, and a large percentage of our revenues from two customers, so decreased business with, or the loss of, any one of these customers, or pricing pressure, or customer consolidation could significantly reduce our revenues or margins and negatively impact results of operations.

Historically, we have had a small number of large customers for our IYR engagements and that contribute significant Gainshare royalties. In the year ended December 31, 2021, two customers accounted for 27% of our revenues. We have in the past and could in the future lose a customer due to its decision not to develop or produce its own future process node. Customers could also choose to not engage us on future process nodes, or reduce the scope of our services or technology under contract (which is permitted in one of our customer contracts if the customer’s business materially adversely changes).We could also lose customers as a result of industry factors, including but not limited to reduced manufacturing volume or consolidation. Consolidation among our customers could also lead to increased customer bargaining power, or reduced customer spending on software and services. Further, new business may be delayed if a key customer uses its leverage to push for terms that are worse for us and we delay entering into the contract to negotiate for better terms, in which case revenue in any particular quarter or year may fail to meet expectations. Also, the loss of any of these customers or the failure to secure new contracts with these customers could further increase our reliance on our remaining customers. Further, if any of our key customers default, declare bankruptcy or otherwise delay or fail to pay amounts owed, or we otherwise have a dispute with any of these customers, our results of operations would be negatively affected in the short term and possibly the long term. For example, in 2021 and 2020, we incurred expenses in the amount of $2.0 million and $1.1 million, respectively, related to the arbitration with SMIC New Technology Research & Development (Shanghai) Corporation due to SMIC’s failure to pay fees due to us under a series of contracts. If we are not able to resolve this matter amicably prior to trial, we will incur substantial additional expenses related to resolution of this matter through such an arbitration trial. These events could cause significant fluctuations in results of operations because our expenses are fixed in the short term and it takes us a long time to replace customers or reassign resources.

If we do not continuously meet our development milestones of key research and development projects or successfully commercialize our Design-for-Inspection system, our future market opportunity and revenues will suffer and our costs may not be recouped.

We have invested significantly in the design and development of our eProbe tool and related intellectual property. Key customers failing to purchase, renew, or expand the number or use of such systems on our expected timeline or at all will cause our results to miss expectations. Also, if the results of our DFI system, including new applications, are not as we expect, we may not be able to successfully commercialize this system or such applications on schedule, or at all, and we may miss the market opportunity and not recoup our investment. Further, our eProbe tool could cause unexpected damage to wafers or delay processing wafers, which we could be liable for, or which could make customers unwilling to use it. If we are not able to create significant interest and show reliable and useful results without significant damage to wafers, our investment may not be recouped and our future results may suffer.

Decreases in wafer volumes at our customers’ manufacturing sites or the volume of ICs that some of our customers are able to sell to their customers would cause our Integrated Yield Ramp revenue to suffer.

Our Integrated Yield Ramp revenue includes amounts largely determined by wafer volumes at manufacturing sites covered by our contracts and, in some cases, the volume of an IC product that our customer is able to sell to its customers. Both of these factors are outside of our control. We have seen a significant reduction in our Integrated Yield Ramp revenue in recent years.  Further, some of our manufacturing customers’ business is largely dependent on customers that use our manufacturing customer as a second or third source. If those customers consolidate and/or otherwise move the orders to manufacturing facilities not covered by our contracts, or suspend their manufacturing at covered facilities for any reason, including consolidation, our Integrated Yield Ramp revenue will continue to decrease, which could cause us to fail to meet expectations. Further, reduced demand for semiconductor products or protectionist policies has from time to time decreased and may continue to decrease the volume of wafers and, in some cases, products our customers are able to make or sell, which would also decrease our Integrated Yield Ramp revenue. Also, our customers may unilaterally decide to implement changes to their manufacturing processes during the period that volume is covered by royalty contracts, which could negatively affect yield results and, thus, our Integrated Yield Ramp revenue.

19

Since we currently work on a small number of large projects at specified manufacturing sites and, in some cases, on specific IC products, our results of operations have been and may continue to be adversely affected by negative changes at those sites or in those products, including slowdowns in manufacturing due to external factors, such as U.S. trade restrictions, the impact of the COVID-19 pandemic, or supply chain issues. Also, if wafer orders from sites covered by our contracts are not secured by our customers, if an end product does not achieve commercial viability, if a process line or, in some cases, a specific product, does not achieve significant increases in yield or sustain significant volume manufacturing during the time we receive royalties, revenues associated with such volumes or products would be negatively impacted. This could significantly reduce our Integrated Yield Ramp revenue and results of operations could fail to meet expectations. In addition, if we work with two directly competitive manufacturing facilities or products, volume in one may offset volume, and thus any of our related revenue, in the other facility or product.

Our success depends upon our ability to effectively plan and manage our resources and restructure our business through rapidly fluctuating economic and market conditions, which actions may have an adverse effect on our financial and operating results.

Our ability to successfully offer our products and services in a rapidly evolving market requires an effective planning, forecasting, and management process to enable us to effectively scale and adjust our business and business models in response to fluctuating market opportunities and conditions, which has and could continue to require us to increase headcount, acquire new companies or engage in restructurings from time to time. For example, while we have increased investment in our business by, for example, increasing headcount, acquiring companies, and increasing our investment in R&D, sales and marketing, and other parts of our business from time to time, we have initiated a restructuring plan to reduce expenses and align our operations with evolving business needs. Some of our expenses related to such efforts are fixed costs that cannot be rapidly or easily adjusted in response to fluctuations in our business or numbers of employees. Rapid changes in the size, alignment or organization of our workforce, including sales account coverage, could adversely affect our ability to develop and deliver products and services as planned or impair our ability to realize our current or future business and financial objectives. Our ability to achieve the anticipated cost savings and other benefits from our restructuring initiatives within the expected time frame is subject to many estimates and assumptions, which are subject to significant economic, competitive and other uncertainties, some of which are beyond our control. If these estimates and assumptions are incorrect, if we are unsuccessful at implementing changes, or if other unforeseen events occur, our business and results of operations could be adversely affected.

Our business may be impacted by political events, war, terrorism, business interruptions and other geopolitical events and uncertainties beyond our control.

War, terrorism, geopolitical uncertainties and other business interruptions could cause damage to, disrupt or cancel sales of our products and services on a global or regional basis, which could have a material adverse effect on our business or vendors with which we do business. Such events could also make it difficult or impossible for us to deliver products and services to our customers. In addition, territorial invasions can lead to cybersecurity attacks on technology companies, such as ours, located far outside of the conflict zone. In the event of prolonged business interruptions due to geopolitical events, we could incur significant losses, require substantial recovery time and experience significant expenditures in order to resume our business operations. We have no operations in Russia or the Ukraine, but we do not and cannot know if the current uncertainties in these geopolitical areas, which are unfolding in real-time, may escalate and result in broad economic and security conditions, which could result in material implications for our business. In addition, our insurance policies typically contain a war exclusion of some description and we do not know how our insurers are likely to respond in the event of a loss alleged to have been caused by geopolitical uncertainties.

Global economic conditions or semiconductor market conditions could materially adversely impact demand for our products and services, decrease our sales, or delay our sales cycle.

Our customers are global semiconductor companies, which means that our operations and performance depend significantly on worldwide economic conditions as well as semiconductor market specific changes. Uncertainty about global economic conditions could result in customers postponing purchases of our products and services, including in response to tighter credit, inflationary concerns, unemployment, negative financial news and/or declines in income or asset values and other macroeconomic factors, which could have a material negative effect on demand for our products and

20

services and, accordingly, on our business, results of operations or financial condition. For example, the timing of the build-out of the semiconductor market in China depends significantly on governmental funding on both local and national levels and a delay in this funding could negatively affect our revenues. For further example, any economic and political uncertainty caused by the United States tariffs imposed on goods from China, among other potential countries, and any corresponding tariffs from China or such other countries in response, may negatively impact demand and/or increase the cost for our products. Similarly, the COVID-19 pandemic in China or in other nations has and may continue to cause a slowdown in the global economy and demand for our products and services. Further, the semiconductor industry historically has been volatile with up cycles and down cycles, due to sudden changes in customers’ manufacturing capacity requirements and spending, which depend in part on capacity utilization, demand for customers’ IC products by consumers, inventory levels relative to demand, and access to affordable capital. As a result of the various factors that affect this volatility, the timing and length of any cycles can be difficult to predict and could be longer than anticipated. Any of these events could negatively affect our revenues and make it challenging for us to forecast our operating results, make business decisions, and identify the risks that may affect our business, financial condition and results of operations. Customers with liquidity issues may also lead to additional bad debt expense.

Supply-chain disruption could impact our ability to build additional hardware tools or meeting customer deadlines.

Any disruptions to our supply chain, significant increase in component costs resulting from inflationary pressures, or shortages of critical components, could impact our ability to build additional hardware tools, which would decrease our sales, earnings, and liquidity or otherwise adversely affect our business and result in increased costs. Such a disruption could occur as a result of any number of events, including, but not limited to: an extended closure of or any slowdown at our suppliers' plants or shipping delays due to efforts to limit the spread of COVID-19, market shortages due to the surge in demand from other purchasers for critical components, increases in prices, the imposition of regulations, quotas or embargoes or tariffs on components or our products themselves, labor stoppages, transportation delays or failures affecting the supply chain and shipment of materials and finished goods, third-party interference in the integrity of the products sourced through the supply chain, cyberattacks, the unavailability of raw materials, severe weather conditions, adverse effects of climate change, natural disasters, geopolitical developments, war or terrorism and disruptions in utilities and other services. In addition, the development, licensing, or acquisition of new products in the future may increase the complexity of supply chain management. Failure to effectively manage the supply of components and products would adversely affect our business.

Risks Related to Our Technology

If we fail to protect our intellectual property rights, customers or potential competitors may be able to use our technologies to develop their own solutions, which could weaken our competitive position, reduce our revenues, or increase our costs.

Our success depends largely on the proprietary nature of our technologies. Our contractual, patent, copyright, trademark, and trade secret protection may not be effective against any particular threat or in any particular location. Our pending patent applications may not result in issued patents, and even if issued, they may not be sufficiently broad to protect our proprietary technologies. Some foreign countries do not currently provide effective legal protection for intellectual property and our ability to prevent the unauthorized use of our products in those countries is therefore limited. Our trade secrets may also be stolen, otherwise become known, or be independently developed by competitors. Litigation may be necessary from time to time to enforce our IP rights. As a result of any such litigation, we could lose our proprietary rights and incur substantial unexpected operating costs. Litigation could also divert our resources, including our managerial and engineering resources. If we are unable to exclude others from using our proprietary technologies and methods without compensation to us, through litigation or otherwise, it could impede our ability to grow our business and our revenues may suffer.

We are exposed to risks related to information technology infrastructure, information management and protection, cybersecurity threats, and cyber incidents.

We are heavily reliant on our technology and infrastructure, as well as the public cloud to an increasing degree, to provide our products and services to our customers. We have experienced in the past, and may experience in the future,

21

interruptions in our information systems on which our global operations depend. We may in the future experience unplanned downtime of the infrastructure that delivers our SaaS products. Further, we may face attempts by others to gain unauthorized access through the Internet to our information technology systems whether hosted by us or service providers, to intentionally hack, interfere with, or cause physical or digital damage to or failure of such systems (such as significant viruses or worms), which attempts we or they may be unable to prevent. Our security measures may also be breached due to employee errors, malfeasance, or otherwise. Despite our ongoing efforts to enhance our network security measures, our information systems are susceptible to computer viruses, cyber-related security breaches and similar disruptions from unauthorized intrusions, tampering, misuse, criminal acts, including phishing, or other events or developments that we may be unable to anticipate or fail to mitigate and are subject to the inherent vulnerabilities of network security measures. For example, in the middle of 2020, we became aware that a malicious third-party actor had fraudulently obtained one-time credentials to a limited set of hosts in a small segregated part of our network due to a vulnerability in a third-party VPN device.  Third parties may also attempt to influence employees, users, suppliers or customers to disclose sensitive information in order to gain access to our, our customers’ or business partners’ data. Additionally, third parties with whom we work, such as vendors or developers, may violate applicable laws or our policies and such violations can place personal information of our customers at risk. We or our service providers could be unaware of an incident or its magnitude and effects until after it is too late to prevent it and the damage it may cause. Further, because the techniques used to obtain unauthorized access to the information systems change frequently, and may not be recognized until launched against a target, we may be unable to anticipate these techniques or to implement adequate preventative measures.

The theft, unauthorized use, or a cybersecurity attack that results in the publication of our trade secrets and other confidential business information as a result of such an incident could negatively affect our competitive position, the value of our investment in product or research and development, and third parties might assert against us or our customers claims related to resulting losses of confidential or proprietary information or end-user data and/or system reliability. We carry insurance that provides some protection against the potential losses arising from a cybersecurity incident, but it will not likely cover all such losses, and the losses that it does not cover may be significant. In any such event, our business could be subject to significant disruption, which could impact our revenues or cause customers to cease doing business with us, and we could suffer monetary and other losses, including reputational harm, which costs we may not be able to recover from our service providers. Our operations are dependent upon our ability to protect our technology infrastructure against damage from business continuity events that could have a significant disruptive effect on our operations.

Our technologies could infringe the intellectual property rights of others, causing costly litigation and the loss of significant rights.

Significant litigation regarding intellectual property rights exists in the semiconductor industry. It is possible that a third party may claim that our technologies infringe their intellectual property rights or misappropriate their trade secrets. For example, in late 2020, Ocean Semiconductor LLP (“Ocean”) filed complaints against a number of semiconductor companies in the United States, including a number of our customers, alleging that the importation of IC devices made overseas on a process that, in some cases, included our software, infringed U.S. patents owned by Ocean. Any claim, even if without merit, could be time consuming to defend, result in costly litigation, or require us to enter into royalty or licensing agreements, which may not be available to us on acceptable terms, or at all and could adversely affect our sales opportunities, expenses, and revenues.

In addition, we collect, use, store or disclose (collectively, “process”) an increasingly large amount of personal information, including from employees and customers, in connection with the operation of our business. The personal information we process is subject to an increasing number of federal, state, local and foreign laws regarding privacy and data security, as well as contractual commitments. Any failure or perceived failure by us to comply with such obligations may result in governmental enforcement actions, fines, litigation, or public statements against us by consumer advocacy groups or others and could cause our customers to lose trust in us, which could have an adverse effect on our reputation and business. Additionally, changes to applicable privacy or data security laws could impact how we process personal information, and therefore limit the effectiveness of our solutions or our ability to develop or deliver new products or services. For example, the European Union General Data Protection Regulation imposes stringent data protection requirements and provides for significant penalties for noncompliance of up to the greater of €20 million or four percent of worldwide annual revenues. Regulation is also increasingly occurring at the U.S. state level to supplement federal

22

legislative action or inaction, as indicated by the California Consumer Privacy Act (CCPA), which first became enforceable in 2020, and similar statutes that have been adopted in other states.

Additionally, we must frequently expand our internal information system to meet increasing demand in storage, computing and communication, which may result in increased costs. Our internal information system is expensive to expand and must be highly secure due to the sensitive nature of our customers’ information that we transmit. Building and managing the support necessary for our growth places significant demands on our management and resources. These demands may divert these resources from the continued growth of our business and implementation of our business strategy.

Competition in the market for data analytics and related systems and services may intensify in the future, which could impede our ability to grow or execute our strategy.

We currently face indirect competition from the internal groups at IC companies and direct competition from providers of (i) yield management and/or prediction systems, such as KLA-Tencor, Siemens AG (“Siemens”), Onto Innovation, Inc. (“Onto”), and Synopsys, Inc. (“Synopsys”); (ii) semiconductor manufacturing software, such as Applied Materials, Inc., Synopsys, Invantest, Inc., NI, Inc., Onto, and Siemens; (iii) inline inspection, metrology and electrical test equipment providers, such as Applied Materials and Keysight Technologies, Inc.; and, (iv) connectivity software or integration products/services supporting factory connectivity or control needs of customers, such as PEER Group, Inc., Kontron AIS, GmbH, Yokogawa Electric Corp., and Kornic Automation Co. Ltd. There may be other providers of competitive commercial solutions of which we are not aware and we may compete with the products or offerings of these named companies or additional companies if we expand our offerings through acquisition or development. For example, since our acquisition of Cimetrix Incorporated in late 2020, we now face competition in the connectivity and integration products/services supporting factory equipment connectivity and control. The demand for solutions that address the need for better integration between the silicon design and manufacturing processes may encourage direct competitors to enter into our market. For example, in 2020, two of our competitors were acquired by larger entities, Synopsys, Inc. acquired Qualtera and NI, Inc. acquired Optimal+, which may enable greater investment or marketing of these competitive applications. This competition in our market may intensify in the future, which could lead to increased pricing pressure, negatively impacting our revenues, and slow our ability to grow or execute our strategy. Also, our current and potential customers may choose to develop their own solutions internally, particularly if we are slow in deploying our solutions or improving them to meet market needs. These and other competitors may be able to operate with a lower cost structure than our engineering organization, which would give any such competitor’s products a competitive advantage over our solutions.

Risks Related to Our Operations

Measurement of our variable consideration requires data collection and customers’ use of estimates in some cases and is subject to customers’ agreement and is later offset if actual data differ from customers’ estimates, which can result in uncertainty and cause quarterly results to fluctuate.

We can only recognize volume- or average selling price- based royalties once we have reached agreement with our customers on their level of yield performance improvements or average selling prices (also called “ASP”) and quarterly agreements are sometimes based on estimates of volume results or ASP each quarter. Measuring the amount of yield improvement is inherently complicated and dependent on our customers’ internal processes and certain non-public information, thus, there may be uncertainty as to some components of measurement or calculation. Also, some variable consideration can be highly susceptible to delays in the customer measurement of key factors such as reporting volumes results and level of yield or ASP. Therefore, we may have to estimate revenue related to contingent variable fees or usage-based or sales-based royalties prior to the receipt of performance reports, such as royalty acknowledgements, or other related information from customers. These estimates are subject to judgment to evaluate whether it is probable that a significant revenue reversal will not occur in future periods, which could result in our recognition of less Integrated Yield Ramp revenue than expected in any particular period and later offset when actual results become available.

23

We have customers with past due receivable balances and our failure to collect a significant portion of such balances could adversely affect our cash, require us to write-off receivables, or increase expense or our bad debt allowance.

If our customers fail to pay receivable balances when due, our cash will decrease and we may have to incur additional expenses in an attempt to collect it, write-off a portion or all of such receivables, or increase our bad debt allowance. Our accounts receivable balance, net of reserves, was $40.1 million and $34.1 million as of December 31, 2021, and 2020, respectively. Unbilled accounts receivable, included in accounts receivable, totaled $11.8 million and $7.2 million as of December 31, 2021 and 2020, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.3 million and $2.0 million as of December 31, 2021 and 2020, respectively. Two customers accounted for 44% of our gross accounts receivable as of December 31, 2021 and two customers accounted for 27% our gross accounts receivable as of December 31, 2020. The total accounts receivable reserves was $0.9 million and $1.0 million as of December 31, 2021 and 2020, respectively. We generally do not require collateral or other security to support accounts receivable. Despite the financial ability of these customers to pay for on-going services by PDF under valid contracts, customers may delay payments. Our allowances for potential credit losses, if any, could be insufficient, and we may need to adjust our allowance for doubtful accounts from current estimates or write-off receivables depending on such claims in the future. If we are forced to pursue legal remedies to collect receivables, our expenses could rise significantly and our business relationship and future business with these customers could suffer.

We have experienced losses in the past and we may incur losses again in the future.

We have experienced losses in the past, and we may incur losses again in the future if we are not able to adequately control our costs or if total revenues fail to exceed costs. In addition, virtually all of our quarterly operating expenses are fixed, so any shortfall in anticipated quarterly revenues could significantly reduce our operating results below expectations. Our accumulated deficit was $97.7 million as of December 31, 2021. We have in the past and may in the future incur significant expenses in connection with:

funding for research and development;
restructuring costs related to our cost control and management efforts;
expansion of our sales and marketing efforts; and
additional non-cash charges relating to amortization and stock-based compensation.

We face operational and financial risks associated with international operations that could negatively impact our revenues.

In recent years, we have derived nearly or over half of our revenues from sales outside of the United States, and we expect our international business to continue to grow. We have in the past expanded and reorganized, at different times, our operations, including international operations, and may in the future continue such expansion or reorganization by establishing or restructuring international subsidiaries, offices, or contractor relationships in locations, if and when, deemed appropriate by our management. Thus, the success of our business is subject to risks inherent in doing business internationally, including in particular:

our potential growth in China is dependent upon continued investments in the semiconductor industry by both private and public entities within China. Should circumstances change such that the level of investments is substantially reduced, our future growth potential may be limited;
some of our key engineers and other personnel are foreign nationals and they may not be permitted access to certain technical information under U.S. export laws or by certain of our customers and may have difficulty gaining access to the United States and other countries in which our customers or our offices may be located and it may be difficult for us to recruit and retain qualified technical and managerial employees in foreign offices;

24

ineffective or inadequate protection or enforcement of our intellectual property in foreign jurisdictions;
greater difficulty in collecting account receivables resulting in longer collection periods, bad debt, and increased cost to collect;
language and other cultural differences may inhibit our sales and marketing efforts and create internal communication problems among our U.S. and foreign teams, increasing the difficulty of managing multiple, remote locations and negatively impacting sales and revenue;
compliance with, inconsistencies among, and unexpected changes in, a wide variety of foreign laws and regulatory environments with which we are not familiar, including, among other issues, with respect to employees, personal data, tax, protection of our IP, and a wide variety of operational regulations and trade and export controls under domestic, foreign, and international law;
currency risk due to the fact that certain of our payables and for our international offices are denominated in the foreign currency, including the Euro, Yen, and RMB, while virtually all of our revenues is denominated in U.S. dollars, or in the event a larger portion of our revenues becomes denominated in foreign currencies, we would be subject to a potentially significant exchange rate risk;
inadequate local infrastructure that could result in business disruptions;
additional taxes, interest, and potential penalties, and uncertainty around changes in tax laws of various countries;
geopolitical instability or changes in government could disrupt our operations or our customers’ purchases or operations or those of related supply chain participants;
quarantine, private travel limitation, or business disruption in regions affecting our operations, stemming from actual, imminent or perceived outbreak of human pandemic or contagious disease, including the COVID-19; or
economic or political instability, including but not limited to armed conflict, terrorism, interference with information or communication of networks or systems, as well as strained or worsening relations between the United States and China, and occupation or war involving Russia and Ukraine, and the resulting disruption to economic activity and business operations.

Further, our employees and contractors include professionals located in various international locations, including Shanghai, China, and Ramallah, Palestine, who provide software-related development, quality assurance, maintenance, and other technical support services for certain of our software products. Political changes, including policies regarding export control, that affect these or other international operations could disrupt or limit the work our employees and contractors are able to perform, and thus negatively affect the range of services we are able to provide our customers or our cost for such services.

The COVID-19 pandemic has affected the manufacturing and shipment of goods. From time to time since the start of the pandemic in 2020, our offices around the world have been temporarily shut down and restrictions have limited the ability of our local employees to travel to customer sites or visit our other offices. An extended closure of our customers’ plants due to a resurgence of COVID-19 or variants thereof could adversely impact our business.

In addition, our global operations are subject to numerous U.S. and foreign laws and regulations, including those related to anti-corruption, tax, corporate governance, imports and exports, financial and other disclosures, privacy, and labor relations. These laws and regulations are complex and may have differing or conflicting legal standards, making compliance difficult and costly. In addition, there is uncertainty regarding how proposed, contemplated, or future changes to these complex laws and regulations could affect our business. We may incur substantial expense in complying with the new obligations to be imposed by these laws and regulations, and we may be required to make significant changes in our business operations, all of which may adversely affect our revenues and our business overall. Given the high level of

25

complexity of these laws, there is a risk that some provisions may be inadvertently or intentionally breached, for example through fraudulent or negligent behavior of individual employees, our failure to comply with certain formal documentation requirements or otherwise. If we violate these laws and regulations, we could be subject to fines, penalties, or criminal sanctions, and may be prohibited from conducting business in one or more countries. Additionally, we may be held liable for actions taken by our local dealers and partners. A significant violation could additionally have a significantly negatively impact our sales opportunities, operations, and financial results. Even if our operations and ability to deliver products and services to customers in China and elsewhere are not significantly negatively impacted by such changing regulations, our customers in China and elsewhere may decide to use only local vendors as a precaution. In such case, our expected international business may be slower than expected or not materialize at all, in which case, our sales opportunities, operations, and financial results would suffer.

Further, the U.S. government has most recently imposed a “first tranche” of broad sanctions against Russia relating to its invasion of Ukraine aimed at Russia’s financial, technology, energy and transport sectors, and certain companies and high-wealth individuals, and has additionally continued a bipartisan consensus in the U.S. government favoring increased confrontation of China in trade practices and economic matters, national security, and human rights. The current U.S. Administration views technology as a domain of strategic competition in which the U.S. and allies must stay ahead of China and has reaffirmed the U.S. government consensus identifying semiconductor, artificial intelligence, and 5G technologies, and protection of U.S. supply chains as priority efforts. If the Administration continues to augment ongoing U.S. efforts by enlisting the cooperation of allied countries in both advanced development and protection against P.R.C. and/or Russian use of U.S. and allied advances, or expands or intensifies export controls and sanctions, including by adding more P.R.C. or Russian companies to the U.S. Export Administration Regulations (EAR) Entity List, our ability to sell to these companies or companies supplied by them could be negatively impacted. Our standard operations include development, distribution processes, software download sites, and professional service centers and processes located in various geographies around the world. Some customers have expressed concerns to us that continued action by the U.S. government could potentially interrupt their ability to make use of our products or services. The continuing tension between the U.S. and P.R.C. and Russian governments in trade and security matters or the perception of that tension could lead to disruptions or reductions in international trade, deter or prevent purchasing activity of customers, and negatively impact us in our financial results, including in particular sales in China and Russia.

We must comply with a variety of existing and future laws and regulations that could impose substantial costs on us and may adversely affect our business.

Increasingly regulators, customers, investors, employees and other stakeholders are focusing on Environmental, Social and Governance (ESG) matters. While we have certain ESG initiatives at the Company, there can be no assurance that regulators, customers, investors, and employees will determine that these programs are sufficiently robust. In addition, there can be no assurance that we will be able to attain any announced goals related to our ESG program, as statements regarding our ESG goals reflect our current plans and aspirations and are not guarantees that we will be able to achieve them within the timelines we announce or at all. Actual or perceived shortcomings with respect to our ESG initiatives and reporting can impact our ability to hire and retain employees, increase our customer base, or attract and retain certain types of investors. In addition, these parties are increasing focused on specific disclosures and frameworks related to ESG matters. Collecting, measuring, and reporting ESG information and metrics can be costly, difficult and time consuming, is subject to evolving reporting standards, and can present numerous operational, reputational, financial, legal and other risks, any of which could have a material impact, including on our reputation and stock price. Inadequate processes to collect and review this information prior to disclosure could be subject to potential liability related to such information.

Tax Risks

Changes in effective tax rates could positively affect our earnings, thereby raising investors’ expectations, while the final tax rates that are determined could be significantly higher, thereby lowering our earnings and causing us to miss investors’ expectations, which could cause our stock price to drop.

We conduct our business globally and, as a result, are subject to taxation in the United States and foreign countries. Our future tax rates could be affected by numerous factors, including recent changes in tax laws or the interpretation of such tax laws, insufficient taxable income to realize deferred tax assets, and changes in accounting policies. Our filings

26

are subject to reviews or audit by the Internal Revenue Service and state, local and foreign taxing authorities. We cannot be sure that any final determination in an audit would not be materially different than the treatment reflected in our historical income tax provisions and accruals. If additional taxes are assessed as a result of an audit, there could be a significant negative effect on our income tax provision and our operating results in the period or periods for which that determination is made. Any changes in our geographical earnings mix in various tax jurisdictions, including those resulting from transfer pricing adjustments, could materially increase our effective tax rate.

Future events may impact our deferred tax asset position, including the utilization of net operating loss and tax credit carryforwards.

Realization of our deferred tax assets is dependent primarily upon future taxable income in the applicable jurisdiction. We previously recorded a full valuation allowance against all of our U.S. federal and state deferred tax assets due to the uncertainty surrounding the future realization of these deferred tax assets. Therefore, no benefit has been recognized for the net operating loss carryforwards, tax credit carryforwards, and other deferred tax assets. The net operating loss and tax credits could expire unused and be unavailable to reduce future income tax liabilities. We intend to continue maintaining a full valuation allowance on these deferred tax assets until there is sufficient evidence to support the reversal of all or some portion of these allowances. We evaluate our deferred tax assets for realizability each reporting period. The impact of releasing some or all of such valuation allowance in a future period could be a material benefit in the period in which such release occurs.

U.S. federal tax reform and changes in other tax laws could increase our tax burden and adversely affect our business and financial condition.

In December 2017, the U.S. government enacted comprehensive tax legislation, the Tax Cuts and Jobs Act of 2017, significantly reforming the Internal Revenue Code of 1986, as amended. These changes include, among others, (i) a permanent reduction to the corporate income tax rate, (ii) a partial limitation on the deductibility of business interest expense, (iii) a shift of the U.S. taxation of multinational corporations from a tax on worldwide income to a territorial system (along with certain rules designed to prevent erosion of the U.S. income tax base) and (iv) a one-time tax on accumulated offshore earnings held in cash and illiquid assets, with the latter taxed at a lower rate.

In addition, beginning in 2022, the recently enacted tax legislation will require research and experimental expenditures to be capitalized and amortized ratably over a five-year period. Any such expenditures attributable to research conducted outside the United States must be capitalized and amortized over a 15-year period.

Notwithstanding the reduction in the corporate income tax rate, the overall impact of this tax reform is uncertain, and our business and financial condition could be adversely affected. Furthermore, it is uncertain if and to what extent various states will conform to the enacted federal tax law or any newly enacted federal legislation. In addition, new legislation or regulation which could affect our tax burden could be enacted by any governmental authority. We cannot predict the timing or extent of such tax related developments which could have a negative impact on our financial results. Additionally, we use our best judgment in attempting to quantify and reserve for these tax obligations. However, a challenge by a taxing authority, our ability to utilize tax benefits such as carryforwards or tax credits, or a deviation from other tax related assumptions could have a material adverse effect on our business, results of operations, or financial condition.

Risks Related to Our Strategic Transactions

We may not realize the benefits of our strategic partnership with Advantest, which could have an adverse effect on our business and results of operations

On July 29, 2020, we entered into a strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively, “Advantest”), that includes: (i) a significant agreement for our assistance in development of cloud-based applications for Advantest tools that leverage our Exensio software analytics platform; (ii) a commercial agreement providing for the license to third parties of solutions that result from the development work that combine Advantest’s testing applications and our Exensio platform; (iii) a 5-year cloud-based subscription for our Exensio analytics platform and related services; and (iv) the purchase of 3,306,924 shares of our

27

common stock, for aggregate gross proceeds of $65.2 million. The full extent of the future impact of this strategic partnership on our financial condition and results of operations is currently unknown and the failure to reap the anticipated benefits of Advantest’s financial resources, technology, customer relationships, and global footprint and/or develop successful joint solutions could have an adverse effect on our business and results of operations.

Our acquisitions and divestitures create special risks and challenges that could adversely affect our financial results.

We have made, and may continue to make, acquisitions in order to enhance our business. For example, we acquired Cimetrix Incorporated (“Cimetrix”) in December 2020 for a gross purchase price of approximately $37.5 million ($31.6 million net of cash acquired) for all of its outstanding equity. Acquisitions involve numerous risks, including, but not limited to, problems combining the purchased operations, technologies or products, unanticipated costs, liabilities, litigation, and diversion of management’s attention from our core businesses, adverse effects on existing business relationships with suppliers and customers, risks associated with entering markets in which we have no or limited prior experience, and where competitors in such markets have stronger market positions, initial dependence on unfamiliar supply chains or relatively small supply partners, failure of our due diligence processes to identify significant problems, liabilities or other challenges of an acquired company or technology, and the potential loss of key employees, customers, distributors, vendors, and other business partners of the companies we acquire.

There can be no assurance that we will be able to successfully integrate any businesses, products, technologies, or personnel that we might acquire or that the transaction will advance our business strategy. The integration of businesses that we may acquire is likely to be a complex, time-consuming, and expensive process and we may not realize the anticipated revenues or other benefits associated with our acquisitions. If we fail to successfully manage, operate, or integrate any acquired business or if we are unable to efficiently operate as a combined organization, including through the use of common information and communication systems, operating procedures, financial controls, and human resources practices, we could be required to write-down investments and our business, financial condition, and results of operations may be adversely affected. We may also be unable to protect or enforce the intellectual property rights of any target business that we acquire, or such target businesses may become subject to claims of intellectual property infringement. Further, if we become subject to liabilities as a result of an acquisition, the liabilities we incur may be substantial and the amounts of such liabilities may not be covered by and/or may exceed any liability protections.

In connection with certain acquisitions, we may agree to issue common stock, or assume equity awards, that dilute the ownership of our current stockholders, use a substantial portion of our cash resources, assume liabilities (both known and unknown), record goodwill and amortizable intangible assets that will be subject to impairment testing on a regular basis and potential periodic impairment charges, incur amortization expenses related to certain intangible assets, and incur large and immediate write-offs and restructuring and other related expenses, all of which could harm our financial condition and results of operations.

COVID-19 Risks

The COVID-19 pandemic has significantly affected how we and our customers are operating our business and the duration and extent to which this will impact our future results of operations and overall financial performance remains uncertain.

The COVID-19 pandemic has significantly affected how we and our customers are operating our business. For example, most U.S. states and countries worldwide imposed and may continue to impose from time-to-time for the foreseeable future, restrictions on the physical movement of our employees, partners, and customers to limit the spread of COVID-19. Our US headquarters and R&D facility and offices in Canada, France, Japan and Korea have experienced temporary closures since the first quarter of 2020. In addition, since that time, our personnel worldwide have also been subject to various country to country travel restrictions, which limit our ability to provide services to customers at their facilities. These impacts have disrupted our normal operations. If the COVID-19 pandemic has a substantial impact on our employees’ productivity, our results of operations and overall financial performance may be harmed.

Moreover, the conditions caused by the COVID-19 pandemic could adversely affect our customers’ ability or willingness to purchase our products or services, delay prospective customers’ purchasing decisions, adversely impact our

28

ability to provide or deliver products and on-site services to our customers, delay the provisioning of our offerings, lengthen payment terms, reduce the value or duration of their subscriptions, or affect attrition rates, all of which could adversely affect our future sales, operating results and overall financial performance. For example, we believe the lack of an ability to meet face-to-face during most of 2020 and 2021 have made it harder for us to sell complex or new technologies to such customers during these periods.

While the future economic impact brought by the COVID-19 pandemic may be difficult to assess or predict, a long-term market downturn resulting from the spread of COVID-19 could materially impact the value of our common stock, impact our access to capital and affect our business in the near and long-term.

The duration and extent of the continuing impact from the COVID-19 pandemic depends on future developments that cannot be accurately predicted at this time, such as the severity and transmission rate of the virus and variants thereof, the extent and effectiveness of containment actions, including the availability and effective distribution of vaccines, and the impact of these and other factors on our employees, customers, partners and vendors. If we are not able to respond to and manage the impact of such events effectively, or if the macroeconomic conditions of the general economy continue to worsen or the industries in which we operate are negatively impacted over the long-term, our business, operating results, financial condition and cash flows could be adversely affected.

General Risk Factors

If we are not able to retain, attract, motivate, and strategically locate talented employees, including some key executives, our business may suffer.

Our success and competitiveness depend on our ability to retain, attract, motivate, and strategically locate in our offices around the globe, talented employees, including some of our key executives. Achieving this objective may be difficult due to many factors, including fluctuations in global economic and industry conditions, changes in our management or leadership, the hiring practices at our competitors or customers, cost reduction activities, and the effectiveness of our compensation programs, including equity-based programs. Further, we have had, and expect to continue to have, difficulty in obtaining visas permitting entry for some of our employees that are foreign nationals into the United States, and delays in obtaining visas permitting entry into other key countries, for several of our key personnel, which disrupts our ability to strategically locate our personnel. In recent years, the United States increased the level of scrutiny in granting H-1(b), L-1 and other business visas. Compliance with United States immigration and labor laws could require us to incur additional unexpected labor costs and expenses or could restrain our ability to retain skilled professionals. If we lose the services of certain of our key executives or a significant number of our engineers, it could disrupt our ability to implement our business strategy. If we do not successfully attract, retain, and motivate key employees, including key executives, we may be unable to realize our business objectives and our operating results may suffer.

Our earnings per share and other operating results may vary quarter to quarter, which could result in not meeting investors’ expectations and cause our stock price to drop.

Our stock price has fluctuated widely during the last few years. A factor in the volatility may be that our historical quarterly operating results have fluctuated. Our future quarterly operating results will likely fluctuate from time to time and may not meet the expectations of securities analysts and investors in some future period, which could cause our stock price to decrease again. A significant reduction in our stock price negatively impacts our ability to raise equity capital in the public markets and increases the cost to us, as measured by dilution to our existing shareholders, of equity financing. In addition, the reduced stock price also increases the cost to us, in terms of dilution, of using our equity for employee compensation or for acquisitions of other businesses. A greatly reduced stock price could also have other negative results, including the potential loss of confidence by employees, the loss of institutional investor interest, a hostile take-over bid, and fewer business development opportunities. Also, significant volatility in the stock price could be followed by a securities class action lawsuit, which could result in substantial costs and a diversion of our management’s attention and resources.

29

Our business could be negatively affected as a result of actions of activist shareholders, and such activism could impact the trading value of our securities.

In recent years, shareholder activists have become involved in numerous public companies, including our company. Shareholder activists frequently propose to involve themselves in the governance, strategic direction, and operations of a company. Such proposals may disrupt our business, increase our expenses, and divert the attention of our Board of Directors and our management and employees, and any perceived uncertainties as to our future direction resulting from such a situation could result in the loss of potential business opportunities, interfere with our ability to execute our strategic plan be exploited by our competitors, cause concern to our current or potential customers, and make it more difficult to attract and retain qualified personnel and business partners, all of which could adversely affect our business. A proxy contest for the election of directors at our annual meeting could also require us to incur significant legal fees and proxy solicitation expenses. In addition, actions of activist shareholders may cause significant fluctuations in our stock price based on temporary or speculative market perceptions or other factors that do not necessarily reflect the underlying fundamentals and prospects of our business.

Item 1B. Unresolved Staff Comments

None.

Item 2. Properties

None.

Item 3. Legal Proceedings

From time to time, we are subject to various claims and legal proceedings that arise in the ordinary course of business. We accrue for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (FASB) requirements. As of December 31, 2021, except as disclosed below, we were not party to any material legal proceedings, thus no loss was probable, and no amount was accrued.

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to PDF under a series of contracts. We seek to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future, and costs associated with bringing the arbitration proceeding. The arbitration is on-going.

Item 4. Mine Safety Disclosures

None.

30

PART II

Item 5. Market For Registrant’s Common Equity, and Related Stockholder Matters and Issuer Purchases of Equity Securities

Our common stock trades on the Nasdaq Global Market under the symbol “PDFS.” As of February 25, 2022, we had approximately 29 stockholders of record. The number of stockholders of record does not include individuals whose stock is in nominee or “street name” accounts through brokers.

Dividend Policy

No cash dividends were declared or paid in 2021 and 2020. We currently intend to retain all available funds to finance future growth, product development, and stock repurchases and, therefore, do not anticipate paying any cash dividends on our common stock for the foreseeable future.

Unregistered Sales of Equity Securities

The information required to be disclosed by paragraph (a) of Item 5 to Form 10-K has been included in a current report on Form 8-K and, therefore, is not furnished herein, pursuant to the last sentence in that paragraph.

Purchases of Equity Securities by the Issuer and Affiliated Purchasers

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2021, 251,212 shares were repurchased under the 2020 Program at an average price of $18.01 per share for an aggregate total price of $4.5 million.

There were no purchases made by or on behalf of the Company or any “affiliated purchaser” (as the term is defined in Rule 10b-18(a)(3) under the Exchange Act) of our common stock during the fourth quarter ended December 31, 2021.

31

Item 6. Selected Financial Data

The following selected consolidated financial information has been derived from the audited consolidated financial statements. The information set forth below is not necessarily indicative of results of future operations and should be read in conjunction with Item 7. “Management’s Discussion and Analysis of Financial Condition and Results of Operations” and the consolidated financial statements and notes to those statements included therein and in Part II of this Form 10-K.

Year Ended December 31, 

    

2021 (1)

    

2020 (1)

    

2019

    

2018

    

2017

(In thousands, except per share amounts)

Consolidated Statements of Loss Data:

 

  

 

  

 

  

 

  

 

  

Total revenues

$

111,060

$

88,046

$

85,585

$

85,794

$

101,871

Costs and Expenses:

 

  

 

  

 

  

 

  

 

  

Costs of revenues

 

44,193

 

36,765

 

33,474

 

42,803

 

47,521

Research and development

 

43,780

 

34,654

 

32,747

 

27,998

 

30,078

Selling, general and administrative

 

37,649

 

32,677

 

26,299

 

23,934

 

23,684

Amortization of acquired intangible assets

 

1,255

 

741

 

609

 

435

 

398

Restructuring charges

 

 

 

92

 

576

 

Write-down in value of property and equipment

3,183

Interest and other expense (income), net

 

(683)

 

1,269

 

(276)

 

(493)

 

264

Loss before taxes

 

(18,317)

 

(18,060)

 

(7,360)

 

(9,459)

 

(74)

Income tax expense (benefit)

 

3,171

 

22,303

 

(1,942)

 

(1,743)

 

1,263

Net loss

$

(21,488)

$

(40,363)

$

(5,418)

$

(7,716)

$

(1,337)

Net loss per share:

 

  

 

  

 

  

 

  

 

  

Basic and Diluted

$

(0.58)

$

(1.17)

$

(0.17)

$

(0.24)

$

(0.04)

 

  

 

  

 

  

 

  

 

  

Weighted average common shares used to calculate net loss per share, basic and diluted

 

37,138

 

34,458

 

32,411

 

32,169

 

32,038

December 31, 

    

2021 (1)

    

2020 (1) (2)

    

2019

    

2018

    

2017

(In thousands)

Consolidated Balance Sheets Data:

 

  

 

  

 

  

 

  

 

  

Cash, cash equivalents and short-term investments

$

140,226

$

145,296

$

97,605

$

96,089

$

101,267

Working capital

 

144,681

 

151,175

 

119,580

 

137,693

 

144,263

Total assets

 

273,768

 

287,580

 

239,544

 

225,905

 

224,176

Long-term obligations

 

10,357

 

10,869

 

15,391

 

6,582

 

6,171

Total stockholders’ equity

 

219,585

 

234,506

 

196,157

 

199,795

 

198,368

(1)In December 2020, we completed the acquisition of Cimetrix Incorporated (“Cimetrix”). Payments made for this acquisition, net of cash acquired, amounted to $3.1 million and $28.6 million in fiscal 2021 and 2020, respectively, or total payments of $31.6 million, for all of the outstanding equity of Cimetrix. The Consolidated Statements of Comprehensive Loss Data for fiscal 2021 and 2020 also include results of operations of Cimetrix since acquisition date. For further information about this acquisition, see Note 4 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report).

(2)On July 29, 2020, we entered into a strategic partnership with Advantest, which includes, among others, a Securities Purchase Agreement wherein we issued and sold to Advantest America, Inc., an aggregate of 3,306,924 shares of our common stock, at a purchase price of $19.7085 per share, for aggregate gross proceeds of $65.2 million, on July 30, 2020.

32

Item 7.  Management’s Discussion and Analysis of Financial Condition and Results of Operations

Overview

We offer products and services designed to empower engineers and data scientists across the semiconductor ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products. We derive revenues from two sources: Analytics and Integrated Yield Ramp. Our offerings combine proprietary software, professional services using proven methodologies and third-party cloud-hosting platforms for SaaS, electrical measurement hardware tools, and physical IP for IC designs. We primarily monetize our offerings through license fees and contract fees for professional services and software as a service (or SaaS). In some cases, especially on our historical IYR engagements, we also receive a value-based variable fee or royalty, which we call Gainshare. Our products, services, and solutions have been sold to IDMs, fabless semiconductor companies, foundries, OSATs, capital equipment manufacturers, and system houses.

Industry Trend

The COVID-19 pandemic has significantly affected how we and our customers operate our businesses. For example, most U.S. states and countries worldwide imposed in 2020, and may continue to impose from time-to-time for the foreseeable future, restrictions on the physical movement of people to limit the spread of COVID-19, including travel restrictions and stay-at-home orders. As a result, during portions of 2021, many of our offices were temporarily shut down and our local employees were restricted from traveling to customer sites or visiting our other offices. We continue to closely monitor the COVID-19 situation and will reopen our corporate headquarters in the United States and other offices according to local restrictions, in each case, with a focus on our employees’ safety. In addition, our personnel worldwide continue to be subject to various country-to-country travel restrictions, which limits the ability of some employees to travel to other offices or customer sites. We believe the lack of an ability to meet in person during most of 2020 and 2021 made it harder for us to sell complex or new technologies to some customers during these periods. Once we can again begin to meet with these customers in person, we believe we may improve traction with them. To date, we have been able to provide uninterrupted access to our products and services due to our globally distributed workforce, many of whom were working remotely prior to the pandemic, and our pre-existing infrastructure, which supports secure access to our internal systems. The total duration and full extent of the impact from the COVID-19 pandemic depends on future developments that cannot be accurately predicted at this time, such as the ultimate severity and transmission rate of the virus and variants, the extent and effectiveness of containment actions and vaccinations, and the impact of these and other factors on our employees, customers, partners, and suppliers. To date, one effect of the COVID-19 pandemic is a global shortage in semiconductors due primarily to supply chain disruptions and many companies, including automotive industry, have announced shortages in production. Although this shortage has not materially affected our business, this trend may affect our future business opportunities, particularly future Gainshare and Cimetrix run-time licenses, if our customers’ production volumes decrease.

Certain other trends may affect our Analytics revenue specifically. In particular, the confluence of Industry 4.0 (i.e. the fourth industrial revolution, or the automation and data exchange in manufacturing technologies and processes) and cloud computing (i.e. the on-demand availability of computing resources and data storage without direct active management by the user) is driving increased innovation in semiconductor and electronics manufacturing and analytics, as well as in the organization of IT networks and computing at semiconductor and electronics companies across the ecosystem. First, the ubiquity of wireless connectivity and sensor technology enables any manufacturing company to augment its factories and visualize its entire production line. In parallel, the cost per terabyte of data storage has continually decreased year to year. The combination of these two trends means that more data is collected and stored than ever before. Further, semiconductor companies are striving to analyze these very large data sets in real-time to make rapid decisions that measurably improve manufacturing efficiency and quality. In parallel, the traditional practice of on-site data storage, even for highly sensitive data, is changing. The ability to cost-effectively and securely store, analyze, and retrieve massive quantities of data from the cloud versus on-premise enables data to be utilized across a much broader population of users, frequently resulting in greater demands on analytics programs. The combination of these latter two trends means that cloud-based, analytic programs that effectively manage identity management, physical security, and data protection are increasingly in demand for insights and efficiencies across the organizations of these companies. We believe that all these trends will continue for the next few years, and the challenges involved in adopting Industry 4.0 and secure cloud

33

computing will create opportunities for our combination of advanced analytics capabilities, proven and established supporting infrastructure, and professional services to configure our products to meet customers’ specialized needs.

Other trends may continue to affect our characterization services business and Integrated Yield Ramp revenue specifically. The logic foundry market at the leading edge nodes, such as 10nm, 7nm, and smaller, underwent significant change over the past few years. The leading foundry continues to dominate market share as other foundries started later than originally forecast in some cases. This trend will likely continue to impact our characterization services business and Integrated Yield Ramp business on these nodes. We expect most logic foundries to invest in derivatives of older process nodes, such as 28nm and 14nm, to extract additional value as many of their customers will not move to advanced nodes due to either technological barriers or restrictive economics. Foundries that participate at leading edge nodes are expected to continue to invest in new technologies such as memory, packaging, and multi-patterned and EUV lithography, as well as new innovations in process control and variability management. We expect China’s investment in semiconductors to continue. In order for these trends to provide opportunities for us to increase our business leveraging electrical characterization, Chinese semiconductors manufacturers will need to increase their production volumes on advanced technology nodes and continue to engage foreign suppliers, subject to compliance with changing U.S. export restrictions. As a result of these market developments, we have chosen to focus our resources and investments in products, services, and solutions for analytics.

There are other business trends that may affect our business opportunities generally. For instance, the demand for consumer electronics, communications devices, and high-performance computing continues to drive technological innovation in the semiconductor industry as the need for products with greater performance, lower power consumption, reduced costs, and smaller size continues to grow with each new product generation. In addition, advances in computing systems and mobile devices continue to fuel demand for higher capacity memory chips. To meet these demands, IC manufacturers and designers are constantly challenged to improve the overall performance of their ICs by designing and manufacturing ICs with more embedded applications to create greater functionality while lowering power and cost per transistor. As this trend continues, companies will continually be challenged to improve process capabilities to optimally produce ICs with minimal random and systematic yield loss, which is driven by the lack of compatibility between the design and its respective manufacturing process. We believe that these difficulties will continue to create a need for our products and services that address yield loss across the IC product life cycle.

The U.S. government continues to expand and intensify export controls and sanctions, including the addition of many P.R.C. companies to the U.S. Export Administration Regulations (“EAR”) Entity List. These listings restrict supply to designees of items that are subject to the EAR. After an internal evaluation, we determined that a large percentage of our software products are not of U.S. origin and are, thus, not subject to the EAR. Our standard operations include development, distribution processes, software download sites, and professional service centers and processes located in various geographies around the world to better serve our customers. Some customers have nonetheless expressed concerns to us that continued action by the U.S. government could potentially interrupt their ability to make use of our products or services. The continuing tension between the U.S. and P.R.C. governments in trade and security matters or the perception of that tension could lead to disruptions or reductions in international trade, deter or prevent purchasing activity of customers, and negatively impact our China sales and financial results.

Cimetrix Acquisition

On December 1, 2020, we completed the acquisition of Cimetrix for approximately $31.6 million in cash consideration, net of cash on Cimetrix’s balance sheet as of closing, and other closing adjustments, for all of the outstanding equity of Cimetrix. The combination of Cimetrix connectivity products with our Exensio platform, which leverages machine learning, is intended to enable IC, assembly, and equipment manufacturer customers to extract more intelligence from their tools, not just data, to build more reliable chips and systems at lower manufacturing costs. We accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. For further information about this acquisition, see Note 4 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report).

34

Financial Highlights

The following are our financial highlights for the year ended December 31, 2021:

Total revenues were $111.1 million, an increase of $23.0 million, or 26%, compared to the year ended December 31, 2020. Analytics revenue was $93.4 million, an increase of $36.2 million, or 63%, compared to the year ended December 31, 2020. The increase in Analytics revenue was primarily driven by a $30.1 million increase in revenue, of which a substantial amount was from Cimetrix due to full year included results post acquisition and remainder was from Exensio software licenses due to higher demand from customers, and a $6.1 million increase in revenue from CV systems due to higher hours for characterization services worked across multiple contracts and customers. Integrated Yield Ramp revenue decreased $13.2 million, or 43%, compared to the year ended December 31, 2020, primarily due to a decrease in Gainshare royalty from certain customers due to the end of Gainshare periods on certain contracts and lower hours worked on other contracts.
Costs of revenues increased $7.4 million for the year ended December 31, 2021, compared to the year ended December 31, 2020, primarily due to increased personnel-related costs due to higher headcount resulting from the acquisition of Cimetrix, cloud-delivery costs, software licenses costs, and amortization of acquired intangible assets. These increases were partially offset by decreases in facilities and information technology-related costs and due to the timing of deferral of contract costs.
Net loss was $21.5 million, compared to $40.4 million for the year ended December 31, 2020. The decrease in net loss was primarily attributable to increases in total revenues and other income, and a $19.1 million decrease in income tax expense, partially offset by increases in costs of revenues and operating expenses. Our income tax expense in fiscal 2020 was higher due primarily to the recognition of a full valuation allowance against our U.S. net deferred tax assets. Increases in operating expenses were related primarily to our research and development, sales and marketing activities, general and administrative expenses primarily due to increase in personnel-related costs due primarily to higher headcount as a result of the Cimetrix acquisition, subcontractor costs, facilities and information technology-related costs, fees for legal services for the arbitration proceeding over a disputed customer contract, amortization expense of acquired intangible assets, and a write-down in value of property and equipment.
Cash, cash equivalents and short-term investments decreased $5.1 million to $140.2 million at December 31, 2021, from $145.3 million at December 31, 2020, primarily due to repurchases of common stock, cash used to purchase property and equipment, payment for taxes related to net share settlement of equity awards, payment of the holdback amount to Cimetrix shareholders, partially offset by cash provided by operating activities and proceeds from the exercise of stock options and proceeds from purchases under our employee stock purchase plans.

Critical Accounting Policies and Estimates

The preparation of financial statements and related disclosures in conformity with accounting principles generally accepted in the United States requires us to make judgments, assumptions, and estimates that affect the amounts reported in the Consolidated Financial Statements and accompanying notes. Notes 1 and 2 of Notes to Consolidated Financial Statements describe the significant accounting policies and methods used in the preparation of the Consolidated Financial Statements. We consider the accounting policies described below to be our critical accounting policies. These critical accounting policies are impacted significantly by judgments, assumptions, and estimates used in the preparation of the Consolidated Financial Statements and actual results could differ materially from the amounts reported based on these policies.

35

Revenue Recognition

We derive revenue from two sources: Analytics and Integrated Yield Ramp.

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone Software (which consists primarily of Exensio and Cimetrix products), SaaS (which consists primarily of Exensio products), and DFI and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is distinct from the services offered by us. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”) attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without taking possession of software, is accounted for as subscriptions and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, we allocate revenue to all deliverables based on their SSPs. For these contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from our yield ramp engagements that include Gainshare or other performance incentives based on customers’ yield achievement.

Revenue under these project–based contracts, which are delivered over a specific period of time typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, we allocate revenue to all deliverables based on their SSPs and allocate the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment.

The Gainshare royalty contained in yield ramp contracts is a variable fee related to continued usage of our IP after the fixed-fee service period ends, based on the customers’ yield achievement. Revenue derived from Gainshare is contingent

36

upon our customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. We record Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and record it in the same period in which the usage occurs.

Income Taxes

We are required to assess whether it is “more-likely-than-not” that we will realize our deferred tax assets. If we believe that they are not likely to be fully realizable before the expiration dates applicable to such assets, then to the extent we believe that recovery is not likely, we must establish a valuation allowance. Based on all available evidence, both positive and negative, we determined a full valuation allowance was still appropriate for our U.S. federal and state net deferred tax assets (“DTAs”), primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2021, and the likelihood that we may not utilize tax attributes before they expire. The valuation allowance was approximately $51.6 million and $41.9 million as of December 31, 2021 and 2020, respectively. We will continue to evaluate the need for a valuation allowance and may change our conclusion in a future period based on changes in facts (e.g., 12-quarter cumulative profit, significant new revenue, etc.). If we conclude that we are more likely than not to utilize some or all of our U.S. DTAs, we will release some or all of our valuation allowance and our tax provision will decrease in the period in which we make such determination.

We evaluate our DTAs for realizability considering both positive and negative evidence, including our historical financial performance, projections of future taxable income, future reversals of existing taxable temporary differences, tax planning strategies and any carryback availability. In evaluating the need for a valuation allowance, we estimate future taxable income based on management approved business plans. This process involves significant management judgment about assumptions that are subject to change from period to period based on changes in tax laws or variances between future projected operating performance and actual results. Changes in the net DTAs, less offsetting valuation allowance, in a period are recorded through the income tax provision and could have a material impact on the Consolidated Statements of Comprehensive Loss.

Our income tax calculations are based on application of applicable U.S. federal, state, or foreign tax law. Our tax filings, however, are subject to audit by the respective tax authorities. Accordingly, we recognize tax liabilities based upon our estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different than the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Loss. At December 31, 2021, no deferred taxes have been provided on undistributed earnings from our international subsidiaries. We intend to reinvest the earnings of our non-U.S. subsidiaries in those operations indefinitely. As such, we have not provided for any foreign withholding taxes on the earnings of foreign subsidiaries as of December 31, 2021. The earnings of our foreign subsidiaries are taxable in the U.S. in the year earned under the Global Intangible Low-Taxed Income rules implemented under 2017 Tax Cuts and Jobs Act.

On March 11, 2021, the American Rescue Plan Act of 2021 (“American Rescue Plan”) was signed into law to provide additional relief in connection with the ongoing COVID-19 pandemic. The American Rescue Plan includes, among other things, provisions relating to Paycheck Protection Program (PPP) loan expansion, defined pension contributions, excessive employee remuneration, and the repeal of the election to allocate interest expense on a worldwide basis. Under ASC 740 the effects of new legislation are recognized upon enactment. Accordingly, the American Rescue Plan became effective beginning in the quarter ended March 31, 2021. Such provisions did not have a material impact on the Company’s consolidated financial statements.

Software Development Costs

Internally developed software is software developed to meet our internal needs to provide certain services to our customers. Our capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, which is generally five to six years. The costs to develop software that is marketed externally have not been capitalized as we believe our current software development process is essentially completed concurrent with the establishment of technological feasibility. As

37

such, all related software development costs are expensed as incurred and included in research and development expense in our Consolidated Statements of Comprehensive Loss.

Stock-Based Compensation

We account for stock-based compensation using the fair value method, which requires us to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of our restricted stock units is equal to the market value of our common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of our stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of our common stock over the most recent period commensurate with the estimated expected life of our stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of our stock options.

Business Combinations

We allocate the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require us to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. The estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects our amortization expense, as acquired finite-lived intangible assets are amortized over the useful life, whereas any indefinite lived intangible assets, including IPR&D and goodwill, are not amortized. During the measurement period, which is not to exceed one year from the acquisition date, we record adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings in the Consolidated Statements of Comprehensive Loss.

As part of a prior acquisition, we recorded at the time of the acquisition acquired IPR&D for a project in progress that had not yet reached technological feasibility. Acquired IPR&D is initially accounted for as an indefinite-lived intangible asset and tested annually for impairment. Once the acquired IP R&D asset becomes available for use, it will be amortized over the estimated useful life or will be written off upon abandonment. 

Valuation of Long-lived Assets including Goodwill and Intangible Assets

We record goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. We have one operating segment and one operating unit. We perform an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill. There was no impairment of goodwill for the year ended December 31, 2021 and 2020.

38

Our long-lived assets, excluding goodwill, consist of property, equipment, and intangible assets. We periodically review our long-lived assets for impairment. For assets to be held and used, we initiate our review whenever events or changes in circumstances indicate that the carrying amount of a long-lived asset group may not be recoverable. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value. There was no impairment of intangible assets for the year ended December 31, 2021 and 2020. In fiscal 2021, we wrote down the value of property and equipment aggregating $3.2 million pertaining to our first-generation of e-beam tools for DFI™ systems where carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.

Leases

We have operating leases for our administrative and sales offices, research and development laboratory and clean room. We recognize our long-term operating lease rights and commitments as operating lease right-of-use assets, operating lease liabilities and operating lease liabilities, non-current, respectively, on our Consolidated Balance Sheets.

We determine if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on our Consolidated Balance Sheets. In addition, our leases do not provide an implicit rate. In determining the present value of our expected lease payments, the discount rate is calculated using our incremental borrowing rate determined based on the information available, which requires additional judgment.

Recent Accounting Pronouncements and Accounting Changes

See our Note 1, “Description of Business and Summary of Significant Accounting Policies” of “Notes to Consolidated Financial Statements” included under Part II, Item 8 of this Form 10-K for a description of recent accounting pronouncements and accounting changes, including the expected dates of adoption and estimated effects, if any, on our consolidated financial statements.

Results of Operations

Discussion of Financial Data for the years ended December 31, 2021 and 2020

Revenues, Costs of Revenues, and Gross Margin

    

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

2021

    

2020

    

2020 to 2021

 

Revenues:

  

 

  

 

  

 

  

Analytics

$

93,415

$

57,232

$

36,183

 

63

%

Integrated Yield Ramp

 

17,645

 

30,814

 

(13,169)

 

(43)

%

Total revenues

$

111,060

$

88,046

$

23,014

 

26

%

Costs of revenues

 

44,193

 

36,765

 

7,428

 

20

%

Gross profit

$

66,867

$

51,281

$

15,586

 

30

%

Gross margin

 

60

%  

 

58

%  

 

  

 

  

Analytics revenue as a percentage of total revenues

 

84

%  

 

65

%  

 

  

 

  

Integrated Yield Ramp revenue as a percentage of total revenues

 

16

%  

 

35

%  

39

Analytics Revenue

Analytics revenue was $93.4 million, an increase of $36.2 million, or 63%, compared to the year ended December 31, 2020. The increase in Analytics revenue was primarily driven by a $30.1 million increase in revenue, of which a substantial amount was from Cimetrix due to full year included results post acquisition and remainder was from Exensio software licenses due to higher demand from customers, and a $6.1 million increase in revenue from CV systems due to higher hours worked across multiple contracts and customers.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue was $17.6 million for the year ended December 31, 2021, a decrease of $13.2 million, compared to the year ended December 31, 2020, primarily due to a decrease in Gainshare royalty due to the end of Gainshare periods from certain contracts and lower hours worked on other contracts. Our Integrated Yield Ramp revenue may continue to fluctuate from period to period primarily due to the contribution of Gainshare royalty, which is dependent on many factors that are outside our control, including among others, continued production of ICs by our customers at facilities at which we generate Gainshare, sustained yield improvements by our customers, and whether we enter into new contracts containing Gainshare.

Our revenues may also fluctuate in the future due to other factors, including the semiconductor industry’s continued acceptance of our products, services and solutions, the timing of purchases by existing and new customers, cancellations by existing customers, our ability to attract new customers and penetrate new markets, supply chain challenges and further penetration of our current customer base. Fluctuations in future results may also occur if any of our significant customers renegotiate pre-existing contractual commitments, including due to adverse changes in their own business.

Costs of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, and amortization of acquired technology. Services costs include material, employee compensation and related benefits including stock-based compensation expense, subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by us in providing services to our customers in solution engagements or sold in conjunction with our software products.

The increase in costs of revenues of $7.4 million for the year ended December 31, 2021, compared to the year ended December 31, 2020, was primarily due to (i) a $5.6 million increase in personnel-related costs due to higher headcount as a result of the Cimetrix acquisition, higher benefit costs, and merit increases, partially offset by a decrease in stock-based compensation expense, (ii) a $2.2 million increase in third-party cloud-delivery costs, software licenses costs, and hardware costs, and (iii) a $1.4 million increase in amortization of acquired intangible assets. These were partially offset by (i) a $1.0 million decrease in facilities and information technology-related costs including depreciation expense, (ii) a $0.4 million decrease due to the timing of deferral of contract costs, and (iii) a $0.3 million decrease in other expenses.

Gross Margin

Gross margin for the year ended December 31, 2021, was 60% compared to 58% for the year-ago period, or an increase of 2%. The higher gross margin during year ended December 31, 2021, was primarily due to higher total revenue growth and decreases in certain costs of revenues, as discussed above, which decreased the costs of revenues as a percentage of total revenues, when compared to the year-ago period.

40

Operating Expenses:

Research and Development

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

    

2021

    

2020

    

2020 to 2021

 

Research and development

$

43,780

$

34,654

$

9,126

 

26

%

As a percentage of total revenues

 

39

%  

 

39

%  

 

  

 

  

Research and development expenses consist primarily of personnel-related costs including compensation, benefits and stock-based compensation expense, outside development services, travel, third-party cloud-services related costs, and facilities cost allocations to support product development activities.

Research and development expenses increased 26% for the year ended December 31, 2021, compared to the year-ago period, primarily due to (i) a $6.6 million increase in personnel-related costs due to higher headcount as a result of the Cimetrix acquisition, higher benefit costs, merit increases and higher stock-based compensation expense, (ii) a $2.6 million increase in subcontractor expenses primarily related to our characterization services and Exensio and Cimetrix software, (iii) a $0.4 million increase in third-party cloud-services related costs, and (iv) a $0.3 million increase in facilities and information technology-related costs. These were partially offset by (i) a $0.4 million decrease in software maintenance expense and (ii) a $0.4 million decrease in various other expenses.

We anticipate our expenses in research and development will fluctuate in absolute dollars from period to period as a result of the size and the timing of product development projects.

Selling, General and Administrative

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

    

2021

    

2020

    

2020 to 2021

 

Selling, general and administrative

$

37,649

$

32,677

$

4,972

 

15

%

As a percentage of total revenues

 

34

%  

 

37

%  

 

  

 

  

Selling, general and administrative expenses consist primarily of compensation, benefits and stock-based compensation expense for sales, marketing and general and administrative personnel, legal and accounting services, marketing communications expenses, third-party cloud-services related costs, travel and facilities cost allocations.

Selling, general, and administrative expenses increased 15% for the year ended December 31, 2021, compared to the year-ago period, primarily due to (i) a $4.1 million increase in personnel-related costs due to higher headcount as a result of the Cimetrix acquisition, higher benefit costs, merit increases and higher stock-based compensation expense, (ii) a $1.5 million increase in facilities and information technology-related costs including rent and depreciation expense, (iii) a $0.9 million increase in legal fees related to the arbitration proceeding over a disputed customer contract, and (iv) a $0.5 million increase in third-party cloud-services related costs. These were partially offset by (i) a $1.5 million decrease in acquisition related costs, and (ii) a $0.6 million decrease in general legal expenses.

We anticipate our selling, general and administrative expenses will fluctuate in absolute dollars from period to period as a result of cost control initiatives and to support increased selling efforts in the future.

41

Amortization of acquired intangible assets

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

    

2021

    

2020

    

2020 to 2021

 

Amortization of acquired intangible assets

$

1,255

$

741

$

514

 

69

%

Amortization of acquired intangible assets consists of amortization of intangibles acquired as a result of certain business combinations. The increase in amortization of acquired intangible assets for the year ended December 31, 2021, compared to the year ended December 31, 2020, was primarily related to amortization of acquired intangible assets in the acquisition of Cimetrix.

Write-down in value of property and equipment

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

    

2021

    

2020

    

2020 to 2021

 

Write-down in value of property and equipment

$

3,183

$

$

3,183

 

100

%

In fiscal 2021, we wrote down the value of property and equipment aggregating $3.2 million pertaining to our first-generation of e-beam tools for DFI™ systems where carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.

Interest and Other Expense (Income), Net

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

    

2021

    

2020

    

2020 to 2021

 

Interest and other expense (income), net

$

(683)

$

1,269

$

(1,952)

 

(154)

%

Interest and other expense (income), net primarily consists of interest income, gains, and losses from foreign currency forward contracts, and foreign currency transaction exchange gains and losses.

Interest and other expense (income), net resulted in income for the year ended December 31, 2021, compared to a loss in the year-ago period, primarily due to higher net favorable fluctuations in foreign exchange rates, and a decrease in loss related to foreign currency forward contracts, partially offset by a decrease in interest income due to lower interest rates and a decrease in other income.

Income Tax Expense

 

Year Ended December 31, 

$ Change

% Change

(Dollars in thousands)

    

2021

    

2020

    

2020 to 2021

 

Income tax expense

$

3,171

$

22,303

$

(19,132)

 

(86)

%

Income tax expense decreased for the year ended December 31, 2021, compared to the year-ago period. Our income tax expense in fiscal 2020 was significantly higher due primarily to the recognition of a full valuation allowance against our U.S. net deferred tax assets due to the uncertainty of the ultimate realization of the future benefits of such deferred tax assets.

Any significant change in our future effective tax rates could adversely impact our consolidated financial position, results of operations and cash flows. Our future tax rates may be adversely affected by a number of factors including increase in expenses not deductible for tax purposes, tax legislations in the United States and in foreign countries where we are subject to tax jurisdictions, the geographic composition of our pre-tax income, the amount of our pre-tax income as business activities fluctuate, our ability to use tax attributes such as research and development tax credits and net operation losses, the tax effects of employee stock activity, audit examinations with adverse outcomes, changes in general accepted accounting principles and the effectiveness of our tax planning strategies.

42

Discussion of Financial Data for the years ended December 31, 2020 and 2019

For a discussion of our results of operations for the years ended December 31, 2020 and 2019, please see our Annual Report on Form 10-K for the year ended December 31, 2020, filed with the SEC on March 11, 2021.

Liquidity and Capital Resources

As of December 31, 2021, our working capital, defined as total current assets less total current liabilities, was $144.7 million, compared to $151.2 million as of December 31, 2020. Cash, cash equivalents and short-term investments, on a consolidated basis, were $140.2 million as of December 31, 2021, compared to $145.3 million as of December 31, 2020. As of December 31, 2021 and 2020, cash and cash equivalents held by our foreign subsidiaries were $5.3 million and $4.0 million, respectively. We believe that our existing cash resources and anticipated funds from operations will satisfy our cash requirements to fund our operating activities, capital expenditures, and other obligations, for at least the next twelve months.

There has been no significant impact to our liquidity and capital resources from the global COVID-19 pandemic. For risk discussion about the continuing impact of global COVID-19 pandemic on our operations or demand for our products, refer to Item 1A, Risk Factors on Part I of this Annual Report.

Cimetrix Acquisition

On December 1, 2020, the Company completed the acquisition of Cimetrix with total payments made in fiscal 2021 and 2020 of $31.6 million, net of cash acquired. The net cash payment for this acquisition which also include the settlement of adjusted Holdback Amount, as discussed below, was funded from the available cash of the Company.  

In 2020, the Company held back $3.5 million of the purchase price (the “Holdback Amount”) to satisfy adjustments and claims for indemnity arising out of breaches of certain representations, warranties and covenants, and certain other enumerated items in the merger agreement.  The Holdback Amount was recorded under accrued and other current liabilities account and the corresponding restricted cash was included in the “Prepaid expenses and other current assets” account in the 2020 Consolidated Balance Sheet. During 2021, the Company recorded a measurement period adjustment that reduced the Holdback Amount to $3.1 million. The measurement period adjustment did not have an impact on the Company’s Consolidated Statement of Comprehensive Loss during the year ended December 31, 2021. The Holdback Amount, as adjusted, was paid to the participating equity holders in December 2021. See Note 4 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report) for further discussion.

Repurchase of Company’s Common Stock

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2021, 251,212 shares were repurchased under the 2020 Program at an average price of $18.01 per share, for a total price of $4.5 million under the 2020 Program.

43

Consolidated Statements of Cash Flows Data

Year Ended December 31, 

$ Change

    

2021

    

2020

    

2020 to 2021

(In thousands)

 

  

 

  

 

  

Net cash flows provided by (used in):

 

  

 

  

 

  

Operating activities

$

4,243

$

21,783

$

(17,540)

Investing activities

 

(4,667)

 

(150,502)

 

145,835

Financing activities

 

(5,525)

 

64,798

 

(70,323)

Effect of exchange rate changes on cash and cash equivalents

 

(182)

 

131

 

(313)

Net decrease in cash, cash equivalents, and restricted cash

$

(6,131)

$

(63,790)

$

57,659

Net Cash Provided by Operating Activities

Cash flow from operating activities during 2021 mostly consisted of net loss from operations, adjusted for certain non-cash items, which primarily consisted of depreciation and amortization, share-based compensation expense, write-down in value of property and equipment, changes in deferred tax assets, and changes in operating assets and liabilities.

Cash generated from operating activities decreased by $17.5 million for the year ended December 31, 2021, compared to the year ended December 31, 2020, driven primarily by (i) a $21.6 million increase in net change in operating assets and liabilities, (ii) a $14.8 million decrease in non-cash adjustments to net loss, primarily due to a decrease in changes of deferred taxes of $19.6 million, an increase in write-down in value of property and equipment of $2.7 million, and an increase in amortization of acquired intangible assets of $1.9 million. These increases were partially offset by an $18.9 million decrease in net loss.

The major contributors to the net change in operating assets and liabilities for the year ended December 31, 2021, were as follows:

Accounts receivable increased by $6.0 million, primarily due to an increase in sales and higher contractual invoicing activity during the fourth quarter of 2021;
Prepaid expense and other current assets decreased by $1.1 million, primarily due to the timing of billing of contract assets related to fixed-price service contracts, and a decrease in income tax receivables, partially offset by an increase in prepaid expenses related to third party software licenses and cloud-subscription related costs;

Other non-current assets increased by $1.3 million, primarily due to an increase in capitalized direct sales commission costs and prepaid expenses related to third party software licenses and cloud-subscription related costs;

Accrued compensation and related benefits increased by $1.3 million, primarily due to the timing of payments of accrued bonuses, accrued sales commissions and accrued payroll taxes, and an increase in contributions to employee stock purchase plans, partially offset by a decreased in accrued vacation;
Deferred revenues increased by $5.0 million primarily due to timing of billing and revenue recognition, and

Billings in excess of recognized revenues decreased by $1.3 million, primarily due to the timing of billing and revenue recognition.

44

Net Cash Used in Investing Activities

Net cash used in investing activities in the year ended December 31, 2021, decreased by $145.8 million compared to the year ended December 31, 2020.

For the year ended December 31, 2021, cash used in investing activities primarily related to (i) purchases of $168.6 million short-term investments, (ii) a $3.1 million payment of the Holdback Amount related to the acquisition of Cimetrix, (refer to above discussion on Cimetrix Acquisition for further details), and (iii) a $4.1 million equipment purchased and prepayment property and equipment, primarily related to our DFI systems, including construction of additional second-generation eProbe tools, partially offset by $171.0 million proceeds from maturities of short-term investments.

For the year ended December 31, 2020, cash used in investing activities primarily related to (i) purchases of $131.5 million short-term investments, (ii) a $28.6 million payment for the acquisition of Cimetrix, and (iii) a $7.0 million for equipment purchased and prepayment property and equipment, primarily related to our DFI systems, including construction of additional second-generation eProbe tools, partially offset by $16.5 million proceeds from maturities of short-term investments.

Net Cash Provided by (Used in) Financing Activities

Net cash used in financing activities was $5.5 million for the year ended December 31, 2021, compared to net cash provided by financing activities of $64.8 million for the year ended December 31, 2020.

For the year ended December 31, 2021, net cash used in financing activities primarily consisted of $4.5 million for the repurchase of shares of our common stock and $4.0 million in cash payments for taxes related to net share settlement of equity awards, partially offset by $3.0 million of proceeds from purchases under our employee stock purchase plans and the exercise of stock options.

For the year ended December 31, 2020, net cash provided by financing activities primarily consisted of $65.1 million net proceeds from the issuance of common stock in connection with the Securities Purchase Agreement with Advantest, and $4.2 million of proceeds from purchases under our employee stock purchase plan and the exercise of stock options, partially offset by $4.5 million in cash payments for taxes related to net share settlement of equity awards.

Related Party Transactions

Refer to Note 3, Strategic Partnership Agreement with Advantest and Related Party Transactions of the Notes to Consolidated Financial Statements (Item 8 of Part II of this Annual Report) for a discussion on related party transactions between the Company and Advantest.

Off-Balance Sheet Arrangements

We do not have any off-balance sheet arrangements, investments in special purpose entities or undisclosed borrowings or debt.

45

Contractual Obligations

The following table summarizes our known contractual obligations as of December 31, 2021 (in thousands):

Payments Due by Period

2027 and

Contractual Obligations

    

2022

    

2023

    

2024

    

2025

    

2026

    

thereafter

    

Total

Operating lease obligations (1)

$

1,825

$

1,217

$

807

$

823

$

789

$

1,365

$

6,826

Purchase obligations (2)

 

7,448

824

320

321

 

8,913

Total (3)

$

9,273

$

2,041

$

1,127

$

1,144

$

789

$

1,365

$

15,739

(1)Refer to Note 7 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report) for further discussion.
(2)Purchase obligations consist of agreements to purchase goods and services entered in the ordinary course of business.
(3)The contractual obligation table above excludes liabilities for uncertain tax positions of $2.6 million, which are not practicable to assign to any particular years due to the inherent uncertainty of the tax positions. See Note 11 of “Notes to Consolidated Financial Statements” (Item 8 of Part II of this Annual Report) for further discussion.

Item 7A.  Quantitative and Qualitative Disclosures About Market Risk

The following discusses our exposure to market risk related to changes in interest rates and foreign currency exchange rates. We do not currently own any equity investments, nor do we expect to own any in the foreseeable future. This discussion contains forward-looking statements that are subject to risks and uncertainties. Actual results could vary materially as a result of a number of factors.

Interest Rate Risk.  As of December 31, 2021, we had cash and cash equivalents and short-term investments of $140.2 million. Cash and cash equivalents consisted of cash and highly liquid money market instruments and short-term investments consisted of U.S. Government securities. We would not expect our operating results or cash flows to be affected to any significant degree by the effect of a sudden change in market interest on our portfolio. A hypothetical increase in market interest rates of 100 basis points from the market rates in effect at December 31, 2021, would cause the fair value of these investments to decrease by an immaterial amount which would not have significantly impacted our financial position or results of operations.

At December 31, 2021 and periodically throughout the year, we have maintained cash balances in various operating accounts in excess of federally insured limits. We limit the amount of credit exposure to any financial institution by evaluating the creditworthiness of the financial institutions with which we invest and investing through more than one financial institution.

Foreign Currency and Exchange Risk. Certain of our receivables and payables for our international offices are denominated in the local currency, including the Euro, Yen and RMB. Therefore, a portion of our revenues and operating expenditures are subject to foreign currency risks. From time to time, we enter into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. We do not use foreign currency forward contracts for speculative or trading purposes. We record these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that we believe is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. The change in fair value of these contracts is recorded into earnings as a component of other income (expense), net and offsets the change in fair value of foreign currency denominated monetary assets and liabilities, which is also recorded in other income (expense), net. As of December 31, 2021, we had no outstanding forward contracts.

46

Item 8.  Financial Statements and Supplementary Data

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

To the Board of Directors and Stockholders of

PDF Solutions, Inc.

Opinion on the Consolidated Financial Statements

We have audited the accompanying consolidated balance sheets of PDF Solutions, Inc. (a Delaware corporation) and its subsidiaries (the “Company”) as of December 31, 2021 and 2020, and the related consolidated statements of comprehensive loss, stockholders’ equity, and cash flows for each of the years in the two-year period ended December 31, 2021, and the related notes (collectively referred to as 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 December 31, 2021 and 2020, and the results of its operations and its cash flows for each of the two years in the period ended December 31, 2021, in conformity with accounting principles generally accepted in the United States of America.

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 December 31, 2021, based on criteria established in Internal Control—Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (“COSO”), and our report dated March 1, 2022, expressed an unqualified opinion.

Basis for Opinion

These consolidated financial statements are the responsibility of the Company’s management. Our responsibility is to express an opinion on the Company’s 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.

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 critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.

Revenue Recognition

As described in Note 2 to the consolidated financial statements, the Company derives revenue from Analytics and Integrated Yield Ramp Revenue. Contracts with customers can include various combinations of licenses, subscriptions, products and services, some of which are distinct and are accounted for as separate performance obligations. Significant judgment is exercised by the Company in determining revenue recognition for customer agreements, including determining whether licenses, subscriptions, and services are distinct performance obligations, determining the standalone selling price (or SSP) attributed to each performance obligation, establishing the pattern of delivery for each distinct performance

47

obligation, and estimating variable consideration when determining the amount of revenue to recognize. In addition, for revenue under project-based contracts for fixed-price services, revenue is recognized as services are performed using a percentage-of-completion (or POC) method based on costs or labor-hours input method. Estimated costs to complete each contract are based on i) future labor and product costs and ii) expected productivity efficiencies. Changes in these estimates can have a material effect on revenue recognized and/or related cost. Finally, the Company recognized Gainshare royalty revenue in the same period in which the usage occurs. The Company accrues the related revenue based on estimates of customers’ underlying sales achievements. These estimates are based on historical data, trends, seasonality, changes in contract rate, knowledge of changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel.

The principal audit considerations for our determination that performing procedures related to the Company’s revenue recognition for customer agreements is a critical audit matter are the significant amount of judgment required by management in this process. Significant judgment is required in determining SSP as the Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation, which in turn led to significant auditor judgment, subjectivity and effort in performing audit procedures in assessing the allocation of SSPs to performance obligations. In addition, significant judgment is required in determining the total estimated contract costs for fixed-price contracts, which in turn led to significant auditor judgment, subjectivity, and effort in performing audit procedures and in evaluating audit evidence relating the total estimated contract costs. Significant judgment is also required in recording Gainshare royalty revenue in the same period in which the usage occurs. The Company generally does not receive the acknowledgment reports from customers during a given quarter, so the Company is required to accrue the related revenue based on estimates of customers underlying sales achievement, which in turn led to significant auditor judgment, subjectivity, and effort in evaluating the reasonableness of these estimates based on historical data, trends, seasonality and other factors.

Addressing the matter involved performing procedures and evaluating audit evidence in connection with forming our overall opinion on the consolidated financial statements. These procedures included testing the effectiveness of internal controls relating to the revenue recognition process, including internal controls related to (1) the identification of distinct performance obligations and data used to establish SSP for licenses, subscriptions, products and services, (2) project estimates to completion for fixed fee arrangements accounted for under POC and (3) estimates of Gainshare royalty revenue accrual and subsequent true-ups. These procedures also included, among others, evaluating management’s significant accounting policies related to these customer agreements for reasonableness. In addition, for a sample of customer agreements, we obtained and read contract source documents, including master agreements and other documents that were part of the agreement, tested management’s identification of significant terms for completeness, including the identification of distinct performance obligations and variable consideration, assessed the terms in the customer agreements and evaluated the appropriateness of management’s application of their accounting policies, along with their use of estimates, in the determination of revenue recognition conclusions, and tested the mathematical accuracy of management’s calculations of revenue and the associated timing of revenue recognized in the consolidated financial statements. In addition, we evaluated the reasonableness of management’s estimates of SSP for projects and services that are not sold separately, where applicable, costs to complete for project-based contracts for fixed-price services and customers’ underlying achievements for royalty revenue.

/s/ BPM LLP

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

San Jose, CA

March 1, 2022

48

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

To the Board of Directors and Stockholders of

PDF Solutions, Inc.

Opinion on Internal Control over Financial Reporting

We have audited the internal control over financial reporting of PDF Solutions, Inc. (a Delaware corporation) and its subsidiaries (the “Company”) as of December 31, 2021, based on criteria established in Internal Control—Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (“COSO”). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December 31, 2021, based on criteria established in Internal Control—Integrated Framework (2013) issued by COSO.

We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (“PCAOB”), the consolidated balance sheets as of December 31, 2021 and 2020 and the related consolidated statements of comprehensive loss, stockholders’ equity, and cash flows for each of the two years in the period ended December 31, 2021 and the related notes (collectively referred to as the “consolidated financial statements”) of the Company, and our report dated March 1, 2022, 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 Assessment of Internal Controls Over Financial Reporting. 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.

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.

/s/ BPM LLP

San Jose, California

March 1, 2022

49

PDF SOLUTIONS, INC.

CONSOLIDATED BALANCE SHEETS

(in thousands, except par values)

December 31, 

    

2021

    

2020

ASSETS

 

  

 

  

Current assets:

 

  

 

  

Cash and cash equivalents

$

27,684

$

30,315

Short-term investments

 

112,542

 

114,981

Accounts receivable, net of allowance for doubtful accounts of $890 and $963 in 2021 and 2020, respectively

 

40,087

 

34,140

Prepaid expenses and other current assets

 

8,194

 

13,944

Total current assets

 

188,507

 

193,380

Property and equipment, net

 

35,295

 

39,242

Operating lease right-of-use assets, net

 

5,408

 

6,672

Goodwill

 

14,123

 

15,774

Intangible assets, net

 

21,239

 

24,573

Deferred tax assets, net

 

75

 

249

Other non-current assets

 

9,121

 

7,690

Total assets

$

273,768

$

287,580

LIABILITIES AND STOCKHOLDERS’ EQUITY

 

  

 

  

Current liabilities:

 

  

 

  

Accounts payable

$

5,554

$

4,399

Accrued compensation and related benefits

 

9,495

 

8,339

Accrued and other current liabilities

 

3,328

 

6,309

Operating lease liabilities – current portion

 

1,758

 

1,926

Deferred revenues – current portion

 

23,691

 

19,895

Billings in excess of recognized revenues

 

 

1,337

Total current liabilities

 

43,826

 

42,205

Long-term income taxes payable

 

2,656

 

2,956

Non-current operating lease liabilities

 

5,258

 

6,516

Other non-current liabilities

 

2,443

 

1,397

Total liabilities

 

54,183

 

53,074

Commitments and contingencies (Note 8)

 

  

 

  

Stockholders’ equity:

 

  

 

  

Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding

Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 47,414 and 46,400, respectively; shares outstanding 37,411 and 36,850, respectively

 

6

 

6

Additional paid-in-capital

 

423,069

 

407,173

Treasury stock at cost, 10,003 and 9,550 shares, respectively

 

(104,705)

 

(96,215)

Accumulated deficit

 

(97,721)

 

(76,233)

Accumulated other comprehensive loss

 

(1,064)

 

(225)

Total stockholders’ equity

 

219,585

 

234,506

Total liabilities and stockholders’ equity

$

273,768

$

287,580

See accompanying notes to consolidated financial statements.

50

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS

(in thousands, except per share amounts)

Year Ended December 31, 

    

2021

  

2020

Revenues:

 

  

 

  

Analytics

$

93,415

$

57,232

Integrated Yield Ramp

 

17,645

 

30,814

Total revenues

 

111,060

 

88,046

Costs and Expenses:

 

  

 

  

Costs of revenues

 

44,193

 

36,765

Research and development

 

43,780

 

34,654

Selling, general and administrative

 

37,649

 

32,677

Amortization of acquired intangible assets

 

1,255

 

741

Write-down in value of property and equipment

3,183

Interest and other expense (income), net

 

(683)

 

1,269

Loss before income taxes

 

(18,317)

 

(18,060)

Income tax expense

 

3,171

 

22,303

Net loss

$

(21,488)

$

(40,363)

Other comprehensive income (loss):

 

  

 

  

Foreign currency translation adjustments, net of tax

(825)

1,253

Change in unrealized losses related to available-for-sale debt securities, net of tax

 

(14)

 

2

Total other comprehensive income (loss)

(839)

1,255

Comprehensive loss

$

(22,327)

$

(39,108)

Net loss per share, basic and diluted

$

(0.58)

$

(1.17)

Weighted average common shares used to calculate net loss per share, basic and diluted

 

37,138

 

34,458

See accompanying notes to consolidated financial statements.

51

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(in thousands)

Accumulated

Additional

Other

Total

Common Stock

Paid-In

Treasury Stock

Accumulated

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Shares

    

Amount

    

Deficit

    

Loss

    

Equity

Balances, January 1, 2020

32,503

$

5

$

325,197

9,294

$

(91,695)

$

(35,870)

$

(1,480)

$

196,157

Issuance of common stock, net of issuance of $0.1 million

 

3,307

 

1

 

65,077

 

 

 

 

 

65,078

Issuance of common stock in connection with employee stock purchase plan

 

183

 

 

1,670

 

 

 

 

 

1,670

Issuance of common stock in connection with exercise of options

 

246

 

 

2,570

 

 

 

 

 

2,570

Vesting of restricted stock units

 

611

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock grants

 

 

 

 

256

 

(4,520)

 

 

 

(4,520)

Stock-based compensation expense

 

 

 

12,659

 

 

 

 

 

12,659

Comprehensive income (loss)

 

 

 

 

 

 

(40,363)

 

1,255

 

(39,108)

Balances, December 31, 2020

 

36,850

 

6

 

407,173

 

9,550

 

(96,215)

 

(76,233)

 

(225)

 

234,506

Repurchase of common stock

 

(251)

 

 

 

251

 

(4,523)

 

 

 

(4,523)

Issuance of common stock in connection with employee stock purchase plan

 

109

 

 

1,035

 

 

 

 

 

1,035

Issuance of common stock in connection with exercise of options

 

216

 

 

1,930

 

 

 

 

 

1,930

Vesting of restricted stock units

 

487

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock grants

 

 

 

 

202

 

(3,967)

 

 

 

(3,967)

Stock-based compensation expense

 

 

 

12,931

 

 

 

 

 

12,931

Comprehensive loss

 

 

 

 

 

 

(21,488)

 

(839)

 

(22,327)

Balances, December 31, 2021

 

37,411

$

6

$

423,069

 

10,003

$

(104,705)

$

(97,721)

$

(1,064)

$

219,585

See accompanying notes to consolidated financial statements.

52

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF CASH FLOWS

(in thousands)

Year Ended December 31, 

    

2021

    

2020

Cash flows from operating activities:

Net loss

$

(21,488)

$

(40,363)

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

 

 

  

Depreciation and amortization

 

6,218

 

6,725

Stock-based compensation expense

 

12,931

 

12,463

Amortization of acquired intangible assets

 

3,334

 

1,446

Amortization of costs capitalized to obtain revenue contracts

 

674

 

549

Loss on disposal and write-down in value of property and equipment

3,183

500

Deferred taxes

 

1,373

 

21,007

Other

 

147

 

(25)

Changes in operating assets and liabilities:

 

 

Accounts receivable

 

(5,980)

 

8,101

Prepaid expenses and other current assets

 

1,136

 

(433)

Operating lease right-of-use assets

 

1,414

 

1,193

Other non-current assets

 

(1,336)

 

2,069

Accounts payable

 

(86)

 

(918)

Accrued compensation and related benefits

 

1,264

 

1,926

Accrued and other liabilities

 

(648)

 

928

Deferred revenues

 

5,028

 

7,755

Billings in excess of recognized revenues

 

(1,337)

 

220

Operating lease liabilities

 

(1,584)

 

(1,360)

Net cash provided by operating activities

 

4,243

 

21,783

Cash flows from investing activities:

Proceeds from maturities of short-term investments

 

171,000

 

16,500

Purchases of short-term investments

(168,560)

(131,454)

Purchases of property and equipment

(3,672)

(6,005)

Prepayment for the purchase of property and equipment

(381)

(963)

Payment for business acquisition, net of cash acquired

 

(3,054)

 

(28,580)

Net cash used in investing activities

 

(4,667)

 

(150,502)

Cash flows from financing activities:

 

 

  

Proceeds from exercise of stock options

 

1,930

 

2,570

Proceeds from employee stock purchase plan

 

1,035

 

1,670

Payments for taxes related to net share settlement of equity awards

 

(3,967)

 

(4,520)

Repurchases of common stock

 

(4,523)

 

Proceeds from issuance of common stock, net of issuance costs paid

65,078

Net cash provided by (used in) financing activities

 

(5,525)

 

64,798

Effect of exchange rate changes on cash and cash equivalents

 

(182)

 

131

Net decrease in cash, cash equivalents, and restricted cash

 

(6,131)

 

(63,790)

Cash, cash equivalents, and restricted cash at beginning of year

 

33,815

 

97,605

Cash, cash equivalents, and restricted cash at end of year

$

27,684

$

33,815

Reconciliation of cash, cash equivalents, and restricted cash to the balance sheets:

Cash and cash equivalents

$

27,684

$

30,315

Restricted cash

3,500

Total cash, cash equivalents, and restricted cash

$

27,684

$

33,815

Continued on next page.

53

PDF SOLUTIONS, INC.

CONSOLIDATED STATEMENTS OF CASH FLOWS — CONTINUED

(in thousands)

Year Ended December 31, 

    

2021

    

2020

Supplemental disclosure of cash flow information:

 

  

 

  

Cash paid during the period for taxes

$

1,873

$

2,707

Cash paid for amounts included in the measurement of operating lease liabilities

$

1,947

$

2,022

Supplemental disclosure of noncash information:

 

 

  

Property and equipment received and accrued in accounts payable and accrued and other liabilities

$

1,359

$

133

Advances for purchase of fixed assets transferred from prepaid assets to property and equipment

$

963

$

Operating lease liabilities arising from obtaining right-of-use assets

$

161

$

286

Stock-based compensation capitalized as software development costs

$

$

190

See accompanying notes to consolidated financial statements.

54

PDF SOLUTIONS, INC.

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

1. DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Description of Business

PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower engineers and data scientists across the semiconductor ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (or IP) for integrated circuit (or IC) designs, electrical measurement hardware tools, proven methodologies, and professional services.

Basis of Presentation

The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for doubtful accounts, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

The global COVID-19 pandemic has impacted the operations and purchasing decisions of companies worldwide. As of the date of issuance of the consolidated financial statements, the Company is not aware of any specific event or circumstance relating to COVID-19 that would require updates to the Company’s estimates and judgments or revisions to the carrying value of its assets or liabilities. These estimates may change, as new events occur and additional information is obtained, and are recognized in the consolidated financial statements as soon as they become known. Actual results could differ from those estimates and any such differences may be material to the financial statements.

Concentration of Credit Risk

Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short -term investments, and accounts receivable. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.

The Company primarily sells its products and services to companies in Asia, Europe and North America within the semiconductor industry. As of December 31, 2021, two customers accounted for 44% of the Company’s gross accounts receivable and two customers accounted for 27% of the Company’s total revenues for 2021. As of December 31, 2020, two customers accounted for 27% of the Company’s gross accounts receivable and one customer accounted for 23% of the Company’s revenues for 2020. See Note 13 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.

The allowance for doubtful accounts, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.

55

Cash and Cash Equivalents, Short-term Investments, and Restricted Cash

The Company considers all highly liquid investments with an original maturity of 90 days or less or investments with a remaining maturity of 90 days or less at the purchase to be cash equivalents and investments with original maturities greater than 90 days but less than one year to be short-term investments. The Company classifies securities with readily determinable market values as available-for-sale. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and losses deemed temporary in nature, net of tax, reported as a component of accumulated other comprehensive loss in stockholders’ equity. Realized gains and losses and declines in value determined to be other than temporary are based on the specific identification method and are included as a component of other expense, net in the Consolidated Statements of Comprehensive Loss.

The Company periodically reviews short-term investments for impairment. In the event a decline in value is determined to be other-than-temporary, an impairment loss is recognized. When determining if a decline in value is other-than-temporary, the Company takes into consideration the current market conditions, the duration and severity of and the reason for the decline, and the likelihood that it would need to sell the security prior to a recovery of par value.

As of December 31, 2021 and 2020, short-term investments consisted solely of U.S. Treasury bills. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2021. There were also no impairments in the investments’ value in the year ended December 31, 2021. Refer to Note 14 “Fair Value Measurements” for further discussion on the Company’s investments.

Restricted cash of $3.5 million included in the “Prepaid expenses and other current assets” in the Company’s Consolidated Balance Sheet as of December 31, 2020 pertains to the amount, subject to adjustments, specifically designated to pay for the Holdback amount related to the Company’s acquisition of Cimetrix Incorporated (“Cimetrix”). Refer to Note 4, “Business Combination” for further discussion about the payment of Holdback Amount in fiscal 2021.

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable is determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $11.8 million and $7.2 million as of December 31, 2021 and 2020, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.3 million and $2.0 million as of December 31, 2021 and 2020, respectively. The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for doubtful accounts is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for doubtful accounts is reviewed on a quarterly basis to assess the adequacy of the allowance.

Accounts receivable reserves are summarized below (in thousands):

Deductions/

Balance at

Charged 

Write-offs

Balance at

Beginning

Charged to

Against

of Accounts

End of

    

of Period

    

Expense (1)

    

Revenue (1)

    

Receivable (1)

    

Period

2021

$

963

$

$

$

(73)

$

890

2020

$

213

$

$

800

$

(50)

$

963

(1)Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.

56

Property and Equipment

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

3-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated

useful life or term of

 

lease

Intangible Assets

Intangible assets consist of acquired technology, certain contract rights, customer relationships, trademarks and trade names, and in-process research and development (IPR&D). These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from one to ten years, except for IPR&D projects. Acquired IPR&D is initially accounted for as indefinite-lived intangible asset and tested annually for impairment. Once the IPR&D asset becomes available for use, it will be amortized over the estimated useful life or will be written off upon abandonment. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.

Goodwill

The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.

Leases

The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use assets (ROU), operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company also elected the transition package of three practical expedients which allow companies not to reassess (i) whether agreements contain leases, (ii) the classification of leases, and (iii) the capitalization of initial direct costs. Further, the Company elected to not separate lease and non-lease components for all of its leases.

The Company determines if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options

57

involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.

Software Development Costs

Internally developed software is software developed to meet our internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally five to six years. The costs to develop software that is marketed externally have not been capitalized as we believe our current software development process is essentially completed concurrent with the establishment of technological feasibility. As such, all related software development costs are expensed as incurred and included in research and development expense in our Consolidated Statements of Comprehensive Loss.

Cost of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, and amortization of acquired technology. Services costs include material, employee compensation and related benefits, subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by us in providing services to the Company’s customers in solution engagements or sold in conjunction with the Company’s software products.

Research and Development Expenses

Research and development expenses consist primarily of personnel-related costs to support product development activities, including compensation and benefits, outside development services, travel, facilities cost allocations, and stock-based compensation charges. Research and development expenses are charged to operations as incurred.

Selling, General and Administrative Expenses

Selling, general and administrative expenses consist primarily of compensation and benefits for sales, marketing and general and administrative personnel, legal and accounting services, marketing communications, travel and facilities cost allocations, and stock-based compensation charges.

Stock-Based Compensation

The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the

58

terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Income Taxes

The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Loss.

Net Income (Loss) Per Share

Basic net income (loss) per share is computed by dividing net income by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.

Foreign Currency Translation

The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive loss are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive loss. Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Loss.

Derivative Financial Instruments

The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months.

59

Business Combinations

The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over the useful life, whereas any indefinite lived intangible assets, including IPR&D and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (FASB) requirements. See Note 8, Commitments and Contingencies.

Recently Adopted Accounting Standards

In December 2019, the Financial Accounting Standards Board (“FASB”) issued Accounting Standard Update (“ASU”) No. 2019-12, Income Taxes (Topic 740), Simplifying the Accounting for Income Taxes, related to simplifying the accounting for income taxes. The guidance eliminates certain exceptions from Accounting Standards Codification (“ASC”) 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The guidance also clarifies and simplifies other aspects of the accounting for income taxes. The guidance became effective for the Company beginning in the first quarter of 2021 on a prospective basis. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures

In January 2020, the FASB issued ASU No. 2020-01, Investments-Equity Securities (Topic 321), Investments-Equity Method and Joint Ventures (Topic 323), and Derivatives and Hedging (Topic 815)-Clarifying the Interactions between Topic 321, Topic 323, and Topic 815. This ASU clarifies the interaction between accounting standards related to equity securities (ASC 321), equity method investments (ASC 323), and certain derivatives (ASC 815). The amendments in this ASU are effective for fiscal years beginning after December 15, 2020. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures.

Management has reviewed other recently issued accounting pronouncements and has determined there are not any that would have a material impact on the consolidated financial statements.

Accounting Standards Not Yet Effective

In June 2016, the FASB issued ASU No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (ASU 2016-13), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04,

60

Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

Additionally, ASU No. 2019-10 defers the effective date for the adoption of the new standard on credit losses for public filers that are considered small reporting companies (“SRC”) as defined by the SEC to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, which will be fiscal 2023 for the Company if it continues to be classified as an SRC. In February 2020, the FASB issued ASU 2020-02, which provides guidance regarding methodologies, documentation, and internal controls related to expected credit losses. The subsequent amendments will have the same effective date and transition requirements as ASU No. 2016-13. Early adoption is permitted. Topic 326 requires a modified retrospective approach by recording a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption. While the Company is currently evaluating the impact of Topic 326, the Company does not expect the adoption of this ASU to have a material impact on its consolidated financial statements or the related disclosure.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.

2. REVENUE

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB ASC Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

61

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), SaaS (which is primarily Exensio products), and DFI™ systems and CV® systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project–based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

62

The Gainshare royalty contained in IYR contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue by timing of revenue:

Year Ended December 31, 

 

    

2021

    

2020

Over time

65

63

%

Point-in-time

 

35

37

%

Total

 

100

%  

100

%

International revenues accounted for approximately 55% and 58% of total revenues for the year ended December 31, 2021 and 2020, respectively. See Note 13, Customer and Geographic Information.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, licenses software and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare royalty revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s

63

estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e. contract liabilities) at the contract level. At December 31, 2021 and 2020, contract assets of $0.4 million and $3.7 million, respectively, are included in prepaid expenses and other current assets in the Consolidated Balance Sheets. The Company did not record any asset impairment charges related to contract assets during fiscal year 2021 and 2020.

Deferred revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded as non-current deferred revenues. The non-current portion of deferred revenue included in other non-current liabilities as of December 31, 2021 and 2020 was $2.4 million and $1.2 million, respectively. Revenue recognized for the years ended December 31, 2021 and 2020, that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $16.9 million and $10.7 million, respectively.

At December 31, 2021, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $179.5 million. Given the applicable contract terms with customers, the majority of this amount is expected to be recognized as revenue over the next two years, with the remainder in the following three years. This amount does not include significant contracts to which the customer is not committed, future sales-based or usage-based royalty payments in exchange for a license of intellectual property, and future payments for performance obligations from on-demand arrangements. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized in the years ended December 31, 2021 and 2020 from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.4 million and an increase $0.1 million, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare royalty.

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets as of December 31, 2021 and 2020 was $0.6 million and $0.8 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying Consolidated Balance Sheets as of December 31, 2021 and 2020 was $2.1 million and $0.9 million, respectively. Amortization of these assets for each of

64

the years ended December 31, 2021 and 2020 was $0.7 million and $0.5 million, respectively. There was no impairment loss in relation to the costs capitalized for the periods presented.

Certain eligible initial project costs are capitalized when the costs relate directly to the contract, the costs generate or enhance resources of the Company that will be used in satisfying the performance obligation in the future, and the costs are expected to be recovered. These costs primarily consist of transition and set-up costs related to the installation of systems and processes and other deferred fulfillment costs eligible for capitalization. Capitalized costs are amortized consistent with the transfer to the customer of the services to which the asset relates and recorded as a component of cost of revenues. The Company also incurs certain direct costs to provide services in relation to the specific anticipated contracts. The Company recognizes such costs as a component of cost of revenues, the timing of which is dependent upon identification of a contract arrangement. At the end of the reporting period, the Company evaluates its deferred costs for their probable recoverability. Deferred costs balance included in prepaid expenses and other current assets and other non-current assets in the accompanying Consolidated Balance Sheets was immaterial as of December 31, 2021 and 2020. The Company recognizes impairment deferred costs when it is determined that the costs no longer have future benefits and are no longer recoverable. There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedients

The Company does not adjust transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component for the years ended December 31, 2021 and 2020.

3. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

On July 29, 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”) that included the following agreements.

A Securities Purchase Agreement for the purchase by Advantest of an aggregate of 3,306,924 shares of its common stock for aggregate gross proceeds of $65.2 million and a related Stockholder Agreement.
An Amendment #1 to that certain Software License and Related Services Agreement, dated as of March 25, 2020, for an exclusive commercial arrangement in which the Company and Advantest will collaborate on, and the Company will initially host, develop and maintain, an Advantest-specific cloud layer on the Exensio platform.
An Amended and Restated Master Development Agreement with Advantest, pursuant to which the Company and Advantest agreed to collaborate on extensions to or combinations of both of their existing technology and new technology to address mutual customers’ needs through one or more development phases subject to certain conditions as set forth therein. Costs and expenses incurred related to this agreement have not been significant for the year ended December 31, 2021 and 2020.
A Master Commercial Terms and Support Services Agreement for the commercialization and support of integrated products of the Company and Advantest that are the outcome of the above development agreement. No material costs and expenses incurred related to the Commercial Agreement with Advantest have not been significant for the year ended December 31, 2021 and 2020.

Analytics revenue recognized from Advantest during the year ended December 31, 2021 and 2020 was $10.6 million and $3.4 million, respectively. There was no outstanding accounts receivable from Advantest at December 31, 2021. Accounts receivable from Advantest amounted to $0.3 million at December 31, 2020. Deferred revenue amounted to $6.8 million and $5.9 million as of December 31, 2021 and 2020, respectively. There was no occurrence of any termination events under these agreements as of the issuance of these consolidated financial statements.

65

The Company carries out transactions with Advantest on arm’s length commercial customary terms.

4. BUSINESS COMBINATION

On December 1, 2020 (the “Acquisition Date”), the Company acquired all the stock of Cimetrix Incorporated (“Cimetrix”). Cimetrix a global provider of equipment connectivity products for smart manufacturing and Industry 4.0 that enable factory equipment to communicate to increase productivity, reduce costs, and improve quality. The combination of Cimetrix connectivity products and platforms with the Company’s Exensio analytics platform powered by machine learning, is intended to enable IC, assembly, and electronics manufacturer customers to extract more intelligence from their tools, not just data, to build more reliable chips and systems at lower manufacturing costs. The gross purchase price was approximately $37.5 million ($31.6 million net of cash acquired) for all of the outstanding equity of Cimetrix. The net cash payment for this acquisition which also include the payment of adjusted Holdback Amount, as discussed below, was funded from the available cash of the Company.

At the Acquisition Date, the Company held back $3.5 million of the purchase price (the “Holdback Amount”) to satisfy adjustments and claims for indemnity arising out of breaches of certain representations, warranties and covenants, and certain other enumerated items in the merger agreement.  The Holdback Amount was recorded under accrued and other current liabilities account and the corresponding restricted cash was included in the “Prepaid expenses and other current assets” account in the 2020 Consolidated Balance Sheet. In fiscal 2021, the Company recorded a measurement period adjustment which reduced the Holdback Amount to $3.1 million. The measurement period adjustment did not have an impact on the Company’s Consolidated Statement of Comprehensive Loss during the year ended December 31, 2021. The adjusted Holdback Amount of $3.1 million was paid to the participating equity holders in December 2021.

The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. 

The final purchase price allocation, completed in the fourth quarter of 2021, resulted in adjustments to certain assets and liabilities primarily related to Holdback amount, as discussed above, and a reduction to net deferred tax liabilities of approximately $1.3 million. The corresponding offset of measurement period acquisition adjustments to goodwill aggregated $1.7 million.

66

The following summarizes the final allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $5,900)

$

8,298

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

12,541

 

8

In-process R&D

 

3,635

 

N/A

Customer relationships

 

1,967

 

10

Noncompetition agreements

 

848

 

3

Tradenames and trademarks

 

808

 

10

Goodwill

 

11,830

 

N/A

Total assets acquired

$

39,927

 

  

Liabilities

 

  

 

  

Accounts payable and accrued expenses

$

1,447

 

  

Deferred revenue

 

375

 

  

Operating lease liabilities

 

132

 

  

Deferred tax liabilities

 

439

 

  

Total liabilities assumed

$

2,393

 

  

Total purchase price allocation

$

37,534

 

  

The estimated fair value of accounts receivable acquired approximates the contractual value of $1.6 million.

Pursuant to the merger agreement, the Company will also make payments to certain employees, subject to their continued employment with Cimetrix, through the second quarter of 2024. The estimated total cash payout is about $1.4 million at Acquisition Date and will be paid at various scheduled payout dates. This amount will be recognized as compensation expense over the period as services are rendered. As of December 31, 2021 and 2020, such accrued compensation recorded under “Accrued compensation and related benefits” in the Consolidated Balance Sheets amounted to $0.5 million and $0.3 million, respectively.

Acquisition-Related Transaction Costs – Transaction expenses related to the acquisition of Cimetrix aggregated $1.6 million for the year ended December 31, 2020. These costs consist of professional fees and administrative costs and were expensed as incurred in the Company’s Consolidated Statement of Comprehensive Loss for the year ended December 31, 2020.

67

5. PROPERTY AND EQUIPMENT

Property and equipment consist of (in thousands):

December 31, 

    

2021

    

2020

Computer equipment

$

11,924

$

11,585

Software

 

5,419

 

5,451

Furniture, fixtures and equipment

 

2,506

 

2,507

Leasehold improvements

 

6,272

 

6,255

Laboratory and other equipment

 

3,981

 

3,451

Test equipment

 

24,452

 

26,010

Construction-in-progress

 

22,158

 

20,278

 

76,712

 

75,537

Less: accumulated depreciation and amortization

 

(41,417)

 

(36,295)

Total

$

35,295

$

39,242

Test equipment includes DFI™ assets at customer sites that are contributing to Analytics revenue from DFI systems. The construction-in-progress balance related to construction of DFI™ assets totaled $20.0 million and $18.9 million as of December 31, 2021 and 2020, respectively. Depreciation and amortization expense for years ended December 31, 2021 and 2020 was $6.2 million and $6.7 million, respectively.

In 2021, the Company wrote down the value of its property and equipment by $3.2 million related to its first-generation of e-beam tools for DFI™ systems wherein carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.

6. GOODWILL AND INTANGIBLE ASSETS

The Company completed the acquisition of Cimetrix in the year ended December 31, 2020. Refer to Note 4 for additional information related to the goodwill and intangible assets added from this acquisition.

As of December 31, 2021 and 2020, the carrying amounts of goodwill were $14.1 million and $15.8 million, respectively. The following table summarizes goodwill transaction for the year ended December 31, 2021 and 2020 (in thousands):

December 31, 

2021

    

2020

Balance at beginning of year

$

15,774

$

2,293

Addition

13,481

Measurement period acquisition adjustment (1)

 

1,651

 

Balance at end of year

$

14,123

$

15,774

(1)Goodwill adjustment was recorded within the measurement period with a corresponding reduction in the Holdback Amount and reduction to net deferred tax liabilities. See Note 4, Business Combination.

68

Intangible assets balance was $21.2 million and $24.6 million as of December 31, 2021 and 2020, respectively. Intangible assets as of December 31, 2021 and 2020, consist of the following (in thousands):

December 31, 2021

December 31, 2020

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,407

$

(6,041)

$

3,366

$

9,407

$

(5,398)

$

4,009

Developed technology

 

4-9

 

33,635

 

(17,250)

 

16,385

 

30,000

 

(14,987)

 

15,013

Tradename and trademarks

 

2-10

 

1,598

 

(812)

 

786

 

1,598

 

(706)

 

892

Patent

 

7-10

 

1,800

 

(1,640)

 

160

 

1,800

 

(1,600)

 

200

Noncompetition agreements

 

3

 

848

 

(306)

 

542

 

848

 

(24)

 

824

In-process R&D

 

*

 

 

 

 

3,635

 

N/A

 

3,635

Total

$

47,288

$

(26,049)

$

21,239

$

47,288

$

(22,715)

$

24,573

*

Non-amortizing intangible asset

Developed technology includes reclassified In-process R&D asset related to Cimetrix’s Smart Manufacturing Solutions acquired in fiscal 2020 and reclassified in fiscal 2021 upon it becoming available for us. 

The weighted average amortization period for acquired identifiable intangible assets was 6.8 years as of December 31, 2021. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Loss (in thousands):

Year ended December 31, 

2021

    

2020

Amortization of acquired technology included under Costs of Revenues

$

2,079

$

705

Amortization of acquired intangible assets presented separately under Costs and Expenses

 

1,255

 

741

Balance at end of year

$

3,334

$

1,446

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2022

$

3,468

2023

 

3,444

2024

 

3,046

2025

 

2,882

2026

 

2,712

2027 and thereafter

 

5,687

Total future amortization expense

$

21,239

There were no impairment charges for goodwill and intangible assets for the year ended December 31, 2021 and 2020.

69

7. LEASES

Lease expense was comprised of the following (in thousands):

Year Ended December 31, 

    

2021

    

2020

Operating lease expense

$

1,860

$

1,828

Short-term lease and variable lease expense (1)

 

822

 

545

Total lease expense

$

2,682

$

2,373

(1)Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental balance sheets information related to leases was as follows:

December 31, 

 

    

2021

    

2020

 

Weighted average remaining lease term under operating ROU leases (in years)

5.7

6.4

Weighted average discount rate for operating lease liabilities

 

5.25

%  

5.24

%

Maturity of operating lease liabilities as of December 31, 2021, are as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2022

$

1,825

2023

 

1,459

2024

 

1,071

2025

 

1,087

2026

 

1,053

2027 and thereafter

1,649

Total future minimum lease payments

$

8,144

Less: Interest (2)

 

(1,128)

Present value of future minimum lease payments under operating lease liabilities (3)

$

7,016

(1)As of December 31, 2021, the total operating lease liability includes $1.1 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.8 million as of December 31, 2021.

8. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest

See Note 3 for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases

Refer to Note 7, Leases, for the discussion about the Company’s lease commitments.

70

Indemnifications

The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

Purchase obligations

The Company has purchase obligations with certain suppliers for the purchase of goods and services entered in the ordinary course of business. As of December 31, 2021, total outstanding purchase obligations were $8.9 million, the majority of which due within the next 12 months.

Indemnification of Officers and Directors

As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2021, except as disclosed below, the Company was not party to any material legal proceedings, thus no loss was probable and no amount was accrued.

On May 6, 2020the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to PDF under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future, and costs associated with bringing the arbitration proceeding. The arbitration is on-going.

9. STOCKHOLDERS’ EQUITY

Issuance of Common Stock

On July 30, 2020, the Company issued 3,306,924 shares of common stock, at a purchase price of $19.7085 per share, for aggregate gross proceeds of $65.2 million pursuant to a Securities Purchase Agreement with Advantest dated July 29,

71

2020. Issuance costs related to this private placement aggregated $0.1 million. See Note 3, Securities Purchase Agreement with Advantest, for further details.

Stock Repurchase Program

On May 28, 2020, the Company’s 2018 stock repurchase program (the “2018 Program”) that was originally adopted on May 29, 2018, expired. As of May 28, 2020, approximately 786,000 shares had been repurchased at an average price of $12.43 per share, for a total price of $9.8 million under the 2018 Program.

On June 4, 2020, the Company’s Board of Directors adopted a new stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2021, 251,212 shares were repurchased under the 2020 at average price of $18.01 per share for an aggregate total price of $4.5 million under the 2020 Program.

10. EMPLOYEE BENEFIT PLANS

On December 31, 2021, the Company had the following stock-based compensation plans:

Employee Stock Purchase Plans

In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four six-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan”). The terms of 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.

The Company estimated the fair value of purchase rights granted under the 2021 and 2010 Purchase Plans (collectively, the “Stock Purchase Plans”) during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

2021 Purchase Plan

2010 Purchase Plan

Year Ended
December 31,

 

Year Ended
December 31,

 

2021

2021

    

2020

Expected life (in years)

1.25

 

1.25

 

1.25

Volatility

48.00

%  

34.25

%  

34.25

%

Risk-free interest rate

0.11

%  

1.43

%  

1.43

%

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

6.71

$

4.83

$

4.83

During the year ended December 31, 2021 and 2020, a total of approximately 109,000 and 183,000 shares, respectively, were issued at a weighted-average purchase price of $9.53 and $9.12 per share, respectively. As of December 31, 2021, the estimated unrecognized compensation cost related to the 2021 Purchase Plan was $1.9 million and there was a negligible amount of unrecognized compensation cost related to the 2010 Purchase Plan. These estimated unrecognized compensation costs are expected to be recognized over a weighted average period of 1.6 years. As of December 31, 2021, 1.0 million shares were available for future issuance under the 2021 Purchase Plan, and shares

72

available for future issuance under the 2010 Purchase Plan was 5.6 million but shares to be issued will be limited only to the final offering period on January 31, 2022.

Stock Incentive Plans

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as amended, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under this plan is 11,550,000 shares, plus up to 3,500,000 shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

Stock options granted under the 2001 Plan generally expire ten years from the date of grant and become vested and exercisable over a four-year period. Although no new awards may be granted under the 2001 Plan, awards made under the 2001 Plan that are currently outstanding remain subject to the terms of each such plan.

As of December 31, 2021, 12.1 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.4 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through December 31, 2021. As of December 31, 2021, there were no outstanding awards that had been granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”)

The Company has elected to use the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life, interest rate and expected dividend. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life of an award is based on historical experience and on the terms and conditions of the stock awards granted to employees. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Year Ended December 31, 

    

2021

    

2020

 

Expected life (in years)

4.45

Volatility

 

%  

40.90

%

Risk-free interest rate

 

%  

0.60

%

Expected dividend

 

 

Weighted average fair value per share of options granted during the period

$

$

5.75

No stock options were granted during the year ended December 31, 2021.

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

73

Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):

Year Ended December 31, 

    

2021

    

2020

Costs of revenues

$

2,563

$

3,454

Research and development

 

5,515

 

4,800

Selling, general and administrative

 

4,853

 

4,209

Stock-based compensation expenses

$

12,931

$

12,463

The stock-based compensation expense in the table above includes immaterial expense or credit adjustments related to cash-settled SARs granted to certain employees. The Company accounted for these awards as liability awards and the amount was included in accrued compensation and related benefits. SARs were fully exercised in the third quarter of 2020. Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was nil and approximately $0.2 million for the years ended December 31, 2021 and 2020, respectively.

Additional information with respect to options under the Plans is as follows:

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, January 1, 2020

 

745

$

10.64

 

  

 

  

Granted (weighted average fair value of $5.75 per share)

 

24

$

16.72

 

  

 

  

Exercised

 

(246)

$

10.46

 

  

 

  

Canceled

 

(57)

$

11.65

 

  

 

  

Expired

 

(10)

$

10.06

 

  

 

  

Outstanding, January 1, 2021

 

456

$

10.95

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(216)

8.90

 

  

 

  

Canceled

 

(10)

15.56

 

  

 

  

Expired

 

(4)

6.90

 

  

 

  

Outstanding, December 31, 2021

 

226

$

12.78

 

3.20

$

4,288

Vested and expected to vest, December 31, 2021

 

223

$

12.75

 

3.15

$

4,250

Exercisable, December 31, 2021

 

190

$

12.40

 

2.36

$

3,684

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $31.79 as of December 31, 2021, which would have been received by the option holders had all option holders exercised their options as of that date. The total intrinsic value of options exercised during the years ended December 31, 2021 and 2020 was $3.0 million and $2.2 million, respectively.

As of December 31, 2021, there was $0.2 million of total unrecognized compensation cost, net of forfeitures, related to unvested stock options. That cost is expected to be recognized over a weighted average period of 1.7 years. The total fair value of options vested during the year ended December 31, 2021, was $0.2 million.

74

Nonvested shares (restricted stock units) were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2020

 

1,887

$

12.30

Granted

 

890

$

21.31

Vested

 

(867)

$

13.25

Forfeited

 

(163)

$

13.23

Nonvested, December 31, 2021

 

1,747

$

16.33

Granted

 

977

$

19.43

Vested

 

(689)

$

15.23

Forfeited

 

(163)

$

17.63

Non-vested, December 31, 2021

 

1,872

$

16.33

As of December 31, 2021, there was $25.4 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.6 years. Restricted stock units do not have rights to dividends prior to vesting.

401(k) Savings Plan

In 1999, the Company established a 401(k) tax-deferred savings plan, whereby eligible employees may elect to defer up to 60% of their eligible compensation but not to exceed the statutorily prescribed limit to the 401(k) plan. The 401(k) plan also has a catch-up contribution feature for employees aged 50 or older who can defer up to 100% of their eligible compensation but not to exceed the statutorily prescribed limit to the 401(k) plan. Company contributions to this plan are discretionary; no such Company contributions have been made since the inception of this plan.

11. INCOME TAXES

During the years ended December 31, 2021 and 2020, loss before taxes from U.S. operations was ($19.7) million and ($18.4) million, respectively, and income before taxes from foreign operations was $1.4 million and $0.3 million, respectively.

Year Ended December 31, 

    

2021

    

2020

(In thousands)

U.S.

  

Current

$

(67)

$

(1,325)

Deferred

 

1,318

 

21,056

Foreign

 

  

 

  

Current

 

237

 

238

Withholding

 

1,591

 

2,392

Deferred

 

92

 

(58)

Total income tax expense

$

3,171

$

22,303

75

The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2021 and 2020) for the following reasons (in thousands):

Year Ended December 31, 

    

2021

    

2020

Federal statutory tax expense

$

(3,847)

$

(3,793)

State tax provision

 

239

 

703

Stock compensation expense

 

(499)

 

(602)

Tax credits

 

(2,676)

 

(3,488)

Foreign tax, net

 

1,653

 

2,443

Change in valuation allowance

 

8,099

 

29,034

Unrealized tax benefit reserve changes

(151)

Business combination costs

356

Tax law changes

 

 

(2,237)

Other

 

353

 

(113)

Total income tax expense

$

3,171

$

22,303

As of December 31, 2021, the Company had Federal and California net operating loss carry-forwards (“NOLs”) of approximately $51.6 million and $13.1 million, respectively. Some of the Federal NOLs, acquired as part of a past acquisition, have expirations at the end of 2021 and onwards, and the California NOLs begin expiring in 2028 onwards.

As of December 31, 2021, the Company had federal and state research and experimental and other tax credit (“R&D credits”) carry-forwards of approximately $21.0 million and $21.6 million, respectively. The federal credits begin to expire after 2022, while the California credits have no expiration. The extent to which the federal and state credit carry forwards can be used to offset future tax liabilities, respectively, may be limited, depending on the extent of ownership changes within any three-year period as provided in the Tax Reform Act of 1986 and the California Conformity Act of 1987.

The Company assesses its deferred tax assets for recoverability on a regular basis, and where applicable, a valuation allowance is recorded to reduce the total deferred tax asset to an amount that will, more likely than not, be realized in the future. Based on all available evidence, both positive and negative, the Company determined a full valuation allowance was still appropriate for its federal and state net deferred tax assets (DTAs) at December 31, 2021, primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2021 and the likelihood that the Company will not utilize tax attributes before they begin to expire at the end of 2022. The valuation allowance was approximately $51.6 million and $41.9 million as of December 31, 2021 and 2020, respectively. The increase in the valuation allowance from December 31, 2020 to December 31, 2021 was primarily driven by net operating losses (NOLs) and credits generated in the current year which require a valuation allowance. Management will continue to evaluate the need for a valuation allowance and may change its conclusion in a future period based on any change in facts (e.g. 12-quarter cumulative profit, significant new revenue, and other relevant factors). If the Company concludes that it is more likely than not to utilize some or all of its US DTAs, it will release some or all of its valuation allowance and our tax provision will decrease in the period in which we make such determination. Net deferred tax assets, after the US valuation allowance, was immaterial as of December 31, 2021 and $0.2 million as of December 31, 2020.

76

The components of the net deferred tax assets are comprised of (in thousands):

December 31, 

    

2021

    

2020

Deferred tax assets

 

  

 

  

Net operating loss carry forward

$

13,149

$

8,085

Research and development and other credit carry forward

 

26,591

 

24,723

Foreign tax credit carry forward

 

11,010

 

9,435

Accruals deductible in different periods

 

3,362

 

3,471

Leases

 

1,472

 

1,669

Stock-based compensation

 

1,442

 

1,220

Total deferred tax assets

 

57,026

 

48,603

Less: valuation allowance

 

(51,586)

 

(41,859)

Deferred tax assets, net of valuation allowance

$

5,440

$

6,744

Deferred tax liabilities

 

  

 

  

Property and equipment, net

 

178

 

(629)

Operating lease right-of-use assets

 

(1,472)

 

(1,669)

Intangible assets

 

(4,129)

 

(4,218)

Deferred tax liabilities

$

(5,423)

$

(6,516)

Net deferred tax assets

$

17

$

228

In accordance with the accounting standard relating to accounting for uncertain tax positions, the Company classifies its liabilities for income tax exposures as long-term. The Company includes interest and penalties related to unrecognized tax benefits within the Company’s income tax provision. As of December 31, 2021 and 2020, the Company had accrued interest and penalties related to unrecognized tax benefits of $0.7 million and of $0.8 million, respectively. In the years ended December 31, 2021 and 2020, the Company recognized (reversal of) charges for interest and penalties related to unrecognized tax benefits of ($89,000) and $33,000 respectively, in the Consolidated Statements of Comprehensive Loss.

The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of December 31, 2021 was $14.7 million, of which $2.0 million, if recognized, would impact the Company’s effective tax rate. As of December 31, 2021, the Company has recorded unrecognized tax benefits of $2.6 million, including interest and penalties of $0.7 million, as long-term income taxes payable in its Consolidated Balance Sheet. The remaining $12.9 million has been recorded within our deferred tax assets, which is subject to a full valuation allowance. The Company does not expect the change in unrecognized tax benefits over the next twelve months to materially impact its results of operations and financial position.

A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):

    

Amount

Gross unrecognized tax benefits, January 1, 2020

 

13,615

Increases in tax positions for current year

 

1,024

Increases in tax positions for prior years

 

71

Lapse in statute of limitations

 

(410)

Gross unrecognized tax benefits, December 31, 2020

 

14,300

Increases in tax positions for current year

 

853

Increases in tax positions for prior years

 

1

Lapse in statute of limitations

 

(411)

Gross unrecognized tax benefits, December 31, 2021

$

14,743

The Company does not provide deferred taxes on undistributed earnings of its foreign subsidiaries as it intends to indefinitely reinvest those earnings.

77

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal, various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the years ended 2018 to present and 2017 to present, respectively. In addition, due to NOL carryback claims, the tax years 2013 through 2015 may be subject to federal examination and all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under income tax examinations in the US or in any other of its major foreign subsidiaries’ jurisdictions.

Valuation allowance for deferred tax assets is summarized (in thousands):

Balance at

Charged to

Deductions/

Balance at

Beginning

Costs and

Write-offs of

End of

    

of Period

    

Expenses

    

Accounts

    

Period

Valuation allowance for deferred tax assets

 

  

 

  

 

  

 

  

2021

$

41,859

$

9,727

$

$

51,586

2020

$

10,486

$

31,373

$

$

41,859


12. NET LOSS PER SHARE

Basic net loss per share is computed by dividing net loss by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net loss per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):

Year Ended December 31, 

    

2021

    

2020

Numerator:

 

  

 

  

Net loss

$

(21,488)

$

(40,363)

Denominator:

 

  

 

  

Basic weighted-average shares outstanding

 

37,138

 

34,458

Effect of dilutive options and restricted stock units

 

 

Diluted weighted-average shares outstanding

 

37,138

 

34,458

Net loss per share, basic and diluted

$

(0.58)

$

(1.17)

For the years ended December 31, 2021 and 2020, because the Company was in a loss position, basic net loss per share is the same as diluted net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table sets forth potential shares of common stock that are not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Year Ended December 31, 

    

2021

    

2020

Outstanding options

 

170

 

332

Non-vested restricted stock units

 

968

 

921

Employee Stock Purchase Plans

 

33

 

160

Total

 

1,171

 

1,413

78

13. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and reporting segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Year Ended December 31, 

 

Customer

    

2021

    

2020

 

A

*

%  

23

%

D

17

%  

*

%

E

10

%  

*

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

December 31, 

 

Customer

    

2021

    

2020

A

 

*

%  

16

%  

B

 

15

%  

*

%  

C

*

%  

11

%  

D

 

29

%  

*

%  

*

represents less than 10%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):

Year Ended December 31, 

 

2021

2020

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

50,374

 

45

%  

$

36,723

42

%

China

14,267

13

13,776

16

Japan

 

11,097

 

10

 

4,762

5

Taiwan

 

6,387

 

6

 

8,038

9

Rest of the world

 

28,935

 

26

 

24,747

28

Total revenue

$

111,060

 

100

%  

$

88,046

 

100

%

79

Long-lived assets, net by geographic area is as follows (in thousands):

December 31, 

    

2021

    

2020

United States (1)

$

39,158

$

43,663

Rest of the world

 

1,545

 

2,251

Total long-lived assets, net

$

40,703

$

45,914





(1)

Includes assets deployed at customer sites which could be outside the U.S.

14. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2021 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

December 31, 

Assets

Inputs

Unobservable

Assets

    

2021

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

12,474

$

12,474

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities

 

112,542

 

112,542

 

 

Total

$

125,016

$

125,016

$

$

80

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2020 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2020

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

18,012

$

18,012

$

$

Short-term investments (available-for-sale debt securities)

U.S. Treasury bills

114,981

114,981

Total

$

132,993

$

132,993

$

$

(1)The carrying amount of the Company’s investments in U.S. Treasury bills approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities at December 31, 2021 and 2020.

From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities, primarily on third-party accounts payables and intercompany balances. The primary objective of the Company’s hedging program is to reduce volatility of earnings related to foreign currency exchange rate fluctuations. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, the Company believes the credit risk of counterparty nonperformance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these contracts is recorded into earnings as a component of other expense (income), net, and offsets the change in fair value of the foreign currency denominated assets and liabilities, which is also recorded in other expense (income), net in the Company’s Consolidated Statements of Comprehensive Loss. There was no realized gain or loss from foreign currency forward contracts during the year ended December 31, 2021. For the year ended December 31, 2020, the Company recognized a realized loss of $0.2 million on the contracts, which is recorded in interest and other expense (income), net in the Company’s Consolidated Statement of Comprehensive Loss. As of December 31, 2021 and 2020, the Company had no outstanding forward contracts.

15. SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)

The following is a summary of the Company’s quarterly consolidated results of operations (unaudited) for the fiscal years ended December 31, 2021 and 2020.

Year Ended December 31, 2021

    

Q1

    

Q2

    

Q3

    

Q4

(In thousands, except for per share amounts)

Total revenues

$

24,200

$

27,419

$

29,555

$

29,886

Costs of revenues

$

10,663

$

10,785

$

11,070

$

11,675

Net loss

$

(7,597)

$

(4,484)

$

(2,407)

$

(7,000)

Net loss per share:

 

  

 

  

 

  

 

  

Basic and diluted

$

(0.21)

$

(0.12)

$

(0.06)

$

(0.19)

81

Year Ended December 31, 2020

    

Q1

    

Q2

    

Q3

    

Q4

(In thousands, except for per share amounts)

Total revenues

$

21,158

$

21,409

$

23,112

$

22,367

Costs of revenues

$

8,487

$

8,946

$

9,493

$

9,839

Net loss

$

(528)

$

(3,652)

$

(2,734)

$

(33,449)

Net loss per share:

 

  

 

  

 

  

 

  

Basic and diluted

$

(0.02)

$

(0.11)

$

(0.08)

$

(0.91)

82

Item 9.  Changes in and Disagreements with Accountants on Accounting and Financial Disclosure

None.

Item 9A.  Controls and Procedures

Evaluation of Disclosure Controls and Procedures

Our management, with the participation of our principal executive officer and principal financial and accounting officer, evaluated the effectiveness of our “disclosure controls and procedures” as defined in Exchange Act Rules 13a-15(e) and 15d-15(e) as of December 31, 2021, in connection with the filing of this Annual Report on Form 10-K. Based on that evaluation, as of December 31, 2021, our principal executive officer and principal financial and accounting officer concluded that our disclosure controls and procedures were effective to ensure that information we are required to disclose in reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the rules and forms of the SEC and is accumulated and communicated to our management as appropriate to allow timely decisions regarding required disclosure.

Management’s Report on Internal Control over Financial Reporting

Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as defined in Rules 13a-15(f) and 15d-15(f) under the Exchange Act, for the Company. Our management, with the participation of our principal executive officer and principal financial and accounting officer, assessed the effectiveness of our internal control over financial reporting (ICFR) as of December 31, 2021. This evaluation was based on the framework established in Internal Control—Integrated Framework (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (“COSO”). Based on our assessment under the COSO framework, our management concluded that our internal control over financial reporting was effective as of December 31, 2021.

The effectiveness of the Company’s internal control over financial reporting as of December 31, 2021, has been audited by BPM LLP, the Company's independent registered public accounting firm, as stated in their report which appears in this Annual Report on Form 10-K.

Changes in Internal Control over Financial Reporting

There were no changes in internal control over financial reporting during the fourth quarter ended December 31, 2021, which has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting. We have not experienced any significant impact to our internal controls over financial reporting despite the fact that most of our employees are working remotely due to the COVID-19 pandemic. The design of our processes and controls allow for remote execution with accessibility to secure data. We are continually monitoring and assessing the COVID-19 situation to minimize the impact, if any, on the design and operating effectiveness on our internal controls.

Item 9B.  Other Information.

None.

Item 9C.  Disclosure Regarding Foreign Jurisdictions that Prevent Inspections.

None.

83

PART III

Pursuant to Paragraph (3) of the General Instructions to Form 10-K, certain of the information required by Part III of this Form 10-K is incorporated by reference from our Proxy Statement as set forth below. The Proxy Statement is expected to be filed within 120 days of December 31, 2021.

Item 10.  Directors, Executive Officers and Corporate Governance.

Information with respect to our directors and our Audit Committee appears in our Proxy Statement under “Proposal No. 1 — Election of Directors — Nominees for the Board of Directors” and is incorporated herein by reference. Information with respect to our executive officers appears in Part I, Item 1 — “Information about our Executive Officers” of this Form 10-K.

With regard to the information required by this item regarding compliance with Section 16(a) of the Exchange Act, we will provide disclosure of delinquent Section 16(a) reports, if any, in our Proxy Statement, and such disclosure, if any, is incorporated herein by reference.

Our Board of Directors has adopted a Code of Ethics (“Code of Ethics”), which is applicable to all employees of the Company, including our principal executive officer and our principal financial and accounting officer. Our Code of Ethics is available on our website at www.pdf.com, on the investor relations page. The Company’s website address provided is not intended to function as a hyperlink, and the information on the Company’s website is not, and should not be considered, part of this Annual Report on Form 10-K and is not incorporated by reference herein. You may also request a copy of our Code of Ethics in writing by sending your request to PDF Solutions, Inc., Attention: Investor Relations, 2858 De La Cruz Blvd., Santa Clara, California 95050. If we make any substantive amendments to our Code of Ethics or grant any waiver, including any implicit waiver, from a provision of the Code of Ethics to our Chief Executive Officer or Chief Financial Officer, we will disclose the nature of such amendment or waiver on our website or in a current report on Form 8-K.

Item 11.  Executive Compensation.

The information required by this item is incorporated herein by reference to the section entitled “Compensation of Executive Officers and Other Matters — Executive Compensation” in our Proxy Statement.

Item 12.  Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.

The information required by this item is incorporated herein by reference to the section entitled “Security Ownership of Certain Beneficial Owners and Management” in our Proxy Statement. Also incorporated by reference is the information in the table under the heading “Equity Compensation Plan Information” in our Proxy Statement.

Item 13.  Certain Relationships and Related Transactions, and Director Independence.

The information required by this item is incorporated herein by reference to the section entitled “Certain Relationships and Related Transactions and Directors Independence” in our Proxy Statement.

Item 14.  Principal Accountant Fees and Services.

Information with respect to Principal Accountant Fees and Services is incorporated by reference to “Proposal No. 2: Ratification of Appointment of Independent Registered Public Accounting Firm” in our Proxy Statement.

84

PART IV

Item 15.  Exhibits and Financial Statement Schedules

(a)The following documents are filed as part of this report:
(1)Consolidated Financial Statements and Reports of Independent Registered Public Accounting Firms

The following documents are included as Part II, Item 8 of this Form 10-K:

 

 

Page

 

 

 

 

Reports of BPM LLP, Independent Registered Public Accounting Firm (PCAOB ID: 207)

47

 

Consolidated Balance Sheets as of December 31, 2021 and 2020

50

 

Consolidated Statements of Comprehensive Loss for the Years Ended December 31, 2021 and 2020

51

 

Consolidated Statements of Stockholders’ Equity for the Years Ended December 31, 2021 and 2020

52

 

Consolidated Statements of Cash Flows for the Years Ended December 31, 2021 and 2020

53

 

Notes to Consolidated Financial Statements

55

(2)Financial Statement Schedules

All financial statement schedules have been omitted, since the required information is not applicable or is not present in amounts sufficient to require submission of the schedule, or because the information required is included in the consolidated financial statements and notes thereto included in this Form 10-K.

(3)Exhibits required by Item 601 of Regulation S-K

See Item 15(b) below.

85

(b)Exhibits

INDEX TO EXHIBITS

Exhibit
Number

    

Description

1.01

 

Board of Directors Acceleration Agreement (incorporated herein by reference to the registrant’s Current Report on Form 8-K filed November 23, 2005)*

3.01

 

Third Amended and Restated Certificate of Incorporation of PDF Solutions, Inc. (incorporated herein by reference to registrant’s Registration Statement on Form S-1/A filed July 9, 2001)

3.02

 

Amended and Restated Bylaws of PDF Solutions, Inc. (incorporated herein by reference to registrant’s Quarterly Report on Form 8-K filed May 1, 2019)

4.01

 

Specimen Stock Certificate (incorporated herein by reference to registrant’s Quarterly Report on Form 10-Q filed September 6, 2001)

4.02

 

Stockholder Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020 (incorporated herein by reference to registrant’s Quarterly Report on Form 10-Q filed November 6, 2020)

4.03

Description of the Registrant’s Securities Registered Pursuant to Section 12 of the Securities Exchange Act of 1934†

10.01

 

Form of Indemnification Agreement between PDF Solutions, Inc. and certain of its executive officers and directors (incorporated herein by reference to registrant’s Registration Statement on Form S-1 filed August 7, 2000)

10.02

 

Form of Indemnification Agreement between PDF Solutions, Inc. and certain of its senior executive officers and directors (incorporated herein by reference to the registrant’s Annual Report on Form 10-K filed March 16, 2009)*

10.03

 

PDF Solutions, Inc. 2021 Employee Stock Purchase Plan (incorporated herein by reference to Annex A to the registrant’s proxy statement filed on April 28, 2021)*

10.04

PDF Solutions Inc. Sixth Amended and Restated 2011 Stock Incentive Plan (incorporated herein by reference to Appendix A to the registrant’s proxy statement dated May 8, 2020)*

10.05

 

Form of Stock Option Agreement (Non-statutory) under PDF Solutions, Inc. 2011 Stock Incentive Plan (incorporated herein by reference to registrant’s Annual Report on Form 10-K filed March 15, 2012)*

10.06

 

Form of Stock Unit Agreement under PDF Solutions, Inc. 2011 Stock Incentive Plan (incorporated herein by reference to registrant’s Annual Report on Form 10-K filed March 15, 2012)*

10.07

 

Form of Stock Appreciation Right Agreement under PDF Solutions, Inc. 2011 Stock Incentive Plan (incorporated herein by reference to registrant’s filing on Form 10-Q filed November 9, 2012)*

10.08

 

Employment confirmation to John Kibarian from PDF Solutions, Inc. dated October 13, 2009 (incorporated herein by reference to registrant’s Annual Report on Form 10-K filed March 15, 2012)*

10.09

 

Employment confirmation to Kimon Michaels from PDF Solutions, Inc. dated October 13, 2009 (incorporated herein by reference to registrant’s Annual Report on Form 10-K filed March 15, 2012)*

10.10

 

Employment offer to Adnan Raza, dated January 23, 2020 (incorporated herein by reference to registrant’s filing on Form 10-K filed on March 10, 2020)*

10.11

 

Software License and Related Services Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated March 25, 2020 and Amendment No.1 thereto dated July 29, 2020 (incorporated herein by reference to registrant’s Quarterly Report on Form 10-Q filed November 6, 2020)+

10.12

 

Amended and Restated Master Development Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020 (incorporated herein by reference to registrant’s Quarterly Report on Form 10-Q filed November 6, 2020)+

10.13

 

Master Commercial Terms and Support Services Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020 (incorporated herein by reference to registrant’s Quarterly Report on Form 10-Q filed November 6, 2020)+

10.14

 

Securities Purchase Agreement by and between PDF Solutions, Inc. and Advantest America, Inc. dated July 29, 2020 (incorporated herein by reference to registrant’s Quarterly Report on Form 10-Q filed November 6, 2020)+.

86

Exhibit
Number

    

Description

21.01

 

Subsidiaries of Registrant †

23.01

 

Consent of BPM LLP, Independent Registered Public Accounting Firm†

31.01

 

Certifications of the principal executive officer and principal financial and accounting officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002†

31.02

 

Certifications of the principal executive officer and principal financial and accounting officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002†

32.01

 

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002**

32.02

 

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002**

101

 

The following financial statements from the Company’s Annual Report on Form 10-K for the year ended December 31, 2021, formatted in Inline XBRL: (i) Consolidated Balance Sheets as of December 31, 2021 and 2020, (ii) Consolidated Statements of Comprehensive Loss for the Years Ended December 31, 2021 and 2020, (iii) Consolidated Statements of Changes in Stockholders’ Equity for the Years Ended December 31, 2021 and 2020, (iv) Consolidated Statements of Cash Flows for the Years Ended December 31, 2021 and 2020, and (v) Notes to Consolidated Financial Statements, tagged as blocks of text and including detailed tags.

104

 

Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)

 *

Indicates management contract or compensatory plan or arrangement.

Filed herewith.

 **

Furnished, and not filed.

+

Certain portions of this document that constitute confidential information have been redacted in accordance with Regulation S-K, Item 601(b)(10).

Item 16.  Form 10-K Summary

Not applicable.

87

SIGNATURES

Pursuant to the requirements of Section 13 or 15(d) of the Securities Exchange Act of 1934, the Registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.

  

PDF SOLUTIONS, INC.

  

  

  

  

  

  

By:

/s/  John K. Kibarian 

  

  

  

John K. Kibarian

  

  

  

President and Chief Executive Officer

  

  

  

(Principal executive officer)

  

  

  

  

  

  

By:

/s/  Adnan Raza

  

  

  

Adnan Raza

  

  

  

Executive Vice President, Finance and Chief Financial Officer

  

  

  

(Principal financial and accounting officer)

  

Date March 1, 2022

Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.

Date

    

Signature

    

Title

  

 

 

 

 

March 1, 2022

 

/s/ JOHN K. KIBARIAN

 

Director, President and Chief Executive Officer

  

 

John K. Kibarian

 

(Principal executive officer)

  

 

 

 

 

March 1, 2022

 

/s/ ADNAN RAZA

 

Executive Vice President, Finance and Chief Financial

  

 

Adnan Raza

 

Officer

(Principal financial and accounting officer)

  

 

 

 

 

March 1, 2022

 

/s/ JOSEPH R. BRONSON

 

Lead Independent Director

  

 

Joseph R. Bronson

 

 

  

 

 

 

 

March 1, 2022

 

/s/ NANCY ERBA

 

Director

  

 

Nancy Erba

 

 

  

 

 

 

 

March 1, 2022

 

/s/ MICHAEL B. GUSTAFSON

 

Director

  

 

Michael Gustafson

 

 

  

 

 

 

 

March 1, 2022

 

s/ MARCO IANSITI

 

Director 

 

 

Marco Iansiti

 

 

 

 

 

 

 

March 1, 2022

 

s/ YE JANE LI

 

Director 

 

 

Ye Jane Li

 

 

 

 

 

 

 

March 1, 2022

 

s/ KIMON MICHAELS

 

Director 

 

 

Kimon Michaels

 

 

 

 

 

 

 

March 1, 2022

 

s/ SHUO ZHANG

 

Director 

 

 

Shuo Zhang

 

 

88

EX-4.3 2 pdfs-20211231xex4d3.htm EX-4.3

Exhibit 4.03

DESCRIPTION OF THE REGISTRANT’S SECURITIES

REGISTERED PURSUANT TO SECTION 12 OF THE SECURITIES

EXCHANGE ACT OF 1934

PDF Solutions, Inc. (“we,” “our,” “us,” or the “Company”) has one class of securities registered under Section 12 of the Securities Exchange Act of 1934, as amended: our common stock. The following summary of the terms of our common stock is based upon our Third Amended and Restated Certificate of Incorporation (“Restated Certificate”) and our Amended and Restated Bylaws (“Bylaws”). This summary does not purport to be complete and is subject to, and is qualified in its entirety by express reference to, the applicable provisions of our Restated Certificate of Incorporation and our Bylaws, which are filed as exhibits to our Annual Report on Form 10-K and are incorporated by reference herein. We encourage you to read our Restated Certificate, our Bylaws and the applicable provisions of the Delaware General Corporation Law (the “DGCL”) for more information.

DESCRIPTION OF COMMON STOCK

General

Our authorized capital stock consists of 70,000,000 shares of common stock with a par value of $0.00015 per share, and 5,000,000 shares of preferred stock with a par value of $0.00015 per share, all of which shares of preferred stock are undesignated. Our board of directors may establish the rights and preferences of the preferred stock from time to time.

Common Stock

The holders of common stock are entitled to one vote for each share held of record on all matters submitted to a vote of the stockholders. Subject to preferences that may be applicable to any outstanding preferred stock, holders of common stock are entitled to receive ratably such dividends as may be declared by the board of directors out of funds legally available for that purpose. See "Dividend Policy." In the event of our liquidation, dissolution or winding, the holders of common stock are entitled to share ratably in all assets remaining after payment of liabilities, subject to the prior distribution rights of any outstanding preferred stock. The common stock has no preemptive or conversion rights or other subscription rights. The outstanding shares of common stock are fully paid and non-assessable.

Delaware Anti-Takeover Law and Charter and Bylaw Provisions

Provisions of Delaware law and our charter documents could make our acquisition and the removal of incumbent officers and directors more difficult. These provisions are expected to discourage certain types of coercive takeover practices and inadequate takeover bids and to encourage persons seeking to acquire control of us to negotiate with us first. We believe that the benefits of increased protection of our potential ability to negotiate with the proponent of an unfriendly or unsolicited proposal to acquire or restructure us outweighs the disadvantages of discouraging such proposals because, among other things, negotiation of such proposals could result in an improvement of their terms.

We are subject to the provisions of Section 203 of the Delaware law. In general, the statute prohibits a publicly-held Delaware corporation from engaging in a "business combination" with an "interested stockholder" for a period of three years after the date that the person became an interested stockholder unless, subject to exceptions, the business combination or the transaction in which the person became an interested stockholder is approved in a prescribed manner. Generally, a "business combination" includes a merger, asset or stock sale, or other transaction resulting in a financial benefit to the stockholder. Generally, an "interested stockholder" is a person who, together with affiliates and associates, owns, or within three years prior, did own, 15% or more of the corporation's voting stock. These provisions may have the effect of delaying, deferring or preventing a change in control of us without further action by the stockholders.


Our Restated Certificate provides that stockholder action can be taken only at an annual or special meeting of stockholders and may not be taken by written consent. The Bylaws provide that special meetings of stockholders can be called only by the board of directors, the chairperson of the board, or by the president. The bylaws set forth an advance notice procedure with regard to the nomination, other than by or at the direction of the board of directors, of candidates for election as directors and with regard to business to be brought before a meeting of stockholders.

Transfer Agent and Registrar

The transfer agent and registrar for the common stock is ComputerShare Investor Services, at 250 Royall Street, Canton, MA 02021.

2


EX-21.1 3 pdfs-20211231xex21d1.htm EX-21.1

Exhibit 21.01

Subsidiaries of Registrant

Name of Entity

Jurisdiction of Incorporation or Organization

 

 

Cimetrix Incorporated

Nevada

 

 

Cimetrix International, Inc.

Nevada

 

 

Cimetrix Japan KK

Japan

 

 

Cimetrix Software (Shanghai) Co., Ltd.

China

 

 

PDF Solutions Asia Services, Inc.

Delaware

 

 

PDF Solutions Canada Ltd.

Canada

 

 

PDF Solutions GmbH

Germany

 

 

PDF Solutions International Services, Inc.

Delaware

 

 

PDF Solutions KK

Japan

 

 

PDF Solutions Pacific Services, Inc.

Delaware

 

 

PDF Solutions SARL

France

 

 

PDF Solutions Semiconductor Technology (Korea) Limited

Korea

 

 

PDF Solutions Semiconductor Technology (Shanghai) Co. Ltd.

China

 

 

PDF Solutions Semiconductor Technology Taiwan Ltd.

Taiwan

 

 

Syntricity, Inc.

California


EX-23.1 4 pdfs-20211231xex23d1.htm EX-23.1

Exhibit 23.01

CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

We hereby consent to the incorporation by reference in the Registration Statements on Form S-8 (Nos. 333-257792, 333-233070, 333-202455, 333-180324, 333-167533, 333-159211, 333-149281, 333-141660, 333-133332, 333-112728, 333-109809, and 333-102509) of PDF Solutions, Inc. of our reports dated March 1, 2022 relating to the consolidated financial statements and internal control over financial reporting which appear in this Annual Report on Form 10-K.

/s/ BPM LLP

San Jose, California

March 1, 2022


EX-31.1 5 pdfs-20211231xex31d1.htm EX-31.1

EXHIBIT 31.01

CERTIFICATIONS

I, John K. Kibarian, certify that:

1.  I have reviewed this annual report on Form 10-K of PDF Solutions, Inc.;

2.  Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3.  Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the period presented in this report;

4.  The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a)  Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b)  Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c)  Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d)  Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5.  The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of registrant’s board of directors (or persons performing the equivalent functions):

(a)  All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b)  Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

    

/s/ John K. Kibarian

John K. Kibarian

President and Chief Executive Officer

(principal executive officer)

March 1, 2022


EX-31.2 6 pdfs-20211231xex31d2.htm EX-31.2

EXHIBIT 31.02

CERTIFICATIONS

I, Adnan Raza, certify that:

1.  I have reviewed this annual report on Form 10-K of PDF Solutions, Inc.;

2.  Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3.  Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4.  The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a)  Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b)  Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c)  Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d)  Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5.  The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of registrant’s board of directors (or persons performing the equivalent functions):

(a)  All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b)  Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

2

    

/s/ Adnan Raza

Adnan Raza

Executive Vice President, Finance and Chief Financial Officer

(Principal financial and accounting officer)

March 1, 2022


EX-32.1 7 pdfs-20211231xex32d1.htm EX-32.1

EXHIBIT 32.01

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Annual Report of PDF Solutions, Inc. (the “Company”) on Form 10-K for the year ended December 31, 2021 as filed with the Securities and Exchange Commission on March 1, 2022 (the “Report”), I, John K. Kibarian, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

(1) The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

    

/s/ John K. Kibarian

John K. Kibarian

President and Chief Executive Officer

(principal executive officer)

March 1, 2022


EX-32.2 8 pdfs-20211231xex32d2.htm EX-32.2

EXHIBIT 32.02

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Annual Report of PDF Solutions, Inc. (the “Company”) on Form 10-K for the year ended December 31, 2021 as filed with the Securities and Exchange Commission on March 1, 2022 (the “Report”), I, Adnan Raza, Executive Vice President, Finance and Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

(1) The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

    

/s/ Adnan Raza

Adnan Raza

Executive Vice President, Finance and Chief Financial Officer

(principal financial and accounting officer)

March 1, 2022


EX-101.SCH 9 pdfs-20211231.xsd EX-101.SCH 00100 - Statement - CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40402 - Disclosure - Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives (Details) link:presentationLink link:calculationLink link:definitionLink 40502 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT - Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Note 5 - BALANCE SHEET COMPONENTS - Intangible Asset (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Note 5 - BALANCE SHEET COMPONENTS - Intangible Asset (Details) (Calc 3) link:presentationLink link:calculationLink link:definitionLink 40604 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40702 - Disclosure - Note 7 - LEASES - Lease Cost (Details) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 41102 - Disclosure - Note 11 - INCOME TAXES - Income Tax Expense (Benefit) (Details) link:presentationLink link:calculationLink link:definitionLink 41103 - Disclosure - Note 11 - INCOME TAXES - Income Tax Reconciliation (Details) link:presentationLink link:calculationLink link:definitionLink 41104 - Disclosure - Note 11 - INCOME TAXES - Deferred Tax Assets (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - Note 12 - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 41402 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS - Fair Value, Assets Measured on a Recurring Basis (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 00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY link:presentationLink link:calculationLink link:definitionLink 00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY (Parentheticals) link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - Note 2 - REVENUE link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - Note 4 - BUSINESS COMBINATION link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - Note 7 - LEASES link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - Note 8 - COMMITMENTS AND CONTINGENCIES link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - Note 9 - STOCKHOLDERS EQUITY link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - Note 11 - INCOME TAXES link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - Note 12 - NET LOSS PER SHARE link:presentationLink link:calculationLink link:definitionLink 11301 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION link:presentationLink link:calculationLink link:definitionLink 11401 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS link:presentationLink link:calculationLink link:definitionLink 11501 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) link:presentationLink link:calculationLink link:definitionLink 20102 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies) link:presentationLink link:calculationLink link:definitionLink 30103 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) link:presentationLink link:calculationLink link:definitionLink 30203 - Disclosure - Note 2 - REVENUE (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - Note 4 - BUSINESS COMBINATION (Tables) link:presentationLink link:calculationLink link:definitionLink 30503 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT (Tables) link:presentationLink link:calculationLink link:definitionLink 30603 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS (Tables) link:presentationLink link:calculationLink link:definitionLink 30703 - Disclosure - Note 7 - LEASES (Tables) link:presentationLink link:calculationLink link:definitionLink 31003 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS (Tables) link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - Note 11 - INCOME TAXES (Tables) link:presentationLink link:calculationLink link:definitionLink 31203 - Disclosure - Note 12 - NET LOSS PER SHARE (Tables) link:presentationLink link:calculationLink link:definitionLink 31303 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) link:presentationLink link:calculationLink link:definitionLink 31403 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 31503 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Tables) link:presentationLink link:calculationLink link:definitionLink 40101 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40102 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) link:presentationLink link:calculationLink link:definitionLink 40103 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - Note 2 - REVENUE - Narrative 1 (Details) link:presentationLink link:calculationLink link:definitionLink 40202 - Disclosure - Note 2 - REVENUE - Narrative 2 (Details) link:presentationLink link:calculationLink link:definitionLink 40202 - Disclosure - Note 2 - REVENUE - Narrative 2 Default (Details) link:presentationLink link:calculationLink link:definitionLink 40203 - Disclosure - Note 2 - REVENUE - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - Note 4 - BUSINESS COMBINATION - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40403 - Disclosure - Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives Other (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40602 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 40603 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40701 - Disclosure - Note 7 - LEASES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - Note 8 - COMMITMENTS AND CONTINGENCIES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - Note 9 - STOCKHOLDERS EQUITY - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 41002 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options, Valuation Assumptions (Details) link:presentationLink link:calculationLink link:definitionLink 41003 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) link:presentationLink link:calculationLink link:definitionLink 41004 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) link:presentationLink link:calculationLink link:definitionLink 41005 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - Note 11 - INCOME TAXES - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 41105 - Disclosure - Note 11 - INCOME TAXES - Unrecognized Tax Benefits (Details) link:presentationLink link:calculationLink link:definitionLink 41106 - Disclosure - Note 11 - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) link:presentationLink link:calculationLink link:definitionLink 41202 - Disclosure - Note 12 - NET LOSS PER SHARE - Anti-dilutive Securities (Details) link:presentationLink link:calculationLink link:definitionLink 41301 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Narrative (Details) link:presentationLink link:calculationLink link:definitionLink 41302 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) link:presentationLink link:calculationLink link:definitionLink 41303 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 41304 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 41401 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS - Other (Details) link:presentationLink link:calculationLink link:definitionLink 41501 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Details) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 10 pdfs-20211231_cal.xml EX-101.CAL EX-101.DEF 11 pdfs-20211231_def.xml EX-101.DEF EX-101.LAB 12 pdfs-20211231_lab.xml EX-101.LAB EX-101.PRE 13 pdfs-20211231_pre.xml EX-101.PRE XML 14 R1.htm IDEA: XBRL DOCUMENT v3.22.0.1
Document And Entity Information - USD ($)
$ in Millions
12 Months Ended
Dec. 31, 2021
Feb. 25, 2022
Jun. 30, 2021
Document and Entity Information      
Document Type 10-K    
Document Annual Report true    
Document Period End Date Dec. 31, 2021    
Document Transition Report false    
Entity File Number 000-31311    
Entity Registrant Name PDF SOLUTIONS INC    
Entity Incorporation, State or Country Code DE    
Entity Tax Identification Number 25-1701361    
Entity Address, Address Line One 2858 De La Cruz Blvd.    
Entity Address, City or Town Santa Clara    
Entity Address, State or Province CA    
Entity Address, Postal Zip Code 95050    
City Area Code 408    
Local Phone Number 280-7900    
Title of 12(b) Security Common Stock, $0.00015 par value    
Trading Symbol PDFS    
Security Exchange Name NASDAQ    
Entity Well-known Seasoned Issuer No    
Entity Voluntary Filers No    
Entity Current Reporting Status Yes    
Entity Interactive Data Current Yes    
Entity Filer Category Non-accelerated Filer    
Entity Small Business true    
Entity Emerging Growth Company false    
ICFR Auditor Attestation Flag true    
Entity Shell Company false    
Entity Public Float     $ 515
Entity Common Stock, Shares Outstanding   37,707,111  
Entity Central Index Key 0001120914    
Amendment Flag false    
Current Fiscal Year End Date --12-31    
Document Fiscal Period Focus FY    
Document Fiscal Year Focus 2021    
Auditor Name BPM LLP    
Auditor Firm ID 207    
Auditor Location San Jose, CA    
XML 15 R2.htm IDEA: XBRL DOCUMENT v3.22.0.1
CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Current assets:    
Cash and cash equivalents $ 27,684 $ 30,315
Short-term investments 112,542 114,981
Accounts receivable, net of allowance for doubtful accounts of $890 and $963 in 2021 and 2020, respectively 40,087 34,140
Prepaid expenses and other current assets 8,194 13,944
Total current assets 188,507 193,380
Property and equipment, net 35,295 39,242
Operating lease right-of-use assets, net 5,408 6,672
Goodwill 14,123 15,774
Intangible assets, net 21,239 24,573
Deferred tax assets, net 75 249
Other non-current assets 9,121 7,690
Total assets 273,768 287,580
Current liabilities:    
Accounts payable 5,554 4,399
Accrued compensation and related benefits 9,495 8,339
Accrued and other current liabilities 3,328 6,309
Operating lease liabilities - current portion 1,758 1,926
Deferred revenues - current portion 23,691 19,895
Billings in excess of recognized revenues   1,337
Total current liabilities 43,826 42,205
Long-term income taxes payable 2,656 2,956
Non-current operating lease liabilities 5,258 6,516
Other non-current liabilities 2,443 1,397
Total liabilities 54,183 53,074
Commitments and contingencies (Note 8)
Stockholders' equity:    
Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding
Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 47,414 and 46,400, respectively; shares outstanding 37,411 and 36,850, respectively 6 6
Additional paid-in-capital 423,069 407,173
Treasury stock at cost, 10,003 and 9,550 shares, respectively (104,705) (96,215)
Accumulated deficit (97,721) (76,233)
Accumulated other comprehensive loss (1,064) (225)
Total stockholders' equity 219,585 234,506
Total liabilities and stockholders' equity $ 273,768 $ 287,580
XML 16 R3.htm IDEA: XBRL DOCUMENT v3.22.0.1
CONSOLIDATED BALANCE SHEETS (Parentheticals) - USD ($)
shares in Thousands, $ in Thousands
Dec. 31, 2021
Dec. 31, 2020
CONSOLIDATED BALANCE SHEETS    
Accounts receivable, allowance for doubtful accounts $ 890 $ 963
Preferred stock, par value (in dollars per share) $ 0.00015 $ 0.00015
Preferred stock, shares authorized (in shares) 5,000 5,000
Preferred stock, shares issued (in shares) 0 0
Preferred stock, shares outstanding (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.00015 $ 0.00015
Common stock, shares authorized (in shares) 70,000 70,000
Common stock, shares issued (in shares) 47,414 46,400
Common stock, shares outstanding (in shares) 37,411 36,850
Treasury stock, shares (in shares) 10,003 9,550
XML 17 R4.htm IDEA: XBRL DOCUMENT v3.22.0.1
CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS - USD ($)
shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Revenues:    
Revenues $ 111,060 $ 88,046
Costs and Expenses:    
Costs of revenues 44,193 36,765
Research and development 43,780 34,654
Selling, general and administrative 37,649 32,677
Amortization of acquired intangible assets 1,255 741
Write-down in value of property and equipment 3,183  
Interest and other expense (income), net (683) 1,269
Loss before income taxes (18,317) (18,060)
Income tax expense 3,171 22,303
Net loss (21,488) (40,363)
Other comprehensive income (loss):    
Foreign currency translation adjustments, net of tax (825) 1,253
Change in unrealized losses related to available-for-sale debt securities, net of tax (14) 2
Total other comprehensive income (loss) (839) 1,255
Comprehensive loss $ (22,327) $ (39,108)
Basic (in dollars per share) $ (0.58) $ (1.17)
Diluted (in dollars per share) $ (0.58) $ (1.17)
Basic weighted-average shares outstanding (in shares) 37,138 34,458
Diluted weighted-average shares outstanding (in shares) 37,138 34,458
Analytics [Member]    
Revenues:    
Revenues $ 93,415 $ 57,232
Integrated Yield Ramp [Member]    
Revenues:    
Revenues $ 17,645 $ 30,814
XML 18 R5.htm IDEA: XBRL DOCUMENT v3.22.0.1
CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY - USD ($)
shares in Thousands, $ in Thousands
Common Stock Outstanding [Member]
Additional Paid-in Capital [Member]
Treasury Stock [Member]
Retained Earnings [Member]
AOCI Attributable to Parent [Member]
Total
Balances (in shares) at Dec. 31, 2019 32,503   9,294      
Balances at Dec. 31, 2019 $ 5 $ 325,197 $ (91,695) $ (35,870) $ (1,480) $ 196,157
Issuance of common stock, net of issuance of $0.1 million (in shares) 3,307          
Issuance of common stock, net of issuance of $0.1 million $ 1 65,077       65,078
Issuance of common stock in connection with employee stock purchase plan (in shares) 183          
Issuance of common stock in connection with employee stock purchase plan   1,670       $ 1,670
Issuance of common stock in connection with exercise of options (in shares) 246         246
Issuance of common stock in connection with exercise of options   2,570       $ 2,570
Vesting of restricted stock units (in shares) 611          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     256      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (4,520)     (4,520)
Stock-based compensation expense   12,659       12,659
Comprehensive income (loss)       (40,363) 1,255 (39,108)
Balances (in shares) at Dec. 31, 2020 36,850   9,550      
Balances at Dec. 31, 2020 $ 6 407,173 $ (96,215) (76,233) (225) 234,506
Issuance of common stock in connection with employee stock purchase plan (in shares) 109          
Issuance of common stock in connection with employee stock purchase plan   1,035       $ 1,035
Issuance of common stock in connection with exercise of options (in shares) 216         216
Issuance of common stock in connection with exercise of options   1,930       $ 1,930
Vesting of restricted stock units (in shares) 487          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     202      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (3,967)     (3,967)
Repurchase of common stock (in shares) (251)   251      
Repurchase of common stock     $ (4,523)     (4,523)
Stock-based compensation expense   12,931       12,931
Comprehensive income (loss)       (21,488) (839) (22,327)
Balances (in shares) at Dec. 31, 2021 37,411   10,003      
Balances at Dec. 31, 2021 $ 6 $ 423,069 $ (104,705) $ (97,721) $ (1,064) $ 219,585
XML 19 R6.htm IDEA: XBRL DOCUMENT v3.22.0.1
CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY (Parentheticals)
$ in Millions
12 Months Ended
Dec. 31, 2020
USD ($)
CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY  
Issuance costs $ 0.1
XML 20 R7.htm IDEA: XBRL DOCUMENT v3.22.0.1
CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Cash flows from operating activities:    
Net loss $ (21,488) $ (40,363)
Adjustments to reconcile net loss to net cash provided by operating activities:    
Depreciation and amortization 6,218 6,725
Stock-based compensation expense 12,931 12,463
Amortization of acquired intangible assets 3,334 1,446
Amortization of costs capitalized to obtain revenue contracts 674 549
Loss on disposal and write-down in carrying value of property and equipment 3,183 500
Deferred taxes 1,373 21,007
Other 147 (25)
Changes in operating assets and liabilities:    
Accounts receivable (5,980) 8,101
Prepaid expenses and other current assets 1,136 (433)
Operating lease right-of-use assets 1,414 1,193
Other non-current assets (1,336) 2,069
Accounts payable (86) (918)
Accrued compensation and related benefits 1,264 1,926
Accrued and other liabilities (648) 928
Deferred revenues 5,028 7,755
Billings in excess of recognized revenues (1,337) 220
Operating lease liabilities (1,584) (1,360)
Net cash provided by operating activities 4,243 21,783
Cash flows from investing activities:    
Proceeds from maturities of short-term investments 171,000 16,500
Purchases of short-term investments (168,560) (131,454)
Purchases of property and equipment (3,672) (6,005)
Prepayment for the purchase of property and equipment (381) (963)
Payment for business acquisition, net of cash acquired (3,054) (28,580)
Net cash used in investing activities (4,667) (150,502)
Cash flows from financing activities:    
Proceeds from exercise of stock options 1,930 2,570
Proceeds from employee stock purchase plan 1,035 1,670
Payments for taxes related to net share settlement of equity awards (3,967) (4,520)
Repurchases of common stock (4,523)  
Proceeds from issuance of common stock, net of issuance costs paid   65,078
Net cash provided by (used in) financing activities (5,525) 64,798
Effect of exchange rate changes on cash and cash equivalents (182) 131
Net decrease in cash, cash equivalents, and restricted cash (6,131) (63,790)
Cash, cash equivalents, and restricted cash at beginning of year 33,815 97,605
Cash, cash equivalents, and restricted cash at end of year 27,684 33,815
Reconciliation of cash, cash equivalents, and restricted cash to the balance sheets:    
Cash and cash equivalents 27,684 30,315
Restricted cash   3,500
Total cash, cash equivalents and restricted cash 27,684 33,815
Supplemental disclosure of cash flow information:    
Cash paid during the period for taxes 1,873 2,707
Cash paid for amounts included in the measurement of operating lease liabilities 1,947 2,022
Supplemental disclosure of noncash information:    
Property and equipment received and accrued in accounts payable and accrued and other liabilities 1,359 133
Advances for purchase of fixed assets transferred from prepaid assets to property and equipment 963  
Operating lease liabilities arising from obtaining right-of-use assets $ 161 286
Stock-based compensation capitalized as software development costs   $ 190
XML 21 R8.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES
12 Months Ended
Dec. 31, 2021
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

PDF SOLUTIONS, INC.

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

1. DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Description of Business

PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower engineers and data scientists across the semiconductor ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (or IP) for integrated circuit (or IC) designs, electrical measurement hardware tools, proven methodologies, and professional services.

Basis of Presentation

The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for doubtful accounts, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

The global COVID-19 pandemic has impacted the operations and purchasing decisions of companies worldwide. As of the date of issuance of the consolidated financial statements, the Company is not aware of any specific event or circumstance relating to COVID-19 that would require updates to the Company’s estimates and judgments or revisions to the carrying value of its assets or liabilities. These estimates may change, as new events occur and additional information is obtained, and are recognized in the consolidated financial statements as soon as they become known. Actual results could differ from those estimates and any such differences may be material to the financial statements.

Concentration of Credit Risk

Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short -term investments, and accounts receivable. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.

The Company primarily sells its products and services to companies in Asia, Europe and North America within the semiconductor industry. As of December 31, 2021, two customers accounted for 44% of the Company’s gross accounts receivable and two customers accounted for 27% of the Company’s total revenues for 2021. As of December 31, 2020, two customers accounted for 27% of the Company’s gross accounts receivable and one customer accounted for 23% of the Company’s revenues for 2020. See Note 13 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.

The allowance for doubtful accounts, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.

Cash and Cash Equivalents, Short-term Investments, and Restricted Cash

The Company considers all highly liquid investments with an original maturity of 90 days or less or investments with a remaining maturity of 90 days or less at the purchase to be cash equivalents and investments with original maturities greater than 90 days but less than one year to be short-term investments. The Company classifies securities with readily determinable market values as available-for-sale. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and losses deemed temporary in nature, net of tax, reported as a component of accumulated other comprehensive loss in stockholders’ equity. Realized gains and losses and declines in value determined to be other than temporary are based on the specific identification method and are included as a component of other expense, net in the Consolidated Statements of Comprehensive Loss.

The Company periodically reviews short-term investments for impairment. In the event a decline in value is determined to be other-than-temporary, an impairment loss is recognized. When determining if a decline in value is other-than-temporary, the Company takes into consideration the current market conditions, the duration and severity of and the reason for the decline, and the likelihood that it would need to sell the security prior to a recovery of par value.

As of December 31, 2021 and 2020, short-term investments consisted solely of U.S. Treasury bills. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2021. There were also no impairments in the investments’ value in the year ended December 31, 2021. Refer to Note 14 “Fair Value Measurements” for further discussion on the Company’s investments.

Restricted cash of $3.5 million included in the “Prepaid expenses and other current assets” in the Company’s Consolidated Balance Sheet as of December 31, 2020 pertains to the amount, subject to adjustments, specifically designated to pay for the Holdback amount related to the Company’s acquisition of Cimetrix Incorporated (“Cimetrix”). Refer to Note 4, “Business Combination” for further discussion about the payment of Holdback Amount in fiscal 2021.

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable is determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $11.8 million and $7.2 million as of December 31, 2021 and 2020, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.3 million and $2.0 million as of December 31, 2021 and 2020, respectively. The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for doubtful accounts is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for doubtful accounts is reviewed on a quarterly basis to assess the adequacy of the allowance.

Accounts receivable reserves are summarized below (in thousands):

Deductions/

Balance at

Charged 

Write-offs

Balance at

Beginning

Charged to

Against

of Accounts

End of

    

of Period

    

Expense (1)

    

Revenue (1)

    

Receivable (1)

    

Period

2021

$

963

$

$

$

(73)

$

890

2020

$

213

$

$

800

$

(50)

$

963

(1)Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.

Property and Equipment

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

3-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated

useful life or term of

 

lease

Intangible Assets

Intangible assets consist of acquired technology, certain contract rights, customer relationships, trademarks and trade names, and in-process research and development (IPR&D). These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from one to ten years, except for IPR&D projects. Acquired IPR&D is initially accounted for as indefinite-lived intangible asset and tested annually for impairment. Once the IPR&D asset becomes available for use, it will be amortized over the estimated useful life or will be written off upon abandonment. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.

Goodwill

The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.

Leases

The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use assets (ROU), operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company also elected the transition package of three practical expedients which allow companies not to reassess (i) whether agreements contain leases, (ii) the classification of leases, and (iii) the capitalization of initial direct costs. Further, the Company elected to not separate lease and non-lease components for all of its leases.

The Company determines if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options

involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.

Software Development Costs

Internally developed software is software developed to meet our internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally five to six years. The costs to develop software that is marketed externally have not been capitalized as we believe our current software development process is essentially completed concurrent with the establishment of technological feasibility. As such, all related software development costs are expensed as incurred and included in research and development expense in our Consolidated Statements of Comprehensive Loss.

Cost of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, and amortization of acquired technology. Services costs include material, employee compensation and related benefits, subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by us in providing services to the Company’s customers in solution engagements or sold in conjunction with the Company’s software products.

Research and Development Expenses

Research and development expenses consist primarily of personnel-related costs to support product development activities, including compensation and benefits, outside development services, travel, facilities cost allocations, and stock-based compensation charges. Research and development expenses are charged to operations as incurred.

Selling, General and Administrative Expenses

Selling, general and administrative expenses consist primarily of compensation and benefits for sales, marketing and general and administrative personnel, legal and accounting services, marketing communications, travel and facilities cost allocations, and stock-based compensation charges.

Stock-Based Compensation

The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the

terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Income Taxes

The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Loss.

Net Income (Loss) Per Share

Basic net income (loss) per share is computed by dividing net income by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.

Foreign Currency Translation

The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive loss are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive loss. Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Loss.

Derivative Financial Instruments

The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months.

Business Combinations

The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over the useful life, whereas any indefinite lived intangible assets, including IPR&D and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (FASB) requirements. See Note 8, Commitments and Contingencies.

Recently Adopted Accounting Standards

In December 2019, the Financial Accounting Standards Board (“FASB”) issued Accounting Standard Update (“ASU”) No. 2019-12, Income Taxes (Topic 740), Simplifying the Accounting for Income Taxes, related to simplifying the accounting for income taxes. The guidance eliminates certain exceptions from Accounting Standards Codification (“ASC”) 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The guidance also clarifies and simplifies other aspects of the accounting for income taxes. The guidance became effective for the Company beginning in the first quarter of 2021 on a prospective basis. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures

In January 2020, the FASB issued ASU No. 2020-01, Investments-Equity Securities (Topic 321), Investments-Equity Method and Joint Ventures (Topic 323), and Derivatives and Hedging (Topic 815)-Clarifying the Interactions between Topic 321, Topic 323, and Topic 815. This ASU clarifies the interaction between accounting standards related to equity securities (ASC 321), equity method investments (ASC 323), and certain derivatives (ASC 815). The amendments in this ASU are effective for fiscal years beginning after December 15, 2020. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures.

Management has reviewed other recently issued accounting pronouncements and has determined there are not any that would have a material impact on the consolidated financial statements.

Accounting Standards Not Yet Effective

In June 2016, the FASB issued ASU No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (ASU 2016-13), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04,

Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

Additionally, ASU No. 2019-10 defers the effective date for the adoption of the new standard on credit losses for public filers that are considered small reporting companies (“SRC”) as defined by the SEC to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, which will be fiscal 2023 for the Company if it continues to be classified as an SRC. In February 2020, the FASB issued ASU 2020-02, which provides guidance regarding methodologies, documentation, and internal controls related to expected credit losses. The subsequent amendments will have the same effective date and transition requirements as ASU No. 2016-13. Early adoption is permitted. Topic 326 requires a modified retrospective approach by recording a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption. While the Company is currently evaluating the impact of Topic 326, the Company does not expect the adoption of this ASU to have a material impact on its consolidated financial statements or the related disclosure.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.

XML 22 R9.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 2 - REVENUE
12 Months Ended
Dec. 31, 2021
REVENUE  
Note 2 - REVENUE

2. REVENUE

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB ASC Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), SaaS (which is primarily Exensio products), and DFI™ systems and CV® systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project–based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.

The Gainshare royalty contained in IYR contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue by timing of revenue:

Year Ended December 31, 

 

    

2021

    

2020

Over time

65

63

%

Point-in-time

 

35

37

%

Total

 

100

%  

100

%

International revenues accounted for approximately 55% and 58% of total revenues for the year ended December 31, 2021 and 2020, respectively. See Note 13, Customer and Geographic Information.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, licenses software and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare royalty revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s

estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e. contract liabilities) at the contract level. At December 31, 2021 and 2020, contract assets of $0.4 million and $3.7 million, respectively, are included in prepaid expenses and other current assets in the Consolidated Balance Sheets. The Company did not record any asset impairment charges related to contract assets during fiscal year 2021 and 2020.

Deferred revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded as non-current deferred revenues. The non-current portion of deferred revenue included in other non-current liabilities as of December 31, 2021 and 2020 was $2.4 million and $1.2 million, respectively. Revenue recognized for the years ended December 31, 2021 and 2020, that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $16.9 million and $10.7 million, respectively.

At December 31, 2021, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $179.5 million. Given the applicable contract terms with customers, the majority of this amount is expected to be recognized as revenue over the next two years, with the remainder in the following three years. This amount does not include significant contracts to which the customer is not committed, future sales-based or usage-based royalty payments in exchange for a license of intellectual property, and future payments for performance obligations from on-demand arrangements. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized in the years ended December 31, 2021 and 2020 from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.4 million and an increase $0.1 million, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare royalty.

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets as of December 31, 2021 and 2020 was $0.6 million and $0.8 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying Consolidated Balance Sheets as of December 31, 2021 and 2020 was $2.1 million and $0.9 million, respectively. Amortization of these assets for each of

the years ended December 31, 2021 and 2020 was $0.7 million and $0.5 million, respectively. There was no impairment loss in relation to the costs capitalized for the periods presented.

Certain eligible initial project costs are capitalized when the costs relate directly to the contract, the costs generate or enhance resources of the Company that will be used in satisfying the performance obligation in the future, and the costs are expected to be recovered. These costs primarily consist of transition and set-up costs related to the installation of systems and processes and other deferred fulfillment costs eligible for capitalization. Capitalized costs are amortized consistent with the transfer to the customer of the services to which the asset relates and recorded as a component of cost of revenues. The Company also incurs certain direct costs to provide services in relation to the specific anticipated contracts. The Company recognizes such costs as a component of cost of revenues, the timing of which is dependent upon identification of a contract arrangement. At the end of the reporting period, the Company evaluates its deferred costs for their probable recoverability. Deferred costs balance included in prepaid expenses and other current assets and other non-current assets in the accompanying Consolidated Balance Sheets was immaterial as of December 31, 2021 and 2020. The Company recognizes impairment deferred costs when it is determined that the costs no longer have future benefits and are no longer recoverable. There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical Expedients

The Company does not adjust transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component for the years ended December 31, 2021 and 2020.

XML 23 R10.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS
12 Months Ended
Dec. 31, 2021
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS  
Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

3. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

On July 29, 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”) that included the following agreements.

A Securities Purchase Agreement for the purchase by Advantest of an aggregate of 3,306,924 shares of its common stock for aggregate gross proceeds of $65.2 million and a related Stockholder Agreement.
An Amendment #1 to that certain Software License and Related Services Agreement, dated as of March 25, 2020, for an exclusive commercial arrangement in which the Company and Advantest will collaborate on, and the Company will initially host, develop and maintain, an Advantest-specific cloud layer on the Exensio platform.
An Amended and Restated Master Development Agreement with Advantest, pursuant to which the Company and Advantest agreed to collaborate on extensions to or combinations of both of their existing technology and new technology to address mutual customers’ needs through one or more development phases subject to certain conditions as set forth therein. Costs and expenses incurred related to this agreement have not been significant for the year ended December 31, 2021 and 2020.
A Master Commercial Terms and Support Services Agreement for the commercialization and support of integrated products of the Company and Advantest that are the outcome of the above development agreement. No material costs and expenses incurred related to the Commercial Agreement with Advantest have not been significant for the year ended December 31, 2021 and 2020.

Analytics revenue recognized from Advantest during the year ended December 31, 2021 and 2020 was $10.6 million and $3.4 million, respectively. There was no outstanding accounts receivable from Advantest at December 31, 2021. Accounts receivable from Advantest amounted to $0.3 million at December 31, 2020. Deferred revenue amounted to $6.8 million and $5.9 million as of December 31, 2021 and 2020, respectively. There was no occurrence of any termination events under these agreements as of the issuance of these consolidated financial statements.

The Company carries out transactions with Advantest on arm’s length commercial customary terms.

XML 24 R11.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 4 - BUSINESS COMBINATION
12 Months Ended
Dec. 31, 2021
BUSINESS COMBINATION  
Note 4 - BUSINESS COMBINATION

4. BUSINESS COMBINATION

On December 1, 2020 (the “Acquisition Date”), the Company acquired all the stock of Cimetrix Incorporated (“Cimetrix”). Cimetrix a global provider of equipment connectivity products for smart manufacturing and Industry 4.0 that enable factory equipment to communicate to increase productivity, reduce costs, and improve quality. The combination of Cimetrix connectivity products and platforms with the Company’s Exensio analytics platform powered by machine learning, is intended to enable IC, assembly, and electronics manufacturer customers to extract more intelligence from their tools, not just data, to build more reliable chips and systems at lower manufacturing costs. The gross purchase price was approximately $37.5 million ($31.6 million net of cash acquired) for all of the outstanding equity of Cimetrix. The net cash payment for this acquisition which also include the payment of adjusted Holdback Amount, as discussed below, was funded from the available cash of the Company.

At the Acquisition Date, the Company held back $3.5 million of the purchase price (the “Holdback Amount”) to satisfy adjustments and claims for indemnity arising out of breaches of certain representations, warranties and covenants, and certain other enumerated items in the merger agreement.  The Holdback Amount was recorded under accrued and other current liabilities account and the corresponding restricted cash was included in the “Prepaid expenses and other current assets” account in the 2020 Consolidated Balance Sheet. In fiscal 2021, the Company recorded a measurement period adjustment which reduced the Holdback Amount to $3.1 million. The measurement period adjustment did not have an impact on the Company’s Consolidated Statement of Comprehensive Loss during the year ended December 31, 2021. The adjusted Holdback Amount of $3.1 million was paid to the participating equity holders in December 2021.

The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. 

The final purchase price allocation, completed in the fourth quarter of 2021, resulted in adjustments to certain assets and liabilities primarily related to Holdback amount, as discussed above, and a reduction to net deferred tax liabilities of approximately $1.3 million. The corresponding offset of measurement period acquisition adjustments to goodwill aggregated $1.7 million.

The following summarizes the final allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $5,900)

$

8,298

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

12,541

 

8

In-process R&D

 

3,635

 

N/A

Customer relationships

 

1,967

 

10

Noncompetition agreements

 

848

 

3

Tradenames and trademarks

 

808

 

10

Goodwill

 

11,830

 

N/A

Total assets acquired

$

39,927

 

  

Liabilities

 

  

 

  

Accounts payable and accrued expenses

$

1,447

 

  

Deferred revenue

 

375

 

  

Operating lease liabilities

 

132

 

  

Deferred tax liabilities

 

439

 

  

Total liabilities assumed

$

2,393

 

  

Total purchase price allocation

$

37,534

 

  

The estimated fair value of accounts receivable acquired approximates the contractual value of $1.6 million.

Pursuant to the merger agreement, the Company will also make payments to certain employees, subject to their continued employment with Cimetrix, through the second quarter of 2024. The estimated total cash payout is about $1.4 million at Acquisition Date and will be paid at various scheduled payout dates. This amount will be recognized as compensation expense over the period as services are rendered. As of December 31, 2021 and 2020, such accrued compensation recorded under “Accrued compensation and related benefits” in the Consolidated Balance Sheets amounted to $0.5 million and $0.3 million, respectively.

Acquisition-Related Transaction Costs – Transaction expenses related to the acquisition of Cimetrix aggregated $1.6 million for the year ended December 31, 2020. These costs consist of professional fees and administrative costs and were expensed as incurred in the Company’s Consolidated Statement of Comprehensive Loss for the year ended December 31, 2020.

XML 25 R12.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 5 - PROPERTY AND EQUIPMENT
12 Months Ended
Dec. 31, 2021
PROPERTY AND EQUIPMENT  
Note 5 - PROPERTY AND EQUIPMENT

5. PROPERTY AND EQUIPMENT

Property and equipment consist of (in thousands):

December 31, 

    

2021

    

2020

Computer equipment

$

11,924

$

11,585

Software

 

5,419

 

5,451

Furniture, fixtures and equipment

 

2,506

 

2,507

Leasehold improvements

 

6,272

 

6,255

Laboratory and other equipment

 

3,981

 

3,451

Test equipment

 

24,452

 

26,010

Construction-in-progress

 

22,158

 

20,278

 

76,712

 

75,537

Less: accumulated depreciation and amortization

 

(41,417)

 

(36,295)

Total

$

35,295

$

39,242

Test equipment includes DFI™ assets at customer sites that are contributing to Analytics revenue from DFI systems. The construction-in-progress balance related to construction of DFI™ assets totaled $20.0 million and $18.9 million as of December 31, 2021 and 2020, respectively. Depreciation and amortization expense for years ended December 31, 2021 and 2020 was $6.2 million and $6.7 million, respectively.

In 2021, the Company wrote down the value of its property and equipment by $3.2 million related to its first-generation of e-beam tools for DFI™ systems wherein carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.

XML 26 R13.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 6 - GOODWILL AND INTANGIBLE ASSETS
12 Months Ended
Dec. 31, 2021
GOODWILL AND INTANGIBLE ASSETS  
Note 6 - GOODWILL AND INTANGIBLE ASSETS

6. GOODWILL AND INTANGIBLE ASSETS

The Company completed the acquisition of Cimetrix in the year ended December 31, 2020. Refer to Note 4 for additional information related to the goodwill and intangible assets added from this acquisition.

As of December 31, 2021 and 2020, the carrying amounts of goodwill were $14.1 million and $15.8 million, respectively. The following table summarizes goodwill transaction for the year ended December 31, 2021 and 2020 (in thousands):

December 31, 

2021

    

2020

Balance at beginning of year

$

15,774

$

2,293

Addition

13,481

Measurement period acquisition adjustment (1)

 

1,651

 

Balance at end of year

$

14,123

$

15,774

(1)Goodwill adjustment was recorded within the measurement period with a corresponding reduction in the Holdback Amount and reduction to net deferred tax liabilities. See Note 4, Business Combination.

Intangible assets balance was $21.2 million and $24.6 million as of December 31, 2021 and 2020, respectively. Intangible assets as of December 31, 2021 and 2020, consist of the following (in thousands):

December 31, 2021

December 31, 2020

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,407

$

(6,041)

$

3,366

$

9,407

$

(5,398)

$

4,009

Developed technology

 

4-9

 

33,635

 

(17,250)

 

16,385

 

30,000

 

(14,987)

 

15,013

Tradename and trademarks

 

2-10

 

1,598

 

(812)

 

786

 

1,598

 

(706)

 

892

Patent

 

7-10

 

1,800

 

(1,640)

 

160

 

1,800

 

(1,600)

 

200

Noncompetition agreements

 

3

 

848

 

(306)

 

542

 

848

 

(24)

 

824

In-process R&D

 

*

 

 

 

 

3,635

 

N/A

 

3,635

Total

$

47,288

$

(26,049)

$

21,239

$

47,288

$

(22,715)

$

24,573

*

Non-amortizing intangible asset

Developed technology includes reclassified In-process R&D asset related to Cimetrix’s Smart Manufacturing Solutions acquired in fiscal 2020 and reclassified in fiscal 2021 upon it becoming available for us. 

The weighted average amortization period for acquired identifiable intangible assets was 6.8 years as of December 31, 2021. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Loss (in thousands):

Year ended December 31, 

2021

    

2020

Amortization of acquired technology included under Costs of Revenues

$

2,079

$

705

Amortization of acquired intangible assets presented separately under Costs and Expenses

 

1,255

 

741

Balance at end of year

$

3,334

$

1,446

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2022

$

3,468

2023

 

3,444

2024

 

3,046

2025

 

2,882

2026

 

2,712

2027 and thereafter

 

5,687

Total future amortization expense

$

21,239

There were no impairment charges for goodwill and intangible assets for the year ended December 31, 2021 and 2020.

XML 27 R14.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 7 - LEASES
12 Months Ended
Dec. 31, 2021
LEASES  
Note 7 - LEASES

7. LEASES

Lease expense was comprised of the following (in thousands):

Year Ended December 31, 

    

2021

    

2020

Operating lease expense

$

1,860

$

1,828

Short-term lease and variable lease expense (1)

 

822

 

545

Total lease expense

$

2,682

$

2,373

(1)Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental balance sheets information related to leases was as follows:

December 31, 

 

    

2021

    

2020

 

Weighted average remaining lease term under operating ROU leases (in years)

5.7

6.4

Weighted average discount rate for operating lease liabilities

 

5.25

%  

5.24

%

Maturity of operating lease liabilities as of December 31, 2021, are as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2022

$

1,825

2023

 

1,459

2024

 

1,071

2025

 

1,087

2026

 

1,053

2027 and thereafter

1,649

Total future minimum lease payments

$

8,144

Less: Interest (2)

 

(1,128)

Present value of future minimum lease payments under operating lease liabilities (3)

$

7,016

(1)As of December 31, 2021, the total operating lease liability includes $1.1 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.8 million as of December 31, 2021.
XML 28 R15.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 8 - COMMITMENTS AND CONTINGENCIES
12 Months Ended
Dec. 31, 2021
COMMITMENTS AND CONTINGENCIES  
Note 8 - COMMITMENTS AND CONTINGENCIES

8. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest

See Note 3 for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases

Refer to Note 7, Leases, for the discussion about the Company’s lease commitments.

Indemnifications

The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

Purchase obligations

The Company has purchase obligations with certain suppliers for the purchase of goods and services entered in the ordinary course of business. As of December 31, 2021, total outstanding purchase obligations were $8.9 million, the majority of which due within the next 12 months.

Indemnification of Officers and Directors

As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2021, except as disclosed below, the Company was not party to any material legal proceedings, thus no loss was probable and no amount was accrued.

On May 6, 2020the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to PDF under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future, and costs associated with bringing the arbitration proceeding. The arbitration is on-going.

XML 29 R16.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 9 - STOCKHOLDERS EQUITY
12 Months Ended
Dec. 31, 2021
STOCKHOLDERS EQUITY  
Note 9 - STOCKHOLDERS EQUITY

9. STOCKHOLDERS’ EQUITY

Issuance of Common Stock

On July 30, 2020, the Company issued 3,306,924 shares of common stock, at a purchase price of $19.7085 per share, for aggregate gross proceeds of $65.2 million pursuant to a Securities Purchase Agreement with Advantest dated July 29,

2020. Issuance costs related to this private placement aggregated $0.1 million. See Note 3, Securities Purchase Agreement with Advantest, for further details.

Stock Repurchase Program

On May 28, 2020, the Company’s 2018 stock repurchase program (the “2018 Program”) that was originally adopted on May 29, 2018, expired. As of May 28, 2020, approximately 786,000 shares had been repurchased at an average price of $12.43 per share, for a total price of $9.8 million under the 2018 Program.

On June 4, 2020, the Company’s Board of Directors adopted a new stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2021, 251,212 shares were repurchased under the 2020 at average price of $18.01 per share for an aggregate total price of $4.5 million under the 2020 Program.

XML 30 R17.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS
12 Months Ended
Dec. 31, 2021
EMPLOYEE BENEFIT PLANS  
Note 10 - EMPLOYEE BENEFIT PLANS

10. EMPLOYEE BENEFIT PLANS

On December 31, 2021, the Company had the following stock-based compensation plans:

Employee Stock Purchase Plans

In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four six-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan”). The terms of 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.

The Company estimated the fair value of purchase rights granted under the 2021 and 2010 Purchase Plans (collectively, the “Stock Purchase Plans”) during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

2021 Purchase Plan

2010 Purchase Plan

Year Ended
December 31,

 

Year Ended
December 31,

 

2021

2021

    

2020

Expected life (in years)

1.25

 

1.25

 

1.25

Volatility

48.00

%  

34.25

%  

34.25

%

Risk-free interest rate

0.11

%  

1.43

%  

1.43

%

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

6.71

$

4.83

$

4.83

During the year ended December 31, 2021 and 2020, a total of approximately 109,000 and 183,000 shares, respectively, were issued at a weighted-average purchase price of $9.53 and $9.12 per share, respectively. As of December 31, 2021, the estimated unrecognized compensation cost related to the 2021 Purchase Plan was $1.9 million and there was a negligible amount of unrecognized compensation cost related to the 2010 Purchase Plan. These estimated unrecognized compensation costs are expected to be recognized over a weighted average period of 1.6 years. As of December 31, 2021, 1.0 million shares were available for future issuance under the 2021 Purchase Plan, and shares

available for future issuance under the 2010 Purchase Plan was 5.6 million but shares to be issued will be limited only to the final offering period on January 31, 2022.

Stock Incentive Plans

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as amended, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under this plan is 11,550,000 shares, plus up to 3,500,000 shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

Stock options granted under the 2001 Plan generally expire ten years from the date of grant and become vested and exercisable over a four-year period. Although no new awards may be granted under the 2001 Plan, awards made under the 2001 Plan that are currently outstanding remain subject to the terms of each such plan.

As of December 31, 2021, 12.1 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.4 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through December 31, 2021. As of December 31, 2021, there were no outstanding awards that had been granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”)

The Company has elected to use the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life, interest rate and expected dividend. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life of an award is based on historical experience and on the terms and conditions of the stock awards granted to employees. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Year Ended December 31, 

    

2021

    

2020

 

Expected life (in years)

4.45

Volatility

 

%  

40.90

%

Risk-free interest rate

 

%  

0.60

%

Expected dividend

 

 

Weighted average fair value per share of options granted during the period

$

$

5.75

No stock options were granted during the year ended December 31, 2021.

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):

Year Ended December 31, 

    

2021

    

2020

Costs of revenues

$

2,563

$

3,454

Research and development

 

5,515

 

4,800

Selling, general and administrative

 

4,853

 

4,209

Stock-based compensation expenses

$

12,931

$

12,463

The stock-based compensation expense in the table above includes immaterial expense or credit adjustments related to cash-settled SARs granted to certain employees. The Company accounted for these awards as liability awards and the amount was included in accrued compensation and related benefits. SARs were fully exercised in the third quarter of 2020. Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was nil and approximately $0.2 million for the years ended December 31, 2021 and 2020, respectively.

Additional information with respect to options under the Plans is as follows:

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, January 1, 2020

 

745

$

10.64

 

  

 

  

Granted (weighted average fair value of $5.75 per share)

 

24

$

16.72

 

  

 

  

Exercised

 

(246)

$

10.46

 

  

 

  

Canceled

 

(57)

$

11.65

 

  

 

  

Expired

 

(10)

$

10.06

 

  

 

  

Outstanding, January 1, 2021

 

456

$

10.95

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(216)

8.90

 

  

 

  

Canceled

 

(10)

15.56

 

  

 

  

Expired

 

(4)

6.90

 

  

 

  

Outstanding, December 31, 2021

 

226

$

12.78

 

3.20

$

4,288

Vested and expected to vest, December 31, 2021

 

223

$

12.75

 

3.15

$

4,250

Exercisable, December 31, 2021

 

190

$

12.40

 

2.36

$

3,684

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $31.79 as of December 31, 2021, which would have been received by the option holders had all option holders exercised their options as of that date. The total intrinsic value of options exercised during the years ended December 31, 2021 and 2020 was $3.0 million and $2.2 million, respectively.

As of December 31, 2021, there was $0.2 million of total unrecognized compensation cost, net of forfeitures, related to unvested stock options. That cost is expected to be recognized over a weighted average period of 1.7 years. The total fair value of options vested during the year ended December 31, 2021, was $0.2 million.

Nonvested shares (restricted stock units) were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2020

 

1,887

$

12.30

Granted

 

890

$

21.31

Vested

 

(867)

$

13.25

Forfeited

 

(163)

$

13.23

Nonvested, December 31, 2021

 

1,747

$

16.33

Granted

 

977

$

19.43

Vested

 

(689)

$

15.23

Forfeited

 

(163)

$

17.63

Non-vested, December 31, 2021

 

1,872

$

16.33

As of December 31, 2021, there was $25.4 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.6 years. Restricted stock units do not have rights to dividends prior to vesting.

401(k) Savings Plan

In 1999, the Company established a 401(k) tax-deferred savings plan, whereby eligible employees may elect to defer up to 60% of their eligible compensation but not to exceed the statutorily prescribed limit to the 401(k) plan. The 401(k) plan also has a catch-up contribution feature for employees aged 50 or older who can defer up to 100% of their eligible compensation but not to exceed the statutorily prescribed limit to the 401(k) plan. Company contributions to this plan are discretionary; no such Company contributions have been made since the inception of this plan.

XML 31 R18.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES
12 Months Ended
Dec. 31, 2021
INCOME TAXES  
Note 11 - INCOME TAXES

11. INCOME TAXES

During the years ended December 31, 2021 and 2020, loss before taxes from U.S. operations was ($19.7) million and ($18.4) million, respectively, and income before taxes from foreign operations was $1.4 million and $0.3 million, respectively.

Year Ended December 31, 

    

2021

    

2020

(In thousands)

U.S.

  

Current

$

(67)

$

(1,325)

Deferred

 

1,318

 

21,056

Foreign

 

  

 

  

Current

 

237

 

238

Withholding

 

1,591

 

2,392

Deferred

 

92

 

(58)

Total income tax expense

$

3,171

$

22,303

The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2021 and 2020) for the following reasons (in thousands):

Year Ended December 31, 

    

2021

    

2020

Federal statutory tax expense

$

(3,847)

$

(3,793)

State tax provision

 

239

 

703

Stock compensation expense

 

(499)

 

(602)

Tax credits

 

(2,676)

 

(3,488)

Foreign tax, net

 

1,653

 

2,443

Change in valuation allowance

 

8,099

 

29,034

Unrealized tax benefit reserve changes

(151)

Business combination costs

356

Tax law changes

 

 

(2,237)

Other

 

353

 

(113)

Total income tax expense

$

3,171

$

22,303

As of December 31, 2021, the Company had Federal and California net operating loss carry-forwards (“NOLs”) of approximately $51.6 million and $13.1 million, respectively. Some of the Federal NOLs, acquired as part of a past acquisition, have expirations at the end of 2021 and onwards, and the California NOLs begin expiring in 2028 onwards.

As of December 31, 2021, the Company had federal and state research and experimental and other tax credit (“R&D credits”) carry-forwards of approximately $21.0 million and $21.6 million, respectively. The federal credits begin to expire after 2022, while the California credits have no expiration. The extent to which the federal and state credit carry forwards can be used to offset future tax liabilities, respectively, may be limited, depending on the extent of ownership changes within any three-year period as provided in the Tax Reform Act of 1986 and the California Conformity Act of 1987.

The Company assesses its deferred tax assets for recoverability on a regular basis, and where applicable, a valuation allowance is recorded to reduce the total deferred tax asset to an amount that will, more likely than not, be realized in the future. Based on all available evidence, both positive and negative, the Company determined a full valuation allowance was still appropriate for its federal and state net deferred tax assets (DTAs) at December 31, 2021, primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2021 and the likelihood that the Company will not utilize tax attributes before they begin to expire at the end of 2022. The valuation allowance was approximately $51.6 million and $41.9 million as of December 31, 2021 and 2020, respectively. The increase in the valuation allowance from December 31, 2020 to December 31, 2021 was primarily driven by net operating losses (NOLs) and credits generated in the current year which require a valuation allowance. Management will continue to evaluate the need for a valuation allowance and may change its conclusion in a future period based on any change in facts (e.g. 12-quarter cumulative profit, significant new revenue, and other relevant factors). If the Company concludes that it is more likely than not to utilize some or all of its US DTAs, it will release some or all of its valuation allowance and our tax provision will decrease in the period in which we make such determination. Net deferred tax assets, after the US valuation allowance, was immaterial as of December 31, 2021 and $0.2 million as of December 31, 2020.

The components of the net deferred tax assets are comprised of (in thousands):

December 31, 

    

2021

    

2020

Deferred tax assets

 

  

 

  

Net operating loss carry forward

$

13,149

$

8,085

Research and development and other credit carry forward

 

26,591

 

24,723

Foreign tax credit carry forward

 

11,010

 

9,435

Accruals deductible in different periods

 

3,362

 

3,471

Leases

 

1,472

 

1,669

Stock-based compensation

 

1,442

 

1,220

Total deferred tax assets

 

57,026

 

48,603

Less: valuation allowance

 

(51,586)

 

(41,859)

Deferred tax assets, net of valuation allowance

$

5,440

$

6,744

Deferred tax liabilities

 

  

 

  

Property and equipment, net

 

178

 

(629)

Operating lease right-of-use assets

 

(1,472)

 

(1,669)

Intangible assets

 

(4,129)

 

(4,218)

Deferred tax liabilities

$

(5,423)

$

(6,516)

Net deferred tax assets

$

17

$

228

In accordance with the accounting standard relating to accounting for uncertain tax positions, the Company classifies its liabilities for income tax exposures as long-term. The Company includes interest and penalties related to unrecognized tax benefits within the Company’s income tax provision. As of December 31, 2021 and 2020, the Company had accrued interest and penalties related to unrecognized tax benefits of $0.7 million and of $0.8 million, respectively. In the years ended December 31, 2021 and 2020, the Company recognized (reversal of) charges for interest and penalties related to unrecognized tax benefits of ($89,000) and $33,000 respectively, in the Consolidated Statements of Comprehensive Loss.

The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of December 31, 2021 was $14.7 million, of which $2.0 million, if recognized, would impact the Company’s effective tax rate. As of December 31, 2021, the Company has recorded unrecognized tax benefits of $2.6 million, including interest and penalties of $0.7 million, as long-term income taxes payable in its Consolidated Balance Sheet. The remaining $12.9 million has been recorded within our deferred tax assets, which is subject to a full valuation allowance. The Company does not expect the change in unrecognized tax benefits over the next twelve months to materially impact its results of operations and financial position.

A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):

    

Amount

Gross unrecognized tax benefits, January 1, 2020

 

13,615

Increases in tax positions for current year

 

1,024

Increases in tax positions for prior years

 

71

Lapse in statute of limitations

 

(410)

Gross unrecognized tax benefits, December 31, 2020

 

14,300

Increases in tax positions for current year

 

853

Increases in tax positions for prior years

 

1

Lapse in statute of limitations

 

(411)

Gross unrecognized tax benefits, December 31, 2021

$

14,743

The Company does not provide deferred taxes on undistributed earnings of its foreign subsidiaries as it intends to indefinitely reinvest those earnings.

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal, various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the years ended 2018 to present and 2017 to present, respectively. In addition, due to NOL carryback claims, the tax years 2013 through 2015 may be subject to federal examination and all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under income tax examinations in the US or in any other of its major foreign subsidiaries’ jurisdictions.

Valuation allowance for deferred tax assets is summarized (in thousands):

Balance at

Charged to

Deductions/

Balance at

Beginning

Costs and

Write-offs of

End of

    

of Period

    

Expenses

    

Accounts

    

Period

Valuation allowance for deferred tax assets

 

  

 

  

 

  

 

  

2021

$

41,859

$

9,727

$

$

51,586

2020

$

10,486

$

31,373

$

$

41,859


XML 32 R19.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 12 - NET LOSS PER SHARE
12 Months Ended
Dec. 31, 2021
NET LOSS PER SHARE  
Note 12 - NET LOSS PER SHARE

12. NET LOSS PER SHARE

Basic net loss per share is computed by dividing net loss by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net loss per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):

Year Ended December 31, 

    

2021

    

2020

Numerator:

 

  

 

  

Net loss

$

(21,488)

$

(40,363)

Denominator:

 

  

 

  

Basic weighted-average shares outstanding

 

37,138

 

34,458

Effect of dilutive options and restricted stock units

 

 

Diluted weighted-average shares outstanding

 

37,138

 

34,458

Net loss per share, basic and diluted

$

(0.58)

$

(1.17)

For the years ended December 31, 2021 and 2020, because the Company was in a loss position, basic net loss per share is the same as diluted net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table sets forth potential shares of common stock that are not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Year Ended December 31, 

    

2021

    

2020

Outstanding options

 

170

 

332

Non-vested restricted stock units

 

968

 

921

Employee Stock Purchase Plans

 

33

 

160

Total

 

1,171

 

1,413

XML 33 R20.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION
12 Months Ended
Dec. 31, 2021
CUSTOMER AND GEOGRAPHIC INFORMATION  
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION

13. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and reporting segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Year Ended December 31, 

 

Customer

    

2021

    

2020

 

A

*

%  

23

%

D

17

%  

*

%

E

10

%  

*

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

December 31, 

 

Customer

    

2021

    

2020

A

 

*

%  

16

%  

B

 

15

%  

*

%  

C

*

%  

11

%  

D

 

29

%  

*

%  

*

represents less than 10%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):

Year Ended December 31, 

 

2021

2020

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

50,374

 

45

%  

$

36,723

42

%

China

14,267

13

13,776

16

Japan

 

11,097

 

10

 

4,762

5

Taiwan

 

6,387

 

6

 

8,038

9

Rest of the world

 

28,935

 

26

 

24,747

28

Total revenue

$

111,060

 

100

%  

$

88,046

 

100

%

Long-lived assets, net by geographic area is as follows (in thousands):

December 31, 

    

2021

    

2020

United States (1)

$

39,158

$

43,663

Rest of the world

 

1,545

 

2,251

Total long-lived assets, net

$

40,703

$

45,914





(1)

Includes assets deployed at customer sites which could be outside the U.S.

XML 34 R21.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 14 - FINANCIAL INSTRUMENTS
12 Months Ended
Dec. 31, 2021
FINANCIAL INSTRUMENTS  
Note 14 - FINANCIAL INSTRUMENTS

14. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2021 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

December 31, 

Assets

Inputs

Unobservable

Assets

    

2021

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

12,474

$

12,474

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities

 

112,542

 

112,542

 

 

Total

$

125,016

$

125,016

$

$

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2020 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2020

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

18,012

$

18,012

$

$

Short-term investments (available-for-sale debt securities)

U.S. Treasury bills

114,981

114,981

Total

$

132,993

$

132,993

$

$

(1)The carrying amount of the Company’s investments in U.S. Treasury bills approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities at December 31, 2021 and 2020.

From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities, primarily on third-party accounts payables and intercompany balances. The primary objective of the Company’s hedging program is to reduce volatility of earnings related to foreign currency exchange rate fluctuations. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, the Company believes the credit risk of counterparty nonperformance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these contracts is recorded into earnings as a component of other expense (income), net, and offsets the change in fair value of the foreign currency denominated assets and liabilities, which is also recorded in other expense (income), net in the Company’s Consolidated Statements of Comprehensive Loss. There was no realized gain or loss from foreign currency forward contracts during the year ended December 31, 2021. For the year ended December 31, 2020, the Company recognized a realized loss of $0.2 million on the contracts, which is recorded in interest and other expense (income), net in the Company’s Consolidated Statement of Comprehensive Loss. As of December 31, 2021 and 2020, the Company had no outstanding forward contracts.

XML 35 R22.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)
12 Months Ended
Dec. 31, 2021
SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)  
Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)

15. SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)

The following is a summary of the Company’s quarterly consolidated results of operations (unaudited) for the fiscal years ended December 31, 2021 and 2020.

Year Ended December 31, 2021

    

Q1

    

Q2

    

Q3

    

Q4

(In thousands, except for per share amounts)

Total revenues

$

24,200

$

27,419

$

29,555

$

29,886

Costs of revenues

$

10,663

$

10,785

$

11,070

$

11,675

Net loss

$

(7,597)

$

(4,484)

$

(2,407)

$

(7,000)

Net loss per share:

 

  

 

  

 

  

 

  

Basic and diluted

$

(0.21)

$

(0.12)

$

(0.06)

$

(0.19)

Year Ended December 31, 2020

    

Q1

    

Q2

    

Q3

    

Q4

(In thousands, except for per share amounts)

Total revenues

$

21,158

$

21,409

$

23,112

$

22,367

Costs of revenues

$

8,487

$

8,946

$

9,493

$

9,839

Net loss

$

(528)

$

(3,652)

$

(2,734)

$

(33,449)

Net loss per share:

 

  

 

  

 

  

 

  

Basic and diluted

$

(0.02)

$

(0.11)

$

(0.08)

$

(0.91)

XML 36 R23.htm IDEA: XBRL DOCUMENT v3.22.0.1
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)
12 Months Ended
Dec. 31, 2021
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
Basis of Accounting, Policy [Policy Text Block]

Basis of Presentation

The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.

Use of Estimates, Policy [Policy Text Block]

Use of Estimates

The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for doubtful accounts, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

The global COVID-19 pandemic has impacted the operations and purchasing decisions of companies worldwide. As of the date of issuance of the consolidated financial statements, the Company is not aware of any specific event or circumstance relating to COVID-19 that would require updates to the Company’s estimates and judgments or revisions to the carrying value of its assets or liabilities. These estimates may change, as new events occur and additional information is obtained, and are recognized in the consolidated financial statements as soon as they become known. Actual results could differ from those estimates and any such differences may be material to the financial statements.

Concentration Risk, Credit Risk, Policy [Policy Text Block]

Concentration of Credit Risk

Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short -term investments, and accounts receivable. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.

The Company primarily sells its products and services to companies in Asia, Europe and North America within the semiconductor industry. As of December 31, 2021, two customers accounted for 44% of the Company’s gross accounts receivable and two customers accounted for 27% of the Company’s total revenues for 2021. As of December 31, 2020, two customers accounted for 27% of the Company’s gross accounts receivable and one customer accounted for 23% of the Company’s revenues for 2020. See Note 13 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.

The allowance for doubtful accounts, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.

Cash, Cash Equivalents, and Short-term Investments, Policy [Policy Text Block]

Cash and Cash Equivalents, Short-term Investments, and Restricted Cash

The Company considers all highly liquid investments with an original maturity of 90 days or less or investments with a remaining maturity of 90 days or less at the purchase to be cash equivalents and investments with original maturities greater than 90 days but less than one year to be short-term investments. The Company classifies securities with readily determinable market values as available-for-sale. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and losses deemed temporary in nature, net of tax, reported as a component of accumulated other comprehensive loss in stockholders’ equity. Realized gains and losses and declines in value determined to be other than temporary are based on the specific identification method and are included as a component of other expense, net in the Consolidated Statements of Comprehensive Loss.

The Company periodically reviews short-term investments for impairment. In the event a decline in value is determined to be other-than-temporary, an impairment loss is recognized. When determining if a decline in value is other-than-temporary, the Company takes into consideration the current market conditions, the duration and severity of and the reason for the decline, and the likelihood that it would need to sell the security prior to a recovery of par value.

As of December 31, 2021 and 2020, short-term investments consisted solely of U.S. Treasury bills. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2021. There were also no impairments in the investments’ value in the year ended December 31, 2021. Refer to Note 14 “Fair Value Measurements” for further discussion on the Company’s investments.

Restricted cash of $3.5 million included in the “Prepaid expenses and other current assets” in the Company’s Consolidated Balance Sheet as of December 31, 2020 pertains to the amount, subject to adjustments, specifically designated to pay for the Holdback amount related to the Company’s acquisition of Cimetrix Incorporated (“Cimetrix”). Refer to Note 4, “Business Combination” for further discussion about the payment of Holdback Amount in fiscal 2021.

Accounts Receivable [Policy Text Block]

Accounts Receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable is determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $11.8 million and $7.2 million as of December 31, 2021 and 2020, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.3 million and $2.0 million as of December 31, 2021 and 2020, respectively. The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for doubtful accounts is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for doubtful accounts is reviewed on a quarterly basis to assess the adequacy of the allowance.

Accounts receivable reserves are summarized below (in thousands):

Deductions/

Balance at

Charged 

Write-offs

Balance at

Beginning

Charged to

Against

of Accounts

End of

    

of Period

    

Expense (1)

    

Revenue (1)

    

Receivable (1)

    

Period

2021

$

963

$

$

$

(73)

$

890

2020

$

213

$

$

800

$

(50)

$

963

(1)Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.
Property, Plant and Equipment, Policy [Policy Text Block]

Property and Equipment

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

3-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated

useful life or term of

 

lease

Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]

Intangible Assets

Intangible assets consist of acquired technology, certain contract rights, customer relationships, trademarks and trade names, and in-process research and development (IPR&D). These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from one to ten years, except for IPR&D projects. Acquired IPR&D is initially accounted for as indefinite-lived intangible asset and tested annually for impairment. Once the IPR&D asset becomes available for use, it will be amortized over the estimated useful life or will be written off upon abandonment. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.

Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]

Goodwill

The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.

Lessee, Leases [Policy Text Block]

Leases

The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use assets (ROU), operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company also elected the transition package of three practical expedients which allow companies not to reassess (i) whether agreements contain leases, (ii) the classification of leases, and (iii) the capitalization of initial direct costs. Further, the Company elected to not separate lease and non-lease components for all of its leases.

The Company determines if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options

involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.

Research, Development, and Computer Software, Policy [Policy Text Block]

Software Development Costs

Internally developed software is software developed to meet our internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally five to six years. The costs to develop software that is marketed externally have not been capitalized as we believe our current software development process is essentially completed concurrent with the establishment of technological feasibility. As such, all related software development costs are expensed as incurred and included in research and development expense in our Consolidated Statements of Comprehensive Loss.

Cost of Goods and Service [Policy Text Block]

Cost of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, and amortization of acquired technology. Services costs include material, employee compensation and related benefits, subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by us in providing services to the Company’s customers in solution engagements or sold in conjunction with the Company’s software products.

Research and Development Expense, Policy [Policy Text Block]

Research and Development Expenses

Research and development expenses consist primarily of personnel-related costs to support product development activities, including compensation and benefits, outside development services, travel, facilities cost allocations, and stock-based compensation charges. Research and development expenses are charged to operations as incurred.

Selling, General and Administrative Expenses, Policy [Policy Text Block]

Selling, General and Administrative Expenses

Selling, general and administrative expenses consist primarily of compensation and benefits for sales, marketing and general and administrative personnel, legal and accounting services, marketing communications, travel and facilities cost allocations, and stock-based compensation charges.

Share-based Payment Arrangement [Policy Text Block]

Stock-Based Compensation

The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the

terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.

Income Tax, Policy [Policy Text Block]

Income Taxes

The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Loss.

Earnings Per Share, Policy [Policy Text Block]

Net Income (Loss) Per Share

Basic net income (loss) per share is computed by dividing net income by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.

Foreign Currency Transactions and Translations Policy [Policy Text Block]

Foreign Currency Translation

The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive loss are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive loss. Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Loss.

Derivatives, Policy [Policy Text Block]

Derivative Financial Instruments

The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months.

Business Combinations Policy [Policy Text Block]

Business Combinations

The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over the useful life, whereas any indefinite lived intangible assets, including IPR&D and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.

Legal Costs, Policy [Policy Text Block]

Litigation

From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (FASB) requirements. See Note 8, Commitments and Contingencies.

New Accounting Pronouncements, Policy [Policy Text Block]

Recently Adopted Accounting Standards

In December 2019, the Financial Accounting Standards Board (“FASB”) issued Accounting Standard Update (“ASU”) No. 2019-12, Income Taxes (Topic 740), Simplifying the Accounting for Income Taxes, related to simplifying the accounting for income taxes. The guidance eliminates certain exceptions from Accounting Standards Codification (“ASC”) 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The guidance also clarifies and simplifies other aspects of the accounting for income taxes. The guidance became effective for the Company beginning in the first quarter of 2021 on a prospective basis. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures

In January 2020, the FASB issued ASU No. 2020-01, Investments-Equity Securities (Topic 321), Investments-Equity Method and Joint Ventures (Topic 323), and Derivatives and Hedging (Topic 815)-Clarifying the Interactions between Topic 321, Topic 323, and Topic 815. This ASU clarifies the interaction between accounting standards related to equity securities (ASC 321), equity method investments (ASC 323), and certain derivatives (ASC 815). The amendments in this ASU are effective for fiscal years beginning after December 15, 2020. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures.

Management has reviewed other recently issued accounting pronouncements and has determined there are not any that would have a material impact on the consolidated financial statements.

Accounting Standards Not Yet Effective

In June 2016, the FASB issued ASU No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (ASU 2016-13), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04,

Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

Additionally, ASU No. 2019-10 defers the effective date for the adoption of the new standard on credit losses for public filers that are considered small reporting companies (“SRC”) as defined by the SEC to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, which will be fiscal 2023 for the Company if it continues to be classified as an SRC. In February 2020, the FASB issued ASU 2020-02, which provides guidance regarding methodologies, documentation, and internal controls related to expected credit losses. The subsequent amendments will have the same effective date and transition requirements as ASU No. 2016-13. Early adoption is permitted. Topic 326 requires a modified retrospective approach by recording a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption. While the Company is currently evaluating the impact of Topic 326, the Company does not expect the adoption of this ASU to have a material impact on its consolidated financial statements or the related disclosure.

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.

XML 37 R24.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Allowance for Doubtful Accounts [Table Text Block]

Accounts receivable reserves are summarized below (in thousands):

Deductions/

Balance at

Charged 

Write-offs

Balance at

Beginning

Charged to

Against

of Accounts

End of

    

of Period

    

Expense (1)

    

Revenue (1)

    

Receivable (1)

    

Period

2021

$

963

$

$

$

(73)

$

890

2020

$

213

$

$

800

$

(50)

$

963

(1)Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.
Property Plant and Equipment Estimated Useful Lives [Table Text Block]

Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:

Computer equipment

    

3

Software

 

3

Furniture, fixtures, and equipment

 

3-10

Laboratory and test equipment

 

3-10

Leasehold improvements

Shorter of estimated

useful life or term of

 

lease

XML 38 R25.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 2 - REVENUE (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Disaggregation of Revenue [Table Text Block]

Year Ended December 31, 

 

    

2021

    

2020

Over time

65

63

%

Point-in-time

 

35

37

%

Total

 

100

%  

100

%

XML 39 R26.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 4 - BUSINESS COMBINATION (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Business Acquisitions, by Acquisition [Table Text Block]

The following summarizes the final allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $5,900)

$

8,298

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

12,541

 

8

In-process R&D

 

3,635

 

N/A

Customer relationships

 

1,967

 

10

Noncompetition agreements

 

848

 

3

Tradenames and trademarks

 

808

 

10

Goodwill

 

11,830

 

N/A

Total assets acquired

$

39,927

 

  

Liabilities

 

  

 

  

Accounts payable and accrued expenses

$

1,447

 

  

Deferred revenue

 

375

 

  

Operating lease liabilities

 

132

 

  

Deferred tax liabilities

 

439

 

  

Total liabilities assumed

$

2,393

 

  

Total purchase price allocation

$

37,534

 

  

XML 40 R27.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 5 - PROPERTY AND EQUIPMENT (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Property, Plant and Equipment [Table Text Block]

Property and equipment consist of (in thousands):

December 31, 

    

2021

    

2020

Computer equipment

$

11,924

$

11,585

Software

 

5,419

 

5,451

Furniture, fixtures and equipment

 

2,506

 

2,507

Leasehold improvements

 

6,272

 

6,255

Laboratory and other equipment

 

3,981

 

3,451

Test equipment

 

24,452

 

26,010

Construction-in-progress

 

22,158

 

20,278

 

76,712

 

75,537

Less: accumulated depreciation and amortization

 

(41,417)

 

(36,295)

Total

$

35,295

$

39,242

XML 41 R28.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 6 - GOODWILL AND INTANGIBLE ASSETS (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Goodwill [Table Text Block]

As of December 31, 2021 and 2020, the carrying amounts of goodwill were $14.1 million and $15.8 million, respectively. The following table summarizes goodwill transaction for the year ended December 31, 2021 and 2020 (in thousands):

December 31, 

2021

    

2020

Balance at beginning of year

$

15,774

$

2,293

Addition

13,481

Measurement period acquisition adjustment (1)

 

1,651

 

Balance at end of year

$

14,123

$

15,774

(1)Goodwill adjustment was recorded within the measurement period with a corresponding reduction in the Holdback Amount and reduction to net deferred tax liabilities. See Note 4, Business Combination.
Schedule of Finite-Lived Intangible Assets [Table Text Block]

Intangible assets balance was $21.2 million and $24.6 million as of December 31, 2021 and 2020, respectively. Intangible assets as of December 31, 2021 and 2020, consist of the following (in thousands):

December 31, 2021

December 31, 2020

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,407

$

(6,041)

$

3,366

$

9,407

$

(5,398)

$

4,009

Developed technology

 

4-9

 

33,635

 

(17,250)

 

16,385

 

30,000

 

(14,987)

 

15,013

Tradename and trademarks

 

2-10

 

1,598

 

(812)

 

786

 

1,598

 

(706)

 

892

Patent

 

7-10

 

1,800

 

(1,640)

 

160

 

1,800

 

(1,600)

 

200

Noncompetition agreements

 

3

 

848

 

(306)

 

542

 

848

 

(24)

 

824

In-process R&D

 

*

 

 

 

 

3,635

 

N/A

 

3,635

Total

$

47,288

$

(26,049)

$

21,239

$

47,288

$

(22,715)

$

24,573

*

Non-amortizing intangible asset

Finite-lived Intangible Assets Amortization Expense [Table Text Block]

The weighted average amortization period for acquired identifiable intangible assets was 6.8 years as of December 31, 2021. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Loss (in thousands):

Year ended December 31, 

2021

    

2020

Amortization of acquired technology included under Costs of Revenues

$

2,079

$

705

Amortization of acquired intangible assets presented separately under Costs and Expenses

 

1,255

 

741

Balance at end of year

$

3,334

$

1,446

Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2022

$

3,468

2023

 

3,444

2024

 

3,046

2025

 

2,882

2026

 

2,712

2027 and thereafter

 

5,687

Total future amortization expense

$

21,239

XML 42 R29.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 7 - LEASES (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Lease, Cost [Table Text Block]

Lease expense was comprised of the following (in thousands):

Year Ended December 31, 

    

2021

    

2020

Operating lease expense

$

1,860

$

1,828

Short-term lease and variable lease expense (1)

 

822

 

545

Total lease expense

$

2,682

$

2,373

(1)Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental balance sheets information related to leases was as follows:

December 31, 

 

    

2021

    

2020

 

Weighted average remaining lease term under operating ROU leases (in years)

5.7

6.4

Weighted average discount rate for operating lease liabilities

 

5.25

%  

5.24

%

Lessee, Operating Lease, Liability, Maturity [Table Text Block]

Maturity of operating lease liabilities as of December 31, 2021, are as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2022

$

1,825

2023

 

1,459

2024

 

1,071

2025

 

1,087

2026

 

1,053

2027 and thereafter

1,649

Total future minimum lease payments

$

8,144

Less: Interest (2)

 

(1,128)

Present value of future minimum lease payments under operating lease liabilities (3)

$

7,016

(1)As of December 31, 2021, the total operating lease liability includes $1.1 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.8 million as of December 31, 2021.
XML 43 R30.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]

2021 Purchase Plan

2010 Purchase Plan

Year Ended
December 31,

 

Year Ended
December 31,

 

2021

2021

    

2020

Expected life (in years)

1.25

 

1.25

 

1.25

Volatility

48.00

%  

34.25

%  

34.25

%

Risk-free interest rate

0.11

%  

1.43

%  

1.43

%

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

6.71

$

4.83

$

4.83

Year Ended December 31, 

    

2021

    

2020

 

Expected life (in years)

4.45

Volatility

 

%  

40.90

%

Risk-free interest rate

 

%  

0.60

%

Expected dividend

 

 

Weighted average fair value per share of options granted during the period

$

$

5.75

Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]

Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):

Year Ended December 31, 

    

2021

    

2020

Costs of revenues

$

2,563

$

3,454

Research and development

 

5,515

 

4,800

Selling, general and administrative

 

4,853

 

4,209

Stock-based compensation expenses

$

12,931

$

12,463

Share-based Payment Arrangement, Option, Activity [Table Text Block]

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, January 1, 2020

 

745

$

10.64

 

  

 

  

Granted (weighted average fair value of $5.75 per share)

 

24

$

16.72

 

  

 

  

Exercised

 

(246)

$

10.46

 

  

 

  

Canceled

 

(57)

$

11.65

 

  

 

  

Expired

 

(10)

$

10.06

 

  

 

  

Outstanding, January 1, 2021

 

456

$

10.95

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(216)

8.90

 

  

 

  

Canceled

 

(10)

15.56

 

  

 

  

Expired

 

(4)

6.90

 

  

 

  

Outstanding, December 31, 2021

 

226

$

12.78

 

3.20

$

4,288

Vested and expected to vest, December 31, 2021

 

223

$

12.75

 

3.15

$

4,250

Exercisable, December 31, 2021

 

190

$

12.40

 

2.36

$

3,684

Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]

Nonvested shares (restricted stock units) were as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, January 1, 2020

 

1,887

$

12.30

Granted

 

890

$

21.31

Vested

 

(867)

$

13.25

Forfeited

 

(163)

$

13.23

Nonvested, December 31, 2021

 

1,747

$

16.33

Granted

 

977

$

19.43

Vested

 

(689)

$

15.23

Forfeited

 

(163)

$

17.63

Non-vested, December 31, 2021

 

1,872

$

16.33

XML 44 R31.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]

Year Ended December 31, 

    

2021

    

2020

(In thousands)

U.S.

  

Current

$

(67)

$

(1,325)

Deferred

 

1,318

 

21,056

Foreign

 

  

 

  

Current

 

237

 

238

Withholding

 

1,591

 

2,392

Deferred

 

92

 

(58)

Total income tax expense

$

3,171

$

22,303

Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]

The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2021 and 2020) for the following reasons (in thousands):

Year Ended December 31, 

    

2021

    

2020

Federal statutory tax expense

$

(3,847)

$

(3,793)

State tax provision

 

239

 

703

Stock compensation expense

 

(499)

 

(602)

Tax credits

 

(2,676)

 

(3,488)

Foreign tax, net

 

1,653

 

2,443

Change in valuation allowance

 

8,099

 

29,034

Unrealized tax benefit reserve changes

(151)

Business combination costs

356

Tax law changes

 

 

(2,237)

Other

 

353

 

(113)

Total income tax expense

$

3,171

$

22,303

Schedule of Deferred Tax Assets and Liabilities [Table Text Block]

The components of the net deferred tax assets are comprised of (in thousands):

December 31, 

    

2021

    

2020

Deferred tax assets

 

  

 

  

Net operating loss carry forward

$

13,149

$

8,085

Research and development and other credit carry forward

 

26,591

 

24,723

Foreign tax credit carry forward

 

11,010

 

9,435

Accruals deductible in different periods

 

3,362

 

3,471

Leases

 

1,472

 

1,669

Stock-based compensation

 

1,442

 

1,220

Total deferred tax assets

 

57,026

 

48,603

Less: valuation allowance

 

(51,586)

 

(41,859)

Deferred tax assets, net of valuation allowance

$

5,440

$

6,744

Deferred tax liabilities

 

  

 

  

Property and equipment, net

 

178

 

(629)

Operating lease right-of-use assets

 

(1,472)

 

(1,669)

Intangible assets

 

(4,129)

 

(4,218)

Deferred tax liabilities

$

(5,423)

$

(6,516)

Net deferred tax assets

$

17

$

228

Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]

A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):

    

Amount

Gross unrecognized tax benefits, January 1, 2020

 

13,615

Increases in tax positions for current year

 

1,024

Increases in tax positions for prior years

 

71

Lapse in statute of limitations

 

(410)

Gross unrecognized tax benefits, December 31, 2020

 

14,300

Increases in tax positions for current year

 

853

Increases in tax positions for prior years

 

1

Lapse in statute of limitations

 

(411)

Gross unrecognized tax benefits, December 31, 2021

$

14,743

Summary of Valuation Allowance [Table Text Block]

Valuation allowance for deferred tax assets is summarized (in thousands):

Balance at

Charged to

Deductions/

Balance at

Beginning

Costs and

Write-offs of

End of

    

of Period

    

Expenses

    

Accounts

    

Period

Valuation allowance for deferred tax assets

 

  

 

  

 

  

 

  

2021

$

41,859

$

9,727

$

$

51,586

2020

$

10,486

$

31,373

$

$

41,859

XML 45 R32.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 12 - NET LOSS PER SHARE (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]

Basic net loss per share is computed by dividing net loss by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net loss per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):

Year Ended December 31, 

    

2021

    

2020

Numerator:

 

  

 

  

Net loss

$

(21,488)

$

(40,363)

Denominator:

 

  

 

  

Basic weighted-average shares outstanding

 

37,138

 

34,458

Effect of dilutive options and restricted stock units

 

 

Diluted weighted-average shares outstanding

 

37,138

 

34,458

Net loss per share, basic and diluted

$

(0.58)

$

(1.17)

Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]

The following table sets forth potential shares of common stock that are not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Year Ended December 31, 

    

2021

    

2020

Outstanding options

 

170

 

332

Non-vested restricted stock units

 

968

 

921

Employee Stock Purchase Plans

 

33

 

160

Total

 

1,171

 

1,413

XML 46 R33.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]

Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Year Ended December 31, 

 

Customer

    

2021

    

2020

 

A

*

%  

23

%

D

17

%  

*

%

E

10

%  

*

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

December 31, 

 

Customer

    

2021

    

2020

A

 

*

%  

16

%  

B

 

15

%  

*

%  

C

*

%  

11

%  

D

 

29

%  

*

%  

*

represents less than 10%

Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area [Table Text Block]

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):

Year Ended December 31, 

 

2021

2020

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

50,374

 

45

%  

$

36,723

42

%

China

14,267

13

13,776

16

Japan

 

11,097

 

10

 

4,762

5

Taiwan

 

6,387

 

6

 

8,038

9

Rest of the world

 

28,935

 

26

 

24,747

28

Total revenue

$

111,060

 

100

%  

$

88,046

 

100

%

Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]

Long-lived assets, net by geographic area is as follows (in thousands):

December 31, 

    

2021

    

2020

United States (1)

$

39,158

$

43,663

Rest of the world

 

1,545

 

2,251

Total long-lived assets, net

$

40,703

$

45,914





(1)

Includes assets deployed at customer sites which could be outside the U.S.

XML 47 R34.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 14 - FINANCIAL INSTRUMENTS (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Fair Value, Assets Measured on Recurring Basis [Table Text Block]

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2021 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

December 31, 

Assets

Inputs

Unobservable

Assets

    

2021

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

12,474

$

12,474

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities

 

112,542

 

112,542

 

 

Total

$

125,016

$

125,016

$

$

The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2020 and the basis for that measurement (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2020

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

18,012

$

18,012

$

$

Short-term investments (available-for-sale debt securities)

U.S. Treasury bills

114,981

114,981

Total

$

132,993

$

132,993

$

$

XML 48 R35.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Tables)
12 Months Ended
Dec. 31, 2021
Notes Tables  
Quarterly Financial Information [Table Text Block]

Year Ended December 31, 2021

    

Q1

    

Q2

    

Q3

    

Q4

(In thousands, except for per share amounts)

Total revenues

$

24,200

$

27,419

$

29,555

$

29,886

Costs of revenues

$

10,663

$

10,785

$

11,070

$

11,675

Net loss

$

(7,597)

$

(4,484)

$

(2,407)

$

(7,000)

Net loss per share:

 

  

 

  

 

  

 

  

Basic and diluted

$

(0.21)

$

(0.12)

$

(0.06)

$

(0.19)

Year Ended December 31, 2020

    

Q1

    

Q2

    

Q3

    

Q4

(In thousands, except for per share amounts)

Total revenues

$

21,158

$

21,409

$

23,112

$

22,367

Costs of revenues

$

8,487

$

8,946

$

9,493

$

9,839

Net loss

$

(528)

$

(3,652)

$

(2,734)

$

(33,449)

Net loss per share:

 

  

 

  

 

  

 

  

Basic and diluted

$

(0.02)

$

(0.11)

$

(0.08)

$

(0.91)

XML 49 R36.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2021
USD ($)
Dec. 31, 2020
USD ($)
Gain (Loss) on Investments, Total $ 0  
Other than Temporary Impairment Losses, Investments, Total 0  
Restricted Cash, Total   $ 3,500
Unbilled Receivables, Current 11,800 7,200
Contract with Customer, Asset, Unbilled Receivables, Not Billable, Amount Expected to be Collected after Next Twelve Months $ 1,300 2,000
Number of Operating Segments 1  
Number of Reporting Units 1  
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) 4 years  
Minimum [Member]    
Finite-Lived Intangible Asset, Useful Life (Year) 1 year  
Capitalized Computer Software, Useful Life (Year) 5 years  
Maximum [Member]    
Finite-Lived Intangible Asset, Useful Life (Year) 10 years  
Capitalized Computer Software, Useful Life (Year) 6 years  
Prepaid Expenses and Other Current Assets [Member]    
Restricted Cash, Total   $ 3,500
Customer Concentration Risk [Member] | Accounts Receivable [Member]    
Number of Major Customers 2 2
Customer Concentration Risk [Member] | Accounts Receivable [Member] | Two Customers [Member]    
Concentration Risk, Percentage 44.00% 27.00%
Customer Concentration Risk [Member] | Revenue Benchmark [Member]    
Number of Major Customers 2 1
Customer Concentration Risk [Member] | Revenue Benchmark [Member] | Two Customers [Member]    
Concentration Risk, Percentage 27.00%  
Customer Concentration Risk [Member] | Revenue Benchmark [Member] | One Customer [Member]    
Concentration Risk, Percentage   23.00%
XML 50 R37.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Balance at Beginning of Period $ 41,859 $ 10,486
Charged to Expense 9,727 31,373
Balance at End of Period 51,586 41,859
SEC Schedule, 12-09, Allowance, Credit Loss [Member]    
Balance at Beginning of Period 963 213
Charged Against Revenue [1]   800
Deductions/ Write-offs of Accounts Receivable (73) (50)
Balance at End of Period $ 890 $ 963
[1] Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.
XML 51 R38.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details)
12 Months Ended
Dec. 31, 2021
Computer Equipment [Member]  
Property, plant and equipment, useful life (Year) 3 years
Software and Software Development Costs [Member]  
Property, plant and equipment, useful life (Year) 3 years
Furniture and Fixtures [Member] | Minimum [Member]  
Property, plant and equipment, useful life (Year) 3 years
Furniture and Fixtures [Member] | Maximum [Member]  
Property, plant and equipment, useful life (Year) 10 years
Laboratory and Test Equipment [Member] | Minimum [Member]  
Property, plant and equipment, useful life (Year) 3 years
Laboratory and Test Equipment [Member] | Maximum [Member]  
Property, plant and equipment, useful life (Year) 10 years
XML 52 R39.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 2 - REVENUE - Narrative 1 (Details)
12 Months Ended
Dec. 31, 2021
USD ($)
item
Dec. 31, 2020
USD ($)
Number of revenue sources | item 2  
Capitalized Contract Cost, Impairment Loss $ 0 $ 0
Contract with Customer, Liability, Noncurrent 2,400,000 1,200,000
Contract with Customer, Liability, Revenue Recognized 16,900,000 10,700,000
Revenue, Remaining Performance Obligation, Amount 179,500,000  
Contract with Customer, Performance Obligation Satisfied in Previous Period (400,000) 100,000
Capitalized Contract Cost, Amortization 674,000 549,000
Prepaid Expenses and Other Current Assets [Member]    
Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total 400,000 3,700,000
Capitalized Contract Cost, Net, Total 600,000 800,000
Other Noncurrent Assets [Member]    
Capitalized Contract Cost, Net, Total $ 2,100,000 $ 900,000
Geographic Concentration Risk [Member] | Revenue Benchmark [Member]    
Concentration Risk, Percentage 100.00% 100.00%
Geographic Concentration Risk [Member] | Revenue Benchmark [Member] | Non-US [Member]    
Concentration Risk, Percentage 55.00% 58.00%
XML 53 R40.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 2 - REVENUE - Narrative 2 (Details) - Software License and Related Services Agreement [Member] - Advantest America, Inc. [Member]
Dec. 31, 2021
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-01-01 | Minimum [Member]  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year) 2 years
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01 | Maximum [Member]  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year) 3 years
XML 54 R41.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 2 - REVENUE - Disaggregation of Revenue (Details)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Percent of revenues 100.00% 100.00%
Transferred over Time [Member]    
Percent of revenues 65.00% 63.00%
Transferred at Point in Time [Member]    
Percent of revenues 35.00% 37.00%
XML 55 R42.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) - USD ($)
3 Months Ended 12 Months Ended
Jul. 29, 2020
Dec. 31, 2021
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Dec. 31, 2020
Sep. 30, 2020
Jun. 30, 2020
Mar. 31, 2020
Dec. 31, 2021
Dec. 31, 2020
Proceeds from Issuance of Common Stock                     $ 65,078,000
Revenue from Contract with Customer, Including Assessed Tax   $ 29,886,000 $ 29,555,000 $ 27,419,000 $ 24,200,000 $ 22,367,000 $ 23,112,000 $ 21,409,000 $ 21,158,000 $ 111,060,000 88,046,000
Strategic Partnership for Joint Development and Sales Technology Solutions [Member]                      
Stock Issued During Period, Shares, New Issues (in shares) 3,306,924                    
Proceeds from Issuance of Common Stock $ 65,200,000                    
Amendment #1 to Software License & Related Services Agreement [Member]                      
Revenue from Contract with Customer, Including Assessed Tax                   10,600,000 3,400,000
Related Party Transaction, Due from (to) Related Party, Total   0       300,000       0 300,000
Contract with Customer, Liability, Total   $ 6,800,000       $ 5,900,000       6,800,000 5,900,000
Commercial Agreement With Advantest [Member]                      
Costs and Expenses, Related Party                   $ 0 $ 0
XML 56 R43.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 4 - BUSINESS COMBINATION - Narrative (Details) - USD ($)
$ in Thousands
1 Months Ended 3 Months Ended 12 Months Ended
Dec. 01, 2020
Dec. 31, 2020
Dec. 31, 2021
Dec. 31, 2021
Dec. 31, 2020
Payments to Acquire Businesses, Net of Cash Acquired, Total       $ 3,054 $ 28,580
Increase (decrease) in goodwill due to the acquisition purchase price adjustment       1,651 0
Cimetrix Incorporated [Member]          
Business Combination, Consideration Transferred, Total $ 37,500        
Payments to Acquire Businesses, Net of Cash Acquired, Total 31,600        
Business Combination, Holdback Amount 3,500        
Business Combination, Acquired Receivables, Gross Contractual Amount   $ 1,600     1,600
Business Combination, Estimated Cash Payout to Certain Employees $ 1,400        
Goodwill after purchase price adjustment       3,100  
Increase (decrease) in deferred tax liabilities     $ (1,300)    
Increase (decrease) in goodwill due to the acquisition purchase price adjustment     (1,700)    
Business Combination, Acquisition Related Costs   1,600      
Cimetrix Incorporated [Member] | Accrued Compensation and Related Benefits [Member]          
Business Combination, Accrued Estimated Cash Payout to Certain Employees   $ 300 $ 500 $ 500 $ 300
XML 57 R44.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2020
Dec. 31, 2021
Dec. 31, 2019
Goodwill $ 15,774 $ 14,123 $ 2,293
Cimetrix Incorporated [Member]      
Fair value of tangible assets (including cash of $5,900) 8,298    
Goodwill 11,830    
Total assets acquired 39,927    
Accounts payable and accrued expenses 1,447    
Deferred revenue 375    
Operating lease liabilities 132    
Deferred tax liabilities 439    
Total liabilities assumed 2,393    
Total purchase price allocation 37,534    
Cimetrix Incorporated [Member] | In Process Research and Development [Member]      
Fair value of indefinite-lived intangible assets 3,635    
Developed Technology Rights [Member] | Cimetrix Incorporated [Member]      
Fair value of cash 5,900    
Fair value of finite-lived intangible assets $ 12,541    
Finite-lived intangible assets, amortization period (Year) 8 years    
Customer Relationships [Member] | Cimetrix Incorporated [Member]      
Fair value of finite-lived intangible assets $ 1,967    
Finite-lived intangible assets, amortization period (Year) 10 years    
Noncompete Agreements [Member] | Cimetrix Incorporated [Member]      
Fair value of finite-lived intangible assets $ 848    
Finite-lived intangible assets, amortization period (Year) 3 years    
Trademarks and Trade Names [Member] | Cimetrix Incorporated [Member]      
Fair value of finite-lived intangible assets $ 808    
Finite-lived intangible assets, amortization period (Year) 10 years    
XML 58 R45.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives Other (Details)
$ in Millions
Dec. 31, 2020
USD ($)
Developed Technology Rights [Member] | Cimetrix Incorporated [Member]  
Fair value of cash $ 5.9
XML 59 R46.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 5 - PROPERTY AND EQUIPMENT - Narrative (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Depreciation, Depletion and Amortization, Nonproduction, Total $ 6,200 $ 6,700
Write-down in value of property and equipment 3,183  
DFI Test Equipment [Member]    
Construction in Progress, Gross $ 20,000 $ 18,900
XML 60 R47.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 5 - PROPERTY AND EQUIPMENT - Property and Equipment (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Property and equipment, gross $ 76,712 $ 75,537
Less: accumulated depreciation and amortization (41,417) (36,295)
Total 35,295 39,242
Computer Equipment [Member]    
Property and equipment, gross 11,924 11,585
Software and Software Development Costs [Member]    
Property and equipment, gross 5,419 5,451
Furniture and Fixtures [Member]    
Property and equipment, gross 2,506 2,507
Leasehold Improvements [Member]    
Property and equipment, gross 6,272 6,255
Laboratory and Test Equipment [Member]    
Property and equipment, gross 3,981 3,451
Test Equipment [Member]    
Property and equipment, gross 24,452 26,010
Construction in Progress [Member]    
Property and equipment, gross $ 22,158 $ 20,278
XML 61 R48.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 6 - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Dec. 31, 2019
Goodwill $ 14,123 $ 15,774 $ 2,293
Net Carrying Amount, Total $ 21,239 24,573  
Finite-Lived Intangible Assets, Remaining Amortization Period (Year) 6 years 9 months 18 days    
Amortization of Intangible Assets, Total $ 3,334 1,446  
Impairment of Intangible Assets, Finite-lived 0 0  
Cost of Sales [Member]      
Amortization of Intangible Assets, Total 2,079 705  
Amortization Of Other Acquired Intangible Assets [Member]      
Amortization of Intangible Assets, Total $ 1,255 $ 741  
XML 62 R49.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 6 - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
GOODWILL AND INTANGIBLE ASSETS    
Balance at beginning of period $ 15,774 $ 2,293
Addition   13,481
Measurement period acquisition adjustment (1) 1,651 0
Balance at end of period $ 14,123 $ 15,774
XML 63 R50.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 6 - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Accumulated Amortization $ (26,049) $ (22,715)
Net Carrying Amount 21,239  
Gross Carrying Amount, Total 47,288 47,288
Net Carrying Amount, Total 21,239 24,573
In Process Research and Development [Member]    
In-process R&D   3,635
Customer Relationships [Member]    
Gross Carrying Amount 9,407 9,407
Accumulated Amortization (6,041) (5,398)
Net Carrying Amount $ 3,366 4,009
Customer Relationships [Member] | Minimum [Member]    
Amortization Period (Year) 1 year  
Customer Relationships [Member] | Maximum [Member]    
Amortization Period (Year) 10 years  
Developed Technology Rights [Member]    
Gross Carrying Amount $ 33,635 30,000
Accumulated Amortization (17,250) (14,987)
Net Carrying Amount $ 16,385 15,013
Developed Technology Rights [Member] | Minimum [Member]    
Amortization Period (Year) 4 years  
Developed Technology Rights [Member] | Maximum [Member]    
Amortization Period (Year) 9 years  
Trademarks and Trade Names [Member]    
Gross Carrying Amount $ 1,598 1,598
Accumulated Amortization (812) (706)
Net Carrying Amount $ 786 892
Trademarks and Trade Names [Member] | Minimum [Member]    
Amortization Period (Year) 2 years  
Trademarks and Trade Names [Member] | Maximum [Member]    
Amortization Period (Year) 10 years  
Patents [Member]    
Gross Carrying Amount $ 1,800 1,800
Accumulated Amortization (1,640) (1,600)
Net Carrying Amount $ 160 200
Patents [Member] | Minimum [Member]    
Amortization Period (Year) 7 years  
Patents [Member] | Maximum [Member]    
Amortization Period (Year) 10 years  
Noncompete Agreements [Member]    
Amortization Period (Year) 3 years  
Gross Carrying Amount $ 848 848
Accumulated Amortization (306) (24)
Net Carrying Amount $ 542 $ 824
XML 64 R51.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 6 - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details)
$ in Thousands
Dec. 31, 2021
USD ($)
GOODWILL AND INTANGIBLE ASSETS  
2022 $ 3,468
2023 3,444
2024 3,046
2025 2,882
2026 2,712
2027 and thereafter 5,687
Net Carrying Amount $ 21,239
XML 65 R52.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 7 - LEASES - Narrative (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
LEASES    
Operating Lease, Liability, Amount Related to Extension of Lease Term $ 1,100  
Operating Lease, Liability, Current $ 1,758 $ 1,926
XML 66 R53.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 7 - LEASES - Lease Cost (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
LEASES    
Operating lease expense $ 1,860 $ 1,828
Short-term lease and variable lease expense (1) 822 545
Total lease expense $ 2,682 $ 2,373
Weighted average remaining lease term under operating ROU leases (in years) (Year) 5 years 8 months 12 days 6 years 4 months 24 days
Weighted average discount rate for operating lease liabilities 5.25% 5.24%
XML 67 R54.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details)
$ in Thousands
Dec. 31, 2021
USD ($)
LEASES  
2022 $ 1,825
2023 1,459
2024 1,071
2025 1,087
2026 1,053
2027 and thereafter 1,649
Total future minimum lease payments 8,144
Less: Interest (2) (1,128)
Present value of future minimum lease payments under operating lease liabilities (3) $ 7,016
XML 68 R55.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 8 - COMMITMENTS AND CONTINGENCIES - Narrative (Details)
12 Months Ended
Dec. 31, 2021
USD ($)
COMMITMENTS AND CONTINGENCIES  
Term of Product Warranty 90 days
Purchase Obligation, Total $ 8,900,000
Threshold payment period 12 months
Accrued amount $ 0
XML 69 R56.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 9 - STOCKHOLDERS EQUITY - Narrative (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Jul. 30, 2020
Jun. 04, 2020
May 28, 2020
Dec. 31, 2021
Dec. 31, 2020
Proceeds from Issuance of Common Stock         $ 65,078
Treasury Stock, Value, Acquired, Cost Method       $ 4,523  
The 2018 Stock Repurchase Program [Member]          
Treasury Stock, Shares, Acquired (in shares)     786,000    
Treasury Stock Acquired, Average Cost Per Share (in dollars per share)     $ 12.43    
Treasury Stock, Value, Acquired, Cost Method     $ 9,800    
The 2020 Stock Repurchase Program [Member]          
Stock Repurchase Program, Authorized Amount   $ 25,000      
Stock Repurchase Program, Period in Force (Year)   2 years      
Treasury Stock, Shares, Acquired (in shares)       251,212  
Treasury Stock Acquired, Average Cost Per Share (in dollars per share)       $ 18.01  
Treasury Stock, Value, Acquired, Cost Method       $ 4,500  
Strategic Partnership for Joint Development and Sales Technology Solutions [Member]          
Stock Issued During Period, Shares, New Issues (in shares) 3,306,924        
Shares Issued, Price Per Share (in dollars per share) $ 19.7085        
Proceeds from Issuance of Common Stock $ 65,200        
Payments of Stock Issuance Costs $ 100        
XML 70 R57.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS - Narrative (Details)
$ / shares in Units, $ in Thousands
1 Months Ended 12 Months Ended
Jun. 15, 2021
Nov. 16, 2011
shares
Jul. 31, 2001
item
Dec. 31, 2021
USD ($)
$ / shares
shares
Dec. 31, 2020
USD ($)
$ / shares
shares
Dec. 31, 2001
shares
Dec. 31, 2019
shares
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)       4 years      
Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period (in shares)       10,000 57,000    
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)       226,000 456,000   745,000
Share-based Payment Arrangement, Amount Capitalized | $         $ 190    
Share Price (in dollars per share) | $ / shares       $ 31.79      
Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value | $       $ 3,000 2,200    
Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value | $       $ 200      
Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent       60.00%      
Defined Contribution Plan, Employer Discretionary Contribution Amount | $       $ 0      
Software Development [Member]              
Share-based Payment Arrangement, Amount Capitalized | $       0 $ 200    
Share-based Payment Arrangement, Option [Member]              
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | $       $ 200      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)       1 year 8 months 7 days      
Restricted Stock Units (RSUs) [Member]              
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | $       $ 25,400      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)       2 years 7 months 6 days      
Employee Stock Purchase Plan [Member]              
Stock Issued During Period, Shares, Employee Stock Purchase Plans (in shares)       109,000 183,000    
Employee Stock Purchase Plan Weighted Average Purchase Price of Shares Purchased (in dollars per share) | $ / shares       $ 9.53 $ 9.12    
Twenty Eleven Stock Incentive Plan [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized (in shares)   11,550,000          
Share Based Compensation Arrangement By Share Based Payment Award Shares Reserved Decrease Rate (in shares)   1.33          
Common Stock, Capital Shares Reserved for Future Issuance (in shares)       12,100,000      
Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)       3,400,000      
Twenty Eleven Stock Incentive Plan [Member] | Share-based Payment Arrangement, Option [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)   10 years          
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)   4 years          
The 2010 Purchase Plan [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Rate     10.00%        
Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent     85.00%        
Share-based Compensation Arrangement by Share-based Payment Award, Offering Period     24 months        
Share-based Compensation Arrangement by Share-based Payment Award, Number of Purchase Period | item     4        
Number Of ESPP Shares Available For Future Issuance (in shares)       5,600,000      
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)     6 months        
Twenty Twenty-One Employee Stock Purchase Plan [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year) 10 years            
Share-based Compensation Arrangement by Share-based Payment Award, Offering Period 24 months            
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | $       $ 1,900      
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)       1 year 7 months 6 days      
Number Of ESPP Shares Available For Future Issuance (in shares)       1,000,000.0      
Shares Previously Issued Under the 2001 Plan [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized (in shares)           3,500,000  
IDS Plan [Member] | Share-based Payment Arrangement, Option [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)           10 years  
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)           4 years  
Two Thousand One Stock Incentive Plan [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period (in shares)       500,000      
Outside of the 2011, 2001 or IDS Plans [Member]              
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)       0      
XML 71 R58.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options, Valuation Assumptions (Details) - $ / shares
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Weighted average fair value per share of options granted during the period (in dollars per share)   $ 5.75
Twenty Twenty-One Employee Stock Purchase Plan [Member]    
Expected life (in years) (Year) 1 year 3 months  
Volatility 48.00%  
Risk-free interest rate 0.11%  
Expected dividend 0.00%  
Weighted average fair value of purchase rights granted during the period (in dollars per share) $ 6.71  
The 2010 Purchase Plan [Member]    
Expected life (in years) (Year) 1 year 3 months 1 year 3 months
Volatility 34.25% 34.25%
Risk-free interest rate 1.43% 1.43%
Expected dividend 0.00% 0.00%
Weighted average fair value of purchase rights granted during the period (in dollars per share) $ 4.83 $ 4.83
Twenty Eleven Stock Incentive Plan [Member]    
Expected life (in years) (Year)   4 years 5 months 12 days
Volatility   40.90%
Risk-free interest rate   0.60%
Weighted average fair value per share of options granted during the period (in dollars per share)   $ 5.75
XML 72 R59.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Stock-based compensation expenses $ 12,931 $ 12,463
Cost of Sales [Member]    
Stock-based compensation expenses 2,563 3,454
Research and Development Expense [Member]    
Stock-based compensation expenses 5,515 4,800
Selling, General and Administrative Expenses [Member]    
Stock-based compensation expenses $ 4,853 $ 4,209
XML 73 R60.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
EMPLOYEE BENEFIT PLANS    
Outstanding, beginning balance (in shares) 456,000 745,000
Granted (in shares) 0 24,000
Exercised (in shares) (216,000) (246,000)
Canceled (in shares) (10,000) (57,000)
Expired (in shares) (4,000) (10,000)
Outstanding, ending balance (in shares) 226,000 456,000
Outstanding, weighted average exercise price, beginning balance (in dollars per share) $ 10.95 $ 10.64
Granted, weighted average exercise price (in dollars per share)   16.72
Exercised, weighted average exercise price (in dollars per share) 8.90 10.46
Canceled, weighted average exercise price (in dollars per share) 15.56 11.65
Expired, weighted average exercise price (in dollars per share) 6.90 10.06
Outstanding, weighted average exercise price, ending balance (in dollars per share) $ 12.78 10.95
Vested and expected to vest (in shares) 223,000  
Exercisable (in shares) 190,000  
Vested and expected to vest, weighted average exercise price (in dollars per share) $ 12.75  
Exercisable, weighted average exercise price (in dollars per share) $ 12.40  
Outstanding, weighted average remaining contractual (Year) 3 years 2 months 12 days  
Vested and expected to vest, weighted average remaining contractual term (Year) 3 years 1 month 24 days  
Exercisable, weighted average remaining contractual term (Year) 2 years 4 months 9 days  
Outstanding, aggregate intrinsic value $ 4,288  
Vested and expected to vest, aggregate intrinsic value 4,250  
Exercisable, aggregate intrinsic value $ 3,684  
Weighted average fair value per share of options granted during the period (in dollars per share)   $ 5.75
XML 74 R61.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 10 - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) - Restricted Stock Units (RSUs) [Member] - $ / shares
shares in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Nonvested, Balance (in shares) 1,747 1,887
Granted (in shares) 977 890
Vested (in shares) (689) (867)
Forfeited (in shares) (163) (163)
Nonvested, Balance (in shares) 1,872 1,747
Nonvested, weighted average grant date fair value (in dollars per share) $ 16.33 $ 12.30
Granted, weighted average grant date fair value (in dollars per share) 19.43 21.31
Vested, weighted average grant date fair value (in dollars per share) 15.23 13.25
Forfeited, weighted average grant date fair value (in dollars per share) 17.63 13.23
Nonvested, weighted average grant date fair value (in dollars per share) $ 16.33 $ 16.33
XML 75 R62.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES - Narrative (Details) - USD ($)
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Dec. 31, 2019
Income (Loss) from Continuing Operations before Income Taxes, Domestic $ (19,700,000) $ (18,400,000)  
Income (Loss) from Continuing Operations before Income Taxes, Foreign $ 1,400,000 $ 300,000  
Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent 21.00% 21.00%  
Deferred Tax Assets, Valuation Allowance, Total $ 51,586,000 $ 41,859,000  
Deferred Tax Assets, Net, Total 17,000 228,000  
Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total 700,000 800,000  
Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense (Reversal) (89,000) 33,000  
Unrecognized Tax Benefits, Ending Balance 14,743,000 14,300,000 $ 13,615,000
Unrecognized Tax Benefits that Would Impact Effective Tax Rate 2,000,000.0    
Unrecognized Tax Benefits In Long Term Liabilities 2,600,000    
Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued in Long Term Liabilities 700,000    
Unrecognized Tax Benefits In Deferred Tax Asset Subject To Full Valuation Allowance 12,900,000    
California R&D Tax Credits [Member]      
Deferred Tax Assets, Valuation Allowance, Total 51,600,000 $ 41,900,000  
Domestic Tax Authority [Member]      
Tax Credit Carryforward, Amount 21,000,000.0    
Domestic Tax Authority [Member] | Internal Revenue Service (IRS) [Member]      
Operating Loss Carryforwards, Total 51,600,000    
Domestic Tax Authority [Member] | California Franchise Tax Board [Member]      
Operating Loss Carryforwards, Total 13,100,000    
State and Local Jurisdiction [Member]      
Tax Credit Carryforward, Amount $ 21,600,000    
XML 76 R63.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES - Income Tax Expense (Benefit) (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
INCOME TAXES    
Current $ (67) $ (1,325)
Deferred 1,318 21,056
Current 237 238
Withholding 1,591 2,392
Deferred 92 (58)
Total income tax expense $ 3,171 $ 22,303
XML 77 R64.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES - Income Tax Reconciliation (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
INCOME TAXES    
Federal statutory tax provision $ (3,847) $ (3,793)
State tax provision 239 703
Stock compensation expense (499) (602)
Tax credits (2,676) (3,488)
Foreign tax, net 1,653 2,443
Change in valuation allowance 8,099 29,034
Unrealized tax benefit reserve changes (151)  
Business combination costs   356
Tax law changes   (2,237)
Other 353 (113)
Total income tax expense $ 3,171 $ 22,303
XML 78 R65.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES - Deferred Tax Assets (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Deferred tax assets:    
Net operating loss carry forward $ 13,149 $ 8,085
Research and development and other credit carry forward 26,591 24,723
Foreign tax credit carry forward 11,010 9,435
Accruals deductible in different periods 3,362 3,471
Leases 1,472 1,669
Stock-based compensation 1,442 1,220
Total deferred tax assets 57,026 48,603
Less: valuation allowance (51,586) (41,859)
Deferred tax assets, net of valuation allowance 5,440 6,744
Deferred tax liabilities    
Property and equipment, net 178 (629)
Operating lease right-of-use assets (1,472) (1,669)
Intangible assets (4,129) (4,218)
Deferred tax liabilities (5,423) (6,516)
Net deferred tax assets $ 17 $ 228
XML 79 R66.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES - Unrecognized Tax Benefits (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
INCOME TAXES    
Gross unrecognized tax benefits, Beginning Balance $ 14,300 $ 13,615
Increases in tax positions for current year 853 1,024
Increases in tax positions for prior years 1 71
Lapse in statute of limitations (411) (410)
Gross unrecognized tax benefits, Ending Balance $ 14,743 $ 14,300
XML 80 R67.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 11 - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
INCOME TAXES    
Balance at Beginning of Period $ 41,859 $ 10,486
Charged to Expense 9,727 31,373
Balance at End of Period $ 51,586 $ 41,859
XML 81 R68.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 12 - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 12 Months Ended
Dec. 31, 2021
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Dec. 31, 2020
Sep. 30, 2020
Jun. 30, 2020
Mar. 31, 2020
Dec. 31, 2021
Dec. 31, 2020
NET LOSS PER SHARE                    
Net loss $ (7,000) $ (2,407) $ (4,484) $ (7,597) $ (33,449) $ (2,734) $ (3,652) $ (528) $ (21,488) $ (40,363)
Basic weighted-average shares outstanding (in shares)                 37,138 34,458
Diluted weighted-average shares outstanding (in shares)                 37,138 34,458
Basic (in dollars per share) $ (0.19) $ (0.06) $ (0.12) $ (0.21) $ (0.91) $ (0.08) $ (0.11) $ (0.02) $ (0.58) $ (1.17)
Diluted (in dollars per share) $ (0.19) $ (0.06) $ (0.12) $ (0.21) $ (0.91) $ (0.08) $ (0.11) $ (0.02) $ (0.58) $ (1.17)
XML 82 R69.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 12 - NET LOSS PER SHARE - Anti-dilutive Securities (Details) - shares
shares in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Anti-dilutive securities (in shares) 1,171 1,413
Share-based Payment Arrangement, Option [Member]    
Anti-dilutive securities (in shares) 170 332
Restricted Stock Units (RSUs) [Member]    
Anti-dilutive securities (in shares) 968 921
Employee Stock Purchase Plan [Member]    
Anti-dilutive securities (in shares) 33 160
XML 83 R70.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Narrative (Details)
12 Months Ended
Dec. 31, 2021
CUSTOMER AND GEOGRAPHIC INFORMATION  
Number of Operating Segments 1
Number of Reportable Segments 1
XML 84 R71.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) - Customer Concentration Risk [Member]
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Revenue Benchmark [Member] | Customer A [Member]    
Concentration risk   23.00%
Revenue Benchmark [Member] | Customer D [Member]    
Concentration risk 17.00%  
Revenue Benchmark [Member] | Customer E [Member]    
Concentration risk 10.00%  
Accounts Receivable [Member] | Customer A [Member]    
Concentration risk   16.00%
Accounts Receivable [Member] | Customer B [Member]    
Concentration risk 15.00%  
Accounts Receivable [Member] | Customer C [Member]    
Concentration risk   11.00%
Accounts Receivable [Member] | Customer D [Member]    
Concentration risk 29.00%  
XML 85 R72.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Dec. 31, 2021
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Dec. 31, 2020
Sep. 30, 2020
Jun. 30, 2020
Mar. 31, 2020
Dec. 31, 2021
Dec. 31, 2020
Revenues $ 29,886 $ 29,555 $ 27,419 $ 24,200 $ 22,367 $ 23,112 $ 21,409 $ 21,158 $ 111,060 $ 88,046
Geographic Concentration Risk [Member] | Revenue Benchmark [Member]                    
Revenues                 $ 111,060 $ 88,046
Concentration risk                 100.00% 100.00%
Geographic Concentration Risk [Member] | Revenue Benchmark [Member] | UNITED STATES                    
Revenues                 $ 50,374 $ 36,723
Concentration risk                 45.00% 42.00%
Geographic Concentration Risk [Member] | Revenue Benchmark [Member] | CHINA                    
Revenues                 $ 14,267 $ 13,776
Concentration risk                 13.00% 16.00%
Geographic Concentration Risk [Member] | Revenue Benchmark [Member] | JAPAN                    
Revenues                 $ 11,097 $ 4,762
Concentration risk                 10.00% 5.00%
Geographic Concentration Risk [Member] | Revenue Benchmark [Member] | TAIWAN, PROVINCE OF CHINA                    
Revenues                 $ 6,387 $ 8,038
Concentration risk                 6.00% 9.00%
Geographic Concentration Risk [Member] | Revenue Benchmark [Member] | Rest of the World [Member]                    
Revenues                 $ 28,935 $ 24,747
Concentration risk                 26.00% 28.00%
XML 86 R73.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Long-lived assets, net $ 40,703 $ 45,914
UNITED STATES    
Long-lived assets, net 39,158 43,663
Rest of the World [Member]    
Long-lived assets, net $ 1,545 $ 2,251
XML 87 R74.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 14 - FINANCIAL INSTRUMENTS - Other (Details)
12 Months Ended
Dec. 31, 2021
USD ($)
item
Dec. 31, 2020
USD ($)
item
Foreign Exchange Contract [Member] | Other Nonoperating Income (Expense) [Member]    
Derivative, Gain on Derivative $ 0  
Derivative, Loss on Derivative $ 0 $ 200,000
Forward Contracts [Member]    
Derivative, Number of Instruments Held | item 0 0
XML 88 R75.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 14 - FINANCIAL INSTRUMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) - USD ($)
$ in Thousands
Dec. 31, 2021
Dec. 31, 2020
Total $ 125,016 $ 132,993
Fair Value, Inputs, Level 1 [Member]    
Total 125,016 132,993
Money Market Funds [Member]    
Money market mutual funds 12,474 18,012
Money Market Funds [Member] | Fair Value, Inputs, Level 1 [Member]    
Money market mutual funds 12,474 18,012
US Government Corporations and Agencies Securities [Member]    
Short-term investments [1] 112,542  
US Government Corporations and Agencies Securities [Member] | Fair Value, Inputs, Level 1 [Member]    
Short-term investments [1] $ 112,542  
US Treasury Securities [Member]    
Short-term investments   114,981
US Treasury Securities [Member] | Fair Value, Inputs, Level 1 [Member]    
Short-term investments   $ 114,981
[1] The carrying amount of the Company’s investments in U.S. Treasury bills approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities at December 31, 2021 and 2020.
XML 89 R76.htm IDEA: XBRL DOCUMENT v3.22.0.1
Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 12 Months Ended
Dec. 31, 2021
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Dec. 31, 2020
Sep. 30, 2020
Jun. 30, 2020
Mar. 31, 2020
Dec. 31, 2021
Dec. 31, 2020
SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)                    
Revenues $ 29,886 $ 29,555 $ 27,419 $ 24,200 $ 22,367 $ 23,112 $ 21,409 $ 21,158 $ 111,060 $ 88,046
Costs of revenues 11,675 11,070 10,785 10,663 9,839 9,493 8,946 8,487 44,193 36,765
Net loss $ (7,000) $ (2,407) $ (4,484) $ (7,597) $ (33,449) $ (2,734) $ (3,652) $ (528) $ (21,488) $ (40,363)
Basic (in dollars per share) $ (0.19) $ (0.06) $ (0.12) $ (0.21) $ (0.91) $ (0.08) $ (0.11) $ (0.02) $ (0.58) $ (1.17)
Diluted (in dollars per share) $ (0.19) $ (0.06) $ (0.12) $ (0.21) $ (0.91) $ (0.08) $ (0.11) $ (0.02) $ (0.58) $ (1.17)
XML 90 pdfs-20211231x10k_htm.xml IDEA: XBRL DOCUMENT 0001120914 us-gaap:AllowanceForCreditLossMember 2021-01-01 2021-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2020-01-01 2020-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2021-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2020-12-31 0001120914 us-gaap:AllowanceForCreditLossMember 2019-12-31 0001120914 pdfs:The2020StockRepurchaseProgramMember 2021-01-01 2021-12-31 0001120914 pdfs:The2018StockRepurchaseProgramMember 2020-05-28 2020-05-28 0001120914 us-gaap:StateAndLocalJurisdictionMember 2021-12-31 0001120914 us-gaap:DomesticCountryMember 2021-12-31 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 2020-06-04 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 0001120914 pdfs:CommonStockOutstandingMember 2021-01-01 2021-12-31 0001120914 us-gaap:RetainedEarningsMember 2021-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0001120914 us-gaap:RetainedEarningsMember 2020-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0001120914 us-gaap:RetainedEarningsMember 2019-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2019-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2019-12-31 0001120914 us-gaap:TreasuryStockMember 2021-12-31 0001120914 pdfs:CommonStockOutstandingMember 2021-12-31 0001120914 us-gaap:TreasuryStockMember 2020-12-31 0001120914 pdfs:CommonStockOutstandingMember 2020-12-31 0001120914 us-gaap:TreasuryStockMember 2019-12-31 0001120914 pdfs:CommonStockOutstandingMember 2019-12-31 0001120914 pdfs:StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember 2020-07-30 0001120914 pdfs:OutsideOfThe20112001OrIDSPlansMember 2021-12-31 0001120914 pdfs:TwoThousandOneStockIncentivePlanMember 2021-01-01 2021-12-31 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2011-11-16 0001120914 pdfs:SharesPreviouslyIssuedUnderThe2001PlanMember 2001-12-31 0001120914 pdfs:The2010PurchasePlanMember 2001-07-31 0001120914 pdfs:The2010PurchasePlanMember 2021-01-01 2021-12-31 0001120914 pdfs:The2010PurchasePlanMember 2020-01-01 2020-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2020-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2019-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2020-01-01 2020-12-31 0001120914 us-gaap:EmployeeStockOptionMember pdfs:TwentyElevenStockIncentivePlanMember 2011-11-16 2011-11-16 0001120914 us-gaap:EmployeeStockOptionMember pdfs:IDSPlanMember 2001-01-01 2001-12-31 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember srt:MinimumMember 2022-01-01 2021-12-31 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember srt:MaximumMember 2024-01-01 2021-12-31 0001120914 pdfs:IntegratedYieldRampMember 2021-01-01 2021-12-31 0001120914 pdfs:AnalyticsMember 2021-01-01 2021-12-31 0001120914 pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember 2021-01-01 2021-12-31 0001120914 pdfs:IntegratedYieldRampMember 2020-01-01 2020-12-31 0001120914 pdfs:AnalyticsMember 2020-01-01 2020-12-31 0001120914 pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember 2020-01-01 2020-12-31 0001120914 srt:MinimumMember us-gaap:FurnitureAndFixturesMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember pdfs:LaboratoryAndTestEquipmentMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember us-gaap:FurnitureAndFixturesMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember pdfs:LaboratoryAndTestEquipmentMember 2021-01-01 2021-12-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2021-01-01 2021-12-31 0001120914 us-gaap:ComputerEquipmentMember 2021-01-01 2021-12-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2021-12-31 0001120914 us-gaap:LeaseholdImprovementsMember 2021-12-31 0001120914 us-gaap:FurnitureAndFixturesMember 2021-12-31 0001120914 us-gaap:ConstructionInProgressMember 2021-12-31 0001120914 us-gaap:ComputerEquipmentMember 2021-12-31 0001120914 pdfs:TestEquipmentMember 2021-12-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2021-12-31 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2020-12-31 0001120914 us-gaap:LeaseholdImprovementsMember 2020-12-31 0001120914 us-gaap:FurnitureAndFixturesMember 2020-12-31 0001120914 us-gaap:ConstructionInProgressMember 2020-12-31 0001120914 us-gaap:ComputerEquipmentMember 2020-12-31 0001120914 pdfs:TestEquipmentMember 2020-12-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2020-12-31 0001120914 pdfs:StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember 2020-07-29 2020-07-29 0001120914 pdfs:StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember 2020-07-30 2020-07-30 0001120914 us-gaap:DomesticCountryMember us-gaap:InternalRevenueServiceIRSMember 2021-12-31 0001120914 us-gaap:DomesticCountryMember us-gaap:CaliforniaFranchiseTaxBoardMember 2021-12-31 0001120914 pdfs:RestOfTheWorldMember 2021-12-31 0001120914 country:US 2021-12-31 0001120914 pdfs:RestOfTheWorldMember 2020-12-31 0001120914 country:US 2020-12-31 0001120914 us-gaap:InProcessResearchAndDevelopmentMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:TrademarksAndTradeNamesMember 2020-01-01 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:NoncompeteAgreementsMember 2020-01-01 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:DevelopedTechnologyRightsMember 2020-01-01 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:CustomerRelationshipsMember 2020-01-01 2020-12-31 0001120914 us-gaap:TrademarksAndTradeNamesMember 2021-12-31 0001120914 us-gaap:PatentsMember 2021-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2021-12-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2021-12-31 0001120914 us-gaap:CustomerRelationshipsMember 2021-12-31 0001120914 us-gaap:TrademarksAndTradeNamesMember 2020-12-31 0001120914 us-gaap:PatentsMember 2020-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2020-12-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2020-12-31 0001120914 us-gaap:CustomerRelationshipsMember 2020-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-12-31 0001120914 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-12-31 0001120914 pdfs:TwentyTwentyOneEmployeeStockPurchasePlanMember 2021-01-01 2021-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2021-12-31 0001120914 us-gaap:EmployeeStockOptionMember 2021-12-31 0001120914 us-gaap:SoftwareDevelopmentMember 2021-01-01 2021-12-31 0001120914 us-gaap:SoftwareDevelopmentMember 2020-01-01 2020-12-31 0001120914 us-gaap:ForwardContractsMember 2021-12-31 0001120914 us-gaap:ForwardContractsMember 2020-12-31 0001120914 us-gaap:ForeignExchangeContractMember us-gaap:OtherNonoperatingIncomeExpenseMember 2020-01-01 2020-12-31 0001120914 us-gaap:ForeignExchangeContractMember us-gaap:OtherNonoperatingIncomeExpenseMember 2021-01-01 2021-12-31 0001120914 pdfs:CaliforniaRDTaxCreditsMember 2021-12-31 0001120914 pdfs:CaliforniaRDTaxCreditsMember 2020-12-31 0001120914 pdfs:CommercialAgreementWithAdvantestMember 2021-01-01 2021-12-31 0001120914 pdfs:CommercialAgreementWithAdvantestMember 2020-01-01 2020-12-31 0001120914 2021-10-01 2021-12-31 0001120914 2021-07-01 2021-09-30 0001120914 2021-04-01 2021-06-30 0001120914 2021-01-01 2021-03-31 0001120914 2020-10-01 2020-12-31 0001120914 2020-07-01 2020-09-30 0001120914 2020-04-01 2020-06-30 0001120914 2020-01-01 2020-03-31 0001120914 pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember 2021-12-31 0001120914 pdfs:Amendment1ToSoftwareLicenseRelatedServicesAgreementMember 2020-12-31 0001120914 pdfs:DFITestEquipmentMember 2021-12-31 0001120914 pdfs:DFITestEquipmentMember 2020-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:TwoCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:TwoCustomersMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:CustomerEMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:CustomerDMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:CustomerDMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 pdfs:CustomerBMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:TW us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:TwoCustomersMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:OneCustomerMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:CustomerCMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 country:TW us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 country:JP us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 us-gaap:RetainedEarningsMember 2021-01-01 2021-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-12-31 0001120914 us-gaap:RetainedEarningsMember 2020-01-01 2020-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-01-01 2020-12-31 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2021-12-31 0001120914 2019-12-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0001120914 us-gaap:MoneyMarketFundsMember 2021-12-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2020-12-31 0001120914 us-gaap:MoneyMarketFundsMember 2020-12-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2021-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2021-12-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2020-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:TrademarksAndTradeNamesMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:NoncompeteAgreementsMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:CustomerRelationshipsMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:InProcessResearchAndDevelopmentMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember us-gaap:DevelopedTechnologyRightsMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember 2020-12-01 2020-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2021-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2021-12-31 0001120914 us-gaap:USTreasurySecuritiesMember us-gaap:FairValueInputsLevel1Member 2020-12-31 0001120914 us-gaap:USTreasurySecuritiesMember 2020-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2021-01-01 2021-12-31 0001120914 us-gaap:EmployeeStockOptionMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2021-01-01 2021-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2020-01-01 2020-12-31 0001120914 us-gaap:EmployeeStockOptionMember 2020-01-01 2020-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2020-01-01 2020-12-31 0001120914 pdfs:AmortizationOfOtherAcquiredIntangibleAssetsMember 2021-01-01 2021-12-31 0001120914 pdfs:AmortizationOfOtherAcquiredIntangibleAssetsMember 2020-01-01 2020-12-31 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2021-01-01 2021-12-31 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2021-01-01 2021-12-31 0001120914 us-gaap:CostOfSalesMember 2021-01-01 2021-12-31 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2020-01-01 2020-12-31 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2020-01-01 2020-12-31 0001120914 us-gaap:CostOfSalesMember 2020-01-01 2020-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-12-31 0001120914 us-gaap:TreasuryStockMember 2021-01-01 2021-12-31 0001120914 us-gaap:TreasuryStockMember 2020-01-01 2020-12-31 0001120914 srt:MinimumMember us-gaap:TrademarksAndTradeNamesMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember us-gaap:PatentsMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember us-gaap:DevelopedTechnologyRightsMember 2021-01-01 2021-12-31 0001120914 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember us-gaap:TrademarksAndTradeNamesMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember us-gaap:PatentsMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember us-gaap:DevelopedTechnologyRightsMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2021-01-01 2021-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2021-01-01 2021-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2020-01-01 2020-12-31 0001120914 pdfs:CommonStockOutstandingMember 2020-01-01 2020-12-31 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2011-11-16 2011-11-16 0001120914 pdfs:TwentyTwentyOneEmployeeStockPurchasePlanMember 2021-06-15 2021-06-15 0001120914 pdfs:The2010PurchasePlanMember 2001-07-01 2001-07-31 0001120914 us-gaap:TransferredOverTimeMember 2021-01-01 2021-12-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2021-01-01 2021-12-31 0001120914 us-gaap:TransferredOverTimeMember 2020-01-01 2020-12-31 0001120914 us-gaap:TransferredAtPointInTimeMember 2020-01-01 2020-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2021-01-01 2021-12-31 0001120914 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2020-01-01 2020-12-31 0001120914 pdfs:TwentyTwentyOneEmployeeStockPurchasePlanMember 2021-12-31 0001120914 pdfs:The2010PurchasePlanMember 2021-12-31 0001120914 pdfs:CimetrixIncorporatedMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2021-01-01 2021-12-31 0001120914 pdfs:EmployeeStockPurchasePlanMember 2020-01-01 2020-12-31 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2020-01-01 2020-12-31 0001120914 us-gaap:FairValueInputsLevel1Member 2021-12-31 0001120914 2021-12-31 0001120914 us-gaap:FairValueInputsLevel1Member 2020-12-31 0001120914 2020-12-31 0001120914 srt:MinimumMember 2021-01-01 2021-12-31 0001120914 srt:MaximumMember 2021-01-01 2021-12-31 0001120914 pdfs:CimetrixIncorporatedMember 2021-10-01 2021-12-31 0001120914 pdfs:CimetrixIncorporatedMember 2020-12-31 0001120914 pdfs:CimetrixIncorporatedMember 2020-12-01 2020-12-01 0001120914 pdfs:AccruedCompensationAndRelatedBenefitsMember pdfs:CimetrixIncorporatedMember 2021-12-31 0001120914 pdfs:AccruedCompensationAndRelatedBenefitsMember pdfs:CimetrixIncorporatedMember 2020-12-31 0001120914 2020-01-01 2020-12-31 0001120914 2021-06-30 0001120914 2022-02-25 0001120914 2021-01-01 2021-12-31 shares iso4217:USD iso4217:USD shares pure pdfs:item 37138000 34458000 0001120914 false --12-31 FY 2021 0 0 PDF SOLUTIONS INC -0.58 -1.17 P1Y P5Y P4Y P2Y P3Y P6M P4Y P4Y P4Y P1Y8M7D -0.58 -1.17 1 0 -0.21 -0.12 -0.06 -0.19 -0.02 -0.11 -0.08 -0.91 10-K true 2021-12-31 false 000-31311 DE 25-1701361 2858 De La Cruz Blvd. 95050 Santa Clara CA 408 280-7900 Common Stock, $0.00015 par value PDFS NASDAQ No No Yes Yes Non-accelerated Filer true false true false 515000000 37707111 BPM LLP San Jose, CA 27684000 30315000 112542000 114981000 890000 963000 40087000 34140000 8194000 13944000 188507000 193380000 35295000 39242000 5408000 6672000 14123000 15774000 21239000 24573000 75000 249000 9121000 7690000 273768000 287580000 5554000 4399000 9495000 8339000 3328000 6309000 1758000 1926000 23691000 19895000 1337000 43826000 42205000 2656000 2956000 5258000 6516000 2443000 1397000 54183000 53074000 0.00015 0.00015 5000000 5000000 0 0 0.00015 0.00015 70000000 70000000 47414000 46400000 37411000 36850000 6000 6000 423069000 407173000 10003000 9550000 104705000 96215000 -97721000 -76233000 -1064000 -225000 219585000 234506000 273768000 287580000 93415000 57232000 17645000 30814000 111060000 88046000 44193000 36765000 43780000 34654000 37649000 32677000 1255000 741000 3183000 683000 -1269000 -18317000 -18060000 3171000 22303000 -21488000 -40363000 -825000 1253000 -14000 2000 -839000 1255000 -22327000 -39108000 -0.58 -1.17 37138000 34458000 32503000 5000 325197000 9294000 -91695000 -35870000 -1480000 196157000 100000 3307000 1000 65077000 65078000 183000 1670000 1670000 246000 2570000 2570000 611000 256000 4520000 4520000 12659000 12659000 -40363000 1255000 -39108000 36850000 6000 407173000 9550000 -96215000 -76233000 -225000 234506000 -251000 251000 4523000 4523000 109000 1035000 1035000 216000 1930000 1930000 487000 202000 3967000 3967000 12931000 12931000 -21488000 -839000 -22327000 37411000 6000 423069000 10003000 -104705000 -97721000 -1064000 219585000 -21488000 -40363000 6218000 6725000 12931000 12463000 3334000 1446000 674000 549000 -3183000 -500000 1373000 21007000 -147000 25000 5980000 -8101000 -1136000 433000 -1414000 -1193000 1336000 -2069000 -86000 -918000 1264000 1926000 -648000 928000 5028000 7755000 -1337000 220000 -1584000 -1360000 4243000 21783000 171000000 16500000 168560000 131454000 3672000 6005000 381000 963000 3054000 28580000 -4667000 -150502000 1930000 2570000 1035000 1670000 3967000 4520000 4523000 65078000 -5525000 64798000 -182000 131000 -6131000 -63790000 33815000 97605000 27684000 33815000 27684000 30315000 3500000 27684000 33815000 1873000 2707000 1947000 2022000 1359000 133000 963000 161000 286000 190000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;text-align:center;margin:0pt;">PDF SOLUTIONS, INC.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;text-align:center;margin:0pt;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">1. DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Description of Business</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">PDF Solutions, Inc. (the “Company” or “PDF”), provides products and services designed to empower engineers and data scientists across the semiconductor ecosystem to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products and operational efficiency. The Company’s products, services, and solutions include proprietary software, physical intellectual property (or IP) for integrated circuit (or IC) designs, electrical measurement hardware tools, proven methodologies, and professional services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for doubtful accounts, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The global COVID-19 pandemic has impacted the operations and purchasing decisions of companies worldwide. As of the date of issuance of the consolidated financial statements, the Company is not aware of any specific event or circumstance relating to COVID-19 that would require updates to the Company’s estimates and judgments or revisions to the carrying value of its assets or liabilities. These estimates may change, as new events occur and additional information is obtained, and are recognized in the consolidated financial statements as soon as they become known. Actual results could differ from those estimates and any such differences may be material to the financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Concentration of Credit Risk</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short -term investments, and accounts receivable. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company primarily sells its products and services to companies in Asia, Europe and North America within the semiconductor industry. As of December 31, 2021, two customers accounted for 44% of the Company’s gross accounts receivable and two customers accounted for 27% of the Company’s total revenues for 2021. As of December 31, 2020, two customers accounted for 27% of the Company’s gross accounts receivable and one customer accounted for 23% of the Company’s revenues for 2020. See Note 13 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The allowance for doubtful accounts, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cash and Cash Equivalents, Short-term Investments, and Restricted Cash</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company considers all highly liquid investments with an original maturity of 90 days or less or investments with a remaining maturity of 90 days or less at the purchase to be cash equivalents and investments with original maturities greater than 90 days but less than one year to be short-term investments. The Company classifies securities with readily determinable market values as available-for-sale. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and losses deemed temporary in nature, net of tax, reported as a component of accumulated other comprehensive loss in stockholders’ equity. Realized gains and losses and declines in value determined to be other than temporary are based on the specific identification method and are included as a component of other expense, net in the Consolidated Statements of Comprehensive Loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company periodically reviews short-term investments for impairment. In the event a decline in value is determined to be other-than-temporary, an impairment loss is recognized. When determining if a decline in value is other-than-temporary, the Company takes into consideration the current market conditions, the duration and severity of and the reason for the decline, and the likelihood that it would need to sell the security prior to a recovery of par value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021 and 2020, short-term investments consisted solely of U.S. Treasury bills. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2021. There were also no impairments in the investments’ value in the year ended December 31, 2021. Refer to Note 14 “Fair Value Measurements” for further discussion on the Company’s investments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Restricted cash of $3.5 million included in the “Prepaid expenses and other current assets” in the Company’s Consolidated Balance Sheet as of December 31, 2020 pertains to the amount, subject to adjustments, specifically designated to pay for the Holdback amount related to the Company’s acquisition of Cimetrix Incorporated (“Cimetrix”). Refer to Note 4, “Business Combination” for further discussion about the payment of Holdback Amount in fiscal 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable is determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $11.8 million and $7.2 million as of December 31, 2021 and 2020, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.3 million and $2.0 million as of December 31, 2021 and 2020, respectively. The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for doubtful accounts is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for doubtful accounts is reviewed on a quarterly basis to assess the adequacy of the allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Accounts receivable reserves are summarized below (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:27.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">Write-offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Against</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">of Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:13.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Receivable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 963</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.07%;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;"> (73)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (50)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 963</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Laboratory and test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;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;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Shorter of estimated</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">useful life or term of</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">lease</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;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets consist of acquired technology, certain contract rights, customer relationships, trademarks and trade names, and in-process research and development (IPR&amp;D). These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from <span style="-sec-ix-hidden:Hidden_zLzOpiWhLkK-0RdwHuZhVQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to ten years, except for IPR&amp;D projects. Acquired IPR&amp;D is initially accounted for as indefinite-lived intangible asset and tested annually for impairment. Once the IPR&amp;D asset becomes available for use, it will be amortized over the estimated useful life or will be written off upon abandonment. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use assets (ROU), operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company also elected the transition package of three practical expedients which allow companies not to reassess (i) whether agreements contain leases, (ii) the classification of leases, and (iii) the capitalization of initial direct costs. Further, the Company elected to not separate lease and non-lease components for all of its leases.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company determines if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Software Development Costs</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Internally developed software is software developed to meet our internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally <span style="-sec-ix-hidden:Hidden_r_8DCNkwu0aj_9AG1BhK4Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">five</span></span> to six years. The costs to develop software that is marketed externally have not been capitalized as we believe our current software development process is essentially completed concurrent with the establishment of technological feasibility. As such, all related software development costs are expensed as incurred and included in research and development expense in our Consolidated Statements of Comprehensive Loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cost of Revenues</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, and amortization of acquired technology. Services costs include material, employee compensation and related benefits, subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by us in providing services to the Company’s customers in solution engagements or sold in conjunction with the Company’s software products.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Research and Development Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Research and development expenses consist primarily of personnel-related costs to support product development activities, including compensation and benefits, outside development services, travel, facilities cost allocations, and stock-based compensation charges. Research and development expenses are charged to operations as incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Selling, General and Administrative Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Selling, general and administrative expenses consist primarily of compensation and benefits for sales, marketing and general and administrative personnel, legal and accounting services, marketing communications, travel and facilities cost allocations, and stock-based compensation charges.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock-Based Compensation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of <span style="-sec-ix-hidden:Hidden_WCz4QyOAmkG9MR3O7inRcA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four years</span></span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Income Taxes</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Net Income (Loss) Per Share</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic net income (loss) per share is computed by dividing net income by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Foreign Currency Translation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive loss are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive loss. Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Derivative Financial Instruments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Business Combinations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over the useful life, whereas any indefinite lived intangible assets, including IPR&amp;D and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Litigation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (FASB) requirements. See Note 8, Commitments and Contingencies.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recently Adopted Accounting Standards</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2019, the Financial Accounting Standards Board (“FASB”) issued Accounting Standard Update (“ASU”) No. 2019-12, Income Taxes (Topic 740), Simplifying the Accounting for Income Taxes, related to simplifying the accounting for income taxes. The guidance eliminates certain exceptions from Accounting Standards Codification (“ASC”) 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The guidance also clarifies and simplifies other aspects of the accounting for income taxes. The guidance became effective for the Company beginning in the first quarter of 2021 on a prospective basis. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In January 2020, the FASB issued ASU No. 2020-01, Investments-Equity Securities (Topic 321), Investments-Equity Method and Joint Ventures (Topic 323), and Derivatives and Hedging (Topic 815)-Clarifying the Interactions between Topic 321, Topic 323, and Topic 815. This ASU clarifies the interaction between accounting standards related to equity securities (ASC 321), equity method investments (ASC 323), and certain derivatives (ASC 815). The amendments in this ASU are effective for fiscal years beginning after December 15, 2020. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements and has determined there are not any that would have a material impact on the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounting Standards Not Yet Effective</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">In June 2016, the FASB issued ASU No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (ASU 2016-13), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Additionally, ASU No. 2019-10 defers the effective date for the adoption of the new standard on credit losses for public filers that are considered small reporting companies (“SRC”) as defined by the SEC to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, which will be fiscal 2023 for the Company if it continues to be classified as an SRC. In February 2020, the FASB issued ASU 2020-02, which provides guidance regarding methodologies, documentation, and internal controls related to expected credit losses. The subsequent amendments will have the same effective date and transition requirements as ASU No. 2016-13. Early adoption is permitted. Topic 326 requires a modified retrospective approach by recording a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption. While the Company is currently evaluating the impact of Topic 326, the Company does not expect the adoption of this ASU to have a material impact on its consolidated financial statements or the related disclosure.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all significant intercompany balances and transactions.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with generally accepted accounting principles in the United States (“U.S. GAAP”) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for doubtful accounts, fair values of assets acquired and liabilities assumed in business combinations, impairment of goodwill and long-lived assets, valuation for deferred tax assets, and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The global COVID-19 pandemic has impacted the operations and purchasing decisions of companies worldwide. As of the date of issuance of the consolidated financial statements, the Company is not aware of any specific event or circumstance relating to COVID-19 that would require updates to the Company’s estimates and judgments or revisions to the carrying value of its assets or liabilities. These estimates may change, as new events occur and additional information is obtained, and are recognized in the consolidated financial statements as soon as they become known. Actual results could differ from those estimates and any such differences may be material to the financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Concentration of Credit Risk</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Financial instruments that potentially expose the Company to concentrations of credit risk consist primarily of cash and cash equivalents, short -term investments, and accounts receivable. The Company maintains its cash and cash equivalents and short-term investments with what it considers high credit quality financial institutions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company primarily sells its products and services to companies in Asia, Europe and North America within the semiconductor industry. As of December 31, 2021, two customers accounted for 44% of the Company’s gross accounts receivable and two customers accounted for 27% of the Company’s total revenues for 2021. As of December 31, 2020, two customers accounted for 27% of the Company’s gross accounts receivable and one customer accounted for 23% of the Company’s revenues for 2020. See Note 13 for further details. The Company does not require collateral or other security to support accounts receivable. To reduce credit risk, management performs ongoing credit evaluations of its customers’ financial condition. The Company maintains allowances for potential credit losses.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The allowance for doubtful accounts, which was based on management’s best estimates, could be adjusted in the near term from current estimates depending on actual experience. Such adjustments could be material to the consolidated financial statements.</p> 2 0.44 2 0.27 2 0.27 1 0.23 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cash and Cash Equivalents, Short-term Investments, and Restricted Cash</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company considers all highly liquid investments with an original maturity of 90 days or less or investments with a remaining maturity of 90 days or less at the purchase to be cash equivalents and investments with original maturities greater than 90 days but less than one year to be short-term investments. The Company classifies securities with readily determinable market values as available-for-sale. Short-term investments include available-for-sale securities and are carried at estimated fair value, with the unrealized gains and losses deemed temporary in nature, net of tax, reported as a component of accumulated other comprehensive loss in stockholders’ equity. Realized gains and losses and declines in value determined to be other than temporary are based on the specific identification method and are included as a component of other expense, net in the Consolidated Statements of Comprehensive Loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company periodically reviews short-term investments for impairment. In the event a decline in value is determined to be other-than-temporary, an impairment loss is recognized. When determining if a decline in value is other-than-temporary, the Company takes into consideration the current market conditions, the duration and severity of and the reason for the decline, and the likelihood that it would need to sell the security prior to a recovery of par value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021 and 2020, short-term investments consisted solely of U.S. Treasury bills. The cost of these securities approximated fair value and there was no material gross realized or unrealized gains or losses as of December 31, 2021. There were also no impairments in the investments’ value in the year ended December 31, 2021. Refer to Note 14 “Fair Value Measurements” for further discussion on the Company’s investments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Restricted cash of $3.5 million included in the “Prepaid expenses and other current assets” in the Company’s Consolidated Balance Sheet as of December 31, 2020 pertains to the amount, subject to adjustments, specifically designated to pay for the Holdback amount related to the Company’s acquisition of Cimetrix Incorporated (“Cimetrix”). Refer to Note 4, “Business Combination” for further discussion about the payment of Holdback Amount in fiscal 2021.</p> 0 0 3500000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable is determined on an individual contract basis. Unbilled accounts receivable, included in accounts receivable, totaled $11.8 million and $7.2 million as of December 31, 2021 and 2020, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $1.3 million and $2.0 million as of December 31, 2021 and 2020, respectively. The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for doubtful accounts is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for doubtful accounts is reviewed on a quarterly basis to assess the adequacy of the allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Accounts receivable reserves are summarized below (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:27.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">Write-offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Against</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">of Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:13.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Receivable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 963</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.07%;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;"> (73)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (50)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 963</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.</span></td></tr></table><div style="margin-top:12pt;"/> 11800000 7200000 1300000 2000000.0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Accounts receivable reserves are summarized below (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:27.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">Write-offs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Against</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.6%;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;"><b style="font-weight:bold;">of Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;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;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expense (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenue (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:13.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Receivable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 963</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.07%;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;"> (73)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:27.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 213</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (50)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 963</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue.</span></td></tr></table><div style="margin-top:12pt;"/> 963000 73000 890000 213000 800000 50000 963000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Laboratory and test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;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;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Shorter of estimated</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">useful life or term of</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">lease</p></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment are stated at cost and are depreciated using the straight-line method over the estimated useful lives (in years) of the related asset as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture, fixtures, and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Laboratory and test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3-10</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;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;white-space:nowrap;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Shorter of estimated</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:29.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">useful life or term of</p></td></tr><tr><td style="vertical-align:bottom;width:66.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:3.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;width:29.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">lease</p></td></tr></table> P3Y P3Y P3Y P10Y P3Y P10Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets consist of acquired technology, certain contract rights, customer relationships, trademarks and trade names, and in-process research and development (IPR&amp;D). These intangible assets may be acquired through business combinations or direct purchases. Intangible assets are amortized on a straight-line basis over their estimated useful lives which range from <span style="-sec-ix-hidden:Hidden_zLzOpiWhLkK-0RdwHuZhVQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to ten years, except for IPR&amp;D projects. Acquired IPR&amp;D is initially accounted for as indefinite-lived intangible asset and tested annually for impairment. Once the IPR&amp;D asset becomes available for use, it will be amortized over the estimated useful life or will be written off upon abandonment. The Company continually monitors events and changes in circumstances that could indicate carrying amounts of long-lived assets, including property and equipment and intangible assets, may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value.</p> P10Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company records goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. The Company has one operating segment and one operating unit. The Company performs a qualitative analysis when testing a reporting unit’s goodwill for impairment. The Company performs an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill.</p> 1 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company has operating leases for administrative and sales offices, research and development laboratory and clean room. The Company recognizes long-term operating lease rights and commitments as operating lease right-of-use assets (ROU), operating lease liabilities and operating lease liabilities, non-current, respectively, in the Consolidated Balance Sheets. The Company also elected the transition package of three practical expedients which allow companies not to reassess (i) whether agreements contain leases, (ii) the classification of leases, and (iii) the capitalization of initial direct costs. Further, the Company elected to not separate lease and non-lease components for all of its leases.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company determines if an arrangement is, or contains, a lease at inception. Operating lease right-of-use assets, and operating lease liabilities are initially recorded based on the present value of lease payments over the lease term. Lease terms include the minimum unconditional term of the lease, and may include options to extend or terminate the lease when it is reasonably certain at the commencement date that such options will be exercised. The decision to include these options </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">involves consideration of our overall future business plans and other relevant business economic factors that may affect our business. Since the determination of the lease term requires an application of judgment, lease terms that differ in reality from our initial judgment may potentially have a material impact on the Company’s Consolidated Balance Sheets. In addition, the Company’s leases do not provide an implicit rate. In determining the present value of the Company’s expected lease payments, the discount rate is calculated using the Company’s incremental borrowing rate determined based on the information available, which requires additional judgment.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Software Development Costs</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Internally developed software is software developed to meet our internal needs to provide certain services to the customers. The Company’s capitalized software development costs consist of internal compensation related costs and external direct costs incurred during the application development stage and are amortized over their useful lives, generally <span style="-sec-ix-hidden:Hidden_r_8DCNkwu0aj_9AG1BhK4Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">five</span></span> to six years. The costs to develop software that is marketed externally have not been capitalized as we believe our current software development process is essentially completed concurrent with the establishment of technological feasibility. As such, all related software development costs are expensed as incurred and included in research and development expense in our Consolidated Statements of Comprehensive Loss.</p> P6Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cost of Revenues</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, and amortization of acquired technology. Services costs include material, employee compensation and related benefits, subcontractor costs, overhead costs, travel, and allocated facilities-related costs. Software license costs consist of costs associated with cloud-delivery related expenses and licensing third-party software used by us in providing services to the Company’s customers in solution engagements or sold in conjunction with the Company’s software products.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Research and Development Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Research and development expenses consist primarily of personnel-related costs to support product development activities, including compensation and benefits, outside development services, travel, facilities cost allocations, and stock-based compensation charges. Research and development expenses are charged to operations as incurred.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Selling, General and Administrative Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Selling, general and administrative expenses consist primarily of compensation and benefits for sales, marketing and general and administrative personnel, legal and accounting services, marketing communications, travel and facilities cost allocations, and stock-based compensation charges.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock-Based Compensation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for stock-based compensation using the fair value method, which requires the Company to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The fair value of the Company’s restricted stock units (“RSUs”) is equal to the market value of the Company’s common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of <span style="-sec-ix-hidden:Hidden_WCz4QyOAmkG9MR3O7inRcA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four years</span></span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The fair value of the Company’s stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life is based on historical experience and on the </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Income Taxes</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s provision for income tax comprises its current tax liability and change in deferred tax assets and liabilities. Deferred tax assets and liabilities are recognized for the expected tax consequences of temporary differences between the tax bases of assets and liabilities. The measurement of current and deferred tax assets and liabilities is based on provisions of enacted tax laws; the effect of future changes in tax laws or rates are not anticipated. Valuation allowances are provided to reduce deferred tax assets to an amount that in management’s judgment is more likely than not to be recoverable against future taxable income. No U.S. taxes are provided on earnings of non-U.S. subsidiaries, to the extent such earnings are deemed to be permanently invested. The Company’s income tax calculations are based on application of applicable U.S. federal and state or foreign tax laws. The Company’s tax filings, however, are subject to audit by the respective tax authorities. Accordingly, the Company recognizes tax liabilities based upon its estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different from the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the Consolidated Statements of Comprehensive Loss.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Net Income (Loss) Per Share</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic net income (loss) per share is computed by dividing net income by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. Dilutive potential common shares consist of incremental common shares issuable upon exercise of stock options, upon vesting of RSUs, contingently issuable shares for all periods and assumed issuance of shares under the Company’s employee stock purchase plan. No dilutive potential common shares are included in the computation of any diluted per share amount when a loss from continuing operations was reported by the Company.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Foreign Currency Translation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The functional currency of the Company’s foreign subsidiaries is the local currency for the respective subsidiary. The assets and liabilities are translated at the period-end exchange rate, and statements of comprehensive loss are translated at the average exchange rate during the year. Gains and losses resulting from foreign currency translations are included as a component of other comprehensive loss. Gains and losses resulting from foreign currency transactions are included in the Consolidated Statements of Comprehensive Loss.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Derivative Financial Instruments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company operates internationally and is exposed to potentially adverse movements in foreign currency exchange rates. From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. The Company does not use foreign currency contracts for speculative or trading purposes. The Company records these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these derivatives is recorded into earnings as a component of interest and other income (expense), net and offsets the change in fair value of the foreign currency denominated monetary assets and liabilities, which are also recorded in interest and other income (expense), net. The duration of these forward contracts is usually three months. </p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Business Combinations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company allocates the fair value of purchase consideration to the tangible assets acquired, liabilities assumed and intangible assets acquired based on their estimated fair values at the date of the business combination. The excess of the fair value of purchase consideration over the fair values of these identifiable assets and liabilities is recorded as goodwill. Such valuations require management to make significant estimates and assumptions, especially with respect to intangible assets. Significant estimates in valuing certain intangible assets include, but are not limited to, estimated replacement costs and future expected cash flows from acquired customers, acquired technology, acquired patents, and trade names from a market participant perspective, useful lives and discount rates. Management’s estimates of fair value are based upon assumptions believed to be reasonable, but which are inherently uncertain and unpredictable and, as a result, actual results may differ from estimates. Allocation of purchase consideration to identifiable assets and liabilities affects the Company’s amortization expense, as acquired finite-lived intangible assets are amortized over the useful life, whereas any indefinite lived intangible assets, including IPR&amp;D and goodwill, are not amortized but tested annually for impairment. During the measurement period, which is not to exceed one year from the acquisition date, the Company records adjustments to the assets acquired and liabilities assumed, with the corresponding offset to goodwill. Upon the conclusion of the measurement period, any subsequent adjustments are recorded to earnings.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Litigation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable and the loss can be reasonably estimated in accordance with Financial Accounting Standards Board (FASB) requirements. See Note 8, Commitments and Contingencies.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recently Adopted Accounting Standards</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2019, the Financial Accounting Standards Board (“FASB”) issued Accounting Standard Update (“ASU”) No. 2019-12, Income Taxes (Topic 740), Simplifying the Accounting for Income Taxes, related to simplifying the accounting for income taxes. The guidance eliminates certain exceptions from Accounting Standards Codification (“ASC”) 740 related to the approach for intraperiod tax allocation, the methodology for calculating income taxes in an interim period and the recognition of deferred tax liabilities for outside basis differences. The guidance also clarifies and simplifies other aspects of the accounting for income taxes. The guidance became effective for the Company beginning in the first quarter of 2021 on a prospective basis. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In January 2020, the FASB issued ASU No. 2020-01, Investments-Equity Securities (Topic 321), Investments-Equity Method and Joint Ventures (Topic 323), and Derivatives and Hedging (Topic 815)-Clarifying the Interactions between Topic 321, Topic 323, and Topic 815. This ASU clarifies the interaction between accounting standards related to equity securities (ASC 321), equity method investments (ASC 323), and certain derivatives (ASC 815). The amendments in this ASU are effective for fiscal years beginning after December 15, 2020. The Company adopted this standard on January 1, 2021, and it did not have a material impact on the Company’s consolidated financial statements or the related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements and has determined there are not any that would have a material impact on the consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounting Standards Not Yet Effective</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">In June 2016, the FASB issued ASU No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (ASU 2016-13), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Additionally, ASU No. 2019-10 defers the effective date for the adoption of the new standard on credit losses for public filers that are considered small reporting companies (“SRC”) as defined by the SEC to fiscal years beginning after December 15, 2022, including interim periods within those fiscal years, which will be fiscal 2023 for the Company if it continues to be classified as an SRC. In February 2020, the FASB issued ASU 2020-02, which provides guidance regarding methodologies, documentation, and internal controls related to expected credit losses. The subsequent amendments will have the same effective date and transition requirements as ASU No. 2016-13. Early adoption is permitted. Topic 326 requires a modified retrospective approach by recording a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption. While the Company is currently evaluating the impact of Topic 326, the Company does not expect the adoption of this ASU to have a material impact on its consolidated financial statements or the related disclosure.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">2. REVENUE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes revenue in accordance with FASB ASC Topic 606, <i style="font-style:italic;">Revenue from Contracts with Customers</i>, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines revenue recognition through the following five steps:</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;width:100%;border:0pt;"><tr><td style="width:36pt;"/><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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the contract, or contracts, with a customer</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;width:100%;border:0pt;"><tr><td style="width:36pt;"/><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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the performance obligations in the contract</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;width:100%;border:0pt;"><tr><td style="width:36pt;"/><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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Determination of the transaction price</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;width:100%;border:0pt;"><tr><td style="width:36pt;"/><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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Allocation of the transaction price to the performance obligations in the contract</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;width:100%;border:0pt;"><tr><td style="width:36pt;"/><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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Recognition of revenue when, or as, performance obligations are satisfied</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contracts with multiple performance obligations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Analytics Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> and Cimetrix<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), SaaS (which is primarily Exensio products), and DFI™ systems and CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is considered as a separate performance obligation from the services offered by the Company. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue under these project–based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgement. Please refer to “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Gainshare royalty contained in IYR contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare royalty periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Disaggregation of Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue by timing of revenue:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:29.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">International revenues accounted for approximately 55% and 58% of total revenues for the year ended December 31, 2021 and 2020, respectively. See Note 13, Customer and Geographic Information.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Significant Judgments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s contracts with customers often include promises to transfer products, licenses software and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company is required to record Gainshare royalty revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contract Balances</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e. contract liabilities) at the contract level. At December 31, 2021 and 2020, contract assets of $0.4 million and $3.7 million, respectively, are included in prepaid expenses and other current assets in the Consolidated Balance Sheets. The Company did not record any asset impairment charges related to contract assets during fiscal year 2021 and 2020.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded as non-current deferred revenues. The non-current portion of deferred revenue included in other non-current liabilities as of December 31, 2021 and 2020 was $2.4 million and $1.2 million, respectively. Revenue recognized for the years ended December 31, 2021 and 2020, that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $16.9 million and $10.7 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">At December 31, 2021, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $179.5 million. Given the applicable contract terms with customers, the majority of this amount is expected to be recognized as revenue over the next <span style="-sec-ix-hidden:Hidden_5U63f_STK0iKs1xNUoO_vg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">two years</span></span>, with the remainder in the following <span style="-sec-ix-hidden:Hidden_R80uU8UkE0uv3Annf2Yzvw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three years</span></span>. This amount does not include significant contracts to which the customer is not committed, future sales-based or usage-based royalty payments in exchange for a license of intellectual property, and future payments for performance obligations from on-demand arrangements. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The adjustment to revenue recognized in the years ended December 31, 2021 and 2020 from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.4 million and an increase $0.1 million, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare royalty.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Costs to obtain or fulfill a contract</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying Consolidated Balance Sheets as of December 31, 2021 and 2020 was $0.6 million and $0.8 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying Consolidated Balance Sheets as of December 31, 2021 and 2020 was $2.1 million and $0.9 million, respectively. Amortization of these assets for each of </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">the years ended December 31, 2021 and 2020 was $0.7 million and $0.5 million, respectively. There was no impairment loss in relation to the costs capitalized for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Certain eligible initial project costs are capitalized when the costs relate directly to the contract, the costs generate or enhance resources of the Company that will be used in satisfying the performance obligation in the future, and the costs are expected to be recovered. These costs primarily consist of transition and set-up costs related to the installation of systems and processes and other deferred fulfillment costs eligible for capitalization. Capitalized costs are amortized consistent with the transfer to the customer of the services to which the asset relates and recorded as a component of cost of revenues. The Company also incurs certain direct costs to provide services in relation to the specific anticipated contracts. The Company recognizes such costs as a component of cost of revenues, the timing of which is dependent upon identification of a contract arrangement. At the end of the reporting period, the Company evaluates its deferred costs for their probable recoverability. Deferred costs balance included in prepaid expenses and other current assets and other non-current assets in the accompanying Consolidated Balance Sheets was immaterial as of December 31, 2021 and 2020. The Company recognizes impairment deferred costs when it is determined that the costs no longer have future benefits and are no longer recoverable. There was no impairment loss in relation to the costs capitalized for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Practical Expedients</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not adjust transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component for the years ended December 31, 2021 and 2020.</p> 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:29.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:65.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.38%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 0.65 0.63 0.35 0.37 1 1 0.55 0.58 400000 3700000 2400000 1200000 16900000 10700000 179500000 -400000 100000 600000 800000 2100000 900000 700000 500000 0 0 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">3. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On July 29, 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”) that included the following agreements.</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">A Securities Purchase Agreement for the purchase by Advantest of an aggregate of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">3,306,924</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> shares of its common stock for aggregate gross proceeds of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$65.2</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million and a related Stockholder Agreement.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">An Amendment #1 to that certain Software License and Related Services Agreement, dated as of March 25, 2020, for an exclusive commercial arrangement in which the Company and Advantest will collaborate on, and the Company will initially host, develop and maintain, an Advantest-specific cloud layer on the Exensio platform.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">An Amended and Restated Master Development Agreement with Advantest, pursuant to which the Company and Advantest agreed to collaborate on extensions to or combinations of both of their existing technology and new technology to address mutual customers’ needs through one or more development phases subject to certain conditions as set forth therein. Costs and expenses incurred related to this agreement have not been significant for the year ended December 31, 2021 and 2020.</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:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">A Master Commercial Terms and Support Services Agreement for the commercialization and support of integrated products of the Company and Advantest that are the outcome of the above development agreement. No material costs and expenses incurred related to the Commercial Agreement with Advantest have </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">no</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">t been significant for the year ended December 31, 2021 and 2020.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue recognized from Advantest during the year ended December 31, 2021 and 2020 was $10.6 million and $3.4 million, respectively. There was no outstanding accounts receivable from Advantest at December 31, 2021. Accounts receivable from Advantest amounted to $0.3 million at December 31, 2020. Deferred revenue amounted to $6.8 million and $5.9 million as of December 31, 2021 and 2020, respectively. There was no occurrence of any termination events under these agreements as of the issuance of these consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company carries out transactions with Advantest on arm’s length commercial customary terms.</p> 3306924 65200000 0 0 10600000 3400000 0 300000 6800000 5900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">4. BUSINESS COMBINATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On December 1, 2020 (the “Acquisition Date”), the Company acquired all the stock of Cimetrix Incorporated (“Cimetrix”). Cimetrix a global provider of equipment connectivity products for smart manufacturing and Industry 4.0 that enable factory equipment to communicate to increase productivity, reduce costs, and improve quality. The combination of Cimetrix connectivity products and platforms with the Company’s Exensio analytics platform powered by machine learning, is intended to enable IC, assembly, and electronics manufacturer customers to extract more intelligence from their tools, not just data, to build more reliable chips and systems at lower manufacturing costs. The gross purchase price was approximately $37.5 million ($31.6 million net of cash acquired) for all of the outstanding equity of Cimetrix. The net cash payment for this acquisition which also include the payment of adjusted Holdback Amount, as discussed below, was funded from the available cash of the Company. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">At the Acquisition Date, the Company held back $3.5 million of the purchase price (the “Holdback Amount”) to satisfy adjustments and claims for indemnity arising out of breaches of certain representations, warranties and covenants, and certain other enumerated items in the merger agreement.  The Holdback Amount was recorded under accrued and other current liabilities account and the corresponding restricted cash was included in the “Prepaid expenses and other current assets” account in the 2020 Consolidated Balance Sheet. In fiscal 2021, the Company recorded a measurement period adjustment which reduced the Holdback Amount to $3.1 million. The measurement period adjustment did not have an impact on the Company’s Consolidated Statement of Comprehensive Loss during the year ended December 31, 2021. The adjusted Holdback Amount of $3.1 million was paid to the participating equity holders in December 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The final purchase price allocation, completed in the fourth quarter of 2021, resulted in adjustments to certain assets and liabilities primarily related to Holdback amount, as discussed above, and a reduction to net deferred tax liabilities of approximately $1.3 million. The corresponding offset of measurement period acquisition adjustments to goodwill aggregated $1.7 million. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The following summarizes the final allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:8.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of tangible assets (including cash of $5,900)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,298</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,541</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">8</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">In-process R&amp;D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,967</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">10</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">3</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Tradenames and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 808</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">10</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,830</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total assets acquired</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable and accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,447</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 375</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 132</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 439</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,393</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;border-bottom: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 0.05pt 0pt;"> 37,534</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The estimated fair value of accounts receivable acquired approximates the contractual value of $1.6 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Pursuant to the merger agreement, the Company will also make payments to certain employees, subject to their continued employment with Cimetrix, through the second quarter of 2024. The estimated total cash payout is about $1.4 million at Acquisition Date and will be paid at various scheduled payout dates. This amount will be recognized as compensation expense over the period as services are rendered. As of December 31, 2021 and 2020, such accrued compensation recorded under “Accrued compensation and related benefits” in the Consolidated Balance Sheets amounted to $0.5 million and $0.3 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Acquisition-Related Transaction Costs – </i>Transaction expenses related to the acquisition of Cimetrix aggregated $1.6 million for the year ended December 31, 2020. These costs consist of professional fees and administrative costs and were expensed as incurred in the Company’s Consolidated Statement of Comprehensive Loss for the year ended December 31, 2020.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="visibility:hidden;">​</span></p> 37500000 31600000 3500000 3100000 3100000 -1300000 -1700000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The following summarizes the final allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:8.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of tangible assets (including cash of $5,900)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,298</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,541</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">8</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">In-process R&amp;D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,967</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">10</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">3</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Tradenames and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 808</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">10</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,830</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total assets acquired</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable and accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,447</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 375</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 132</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 439</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,393</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:72.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.96%;border-bottom: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 0.05pt 0pt;"> 37,534</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.87%;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;">  </p></td></tr></table> 5900000 8298000 12541000 P8Y 3635000 1967000 P10Y 848000 P3Y 808000 P10Y 11830000 39927000 1447000 375000 132000 439000 2393000 37534000 1600000 1600000 1400000 500000 300000 1600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">5. PROPERTY AND EQUIPMENT</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment consist of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 11,585</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 5,451</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture, fixtures and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,506</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 2,507</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;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;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,272</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 6,255</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Laboratory and other equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 3,451</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,452</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 26,010</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Construction-in-progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #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;"> 22,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </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 3pt 0pt 0pt;"> 20,278</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76,712</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 75,537</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (41,417)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </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;"> (36,295)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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;"> 35,295</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 39,242</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;text-indent:9pt;margin:0pt 0pt 12pt 0pt;">Test equipment includes DFI™ assets at customer sites that are contributing to Analytics revenue from DFI systems. The construction-in-progress balance related to construction of DFI™ assets totaled $20.0 million and $18.9 million as of <span style="color:#333333;">December 31, 2021 and 2020</span>, respectively. Depreciation and amortization expense for years ended <span style="color:#333333;">December 31, 2021 and 2020</span> was $6.2 million and $6.7 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:9pt;margin:0pt 0pt 12pt 0pt;">In 2021, the Company wrote down the value of its property and equipment by $3.2 million related to its first-generation of e-beam tools for DFI™ systems wherein carrying values may not be fully recoverable due to lack of market demand and future needs of our customers for these tools.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:9.35pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment consist of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Computer equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 11,585</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 5,451</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Furniture, fixtures and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,506</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 2,507</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;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;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,272</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 6,255</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Laboratory and other equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 3,451</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Test equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 24,452</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 26,010</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Construction-in-progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #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;"> 22,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </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 3pt 0pt 0pt;"> 20,278</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 76,712</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </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 3pt 0pt 0pt;"> 75,537</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: accumulated depreciation and amortization</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (41,417)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </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;"> (36,295)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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;"> 35,295</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 39,242</p></td></tr></table> 11924000 11585000 5419000 5451000 2506000 2507000 6272000 6255000 3981000 3451000 24452000 26010000 22158000 20278000 76712000 75537000 41417000 36295000 35295000 39242000 20000000.0 18900000 6200000 6700000 3200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;white-space:pre-wrap;">6. GOODWILL AND INTANGIBLE ASSETS</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company completed the acquisition of Cimetrix in the year ended December 31, 2020. Refer to Note 4 for additional information related to the goodwill and intangible assets added from this acquisition.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">As of December 31, 2021 and 2020, the carrying amounts of goodwill were $14.1 million and $15.8 million, respectively. The following table summarizes goodwill transaction for the year ended December 31, 2021 and 2020 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,774</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 2,293</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Addition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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 3pt 0pt 0pt;"> 13,481</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Measurement period acquisition adjustment (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #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;"> 1,651</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </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 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 15,774</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Goodwill adjustment was recorded within the measurement period with a corresponding reduction in the Holdback Amount and reduction to net deferred tax liabilities. See Note 4, </span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">Business Combination</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><div style="margin-top:12pt;"/><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;text-indent:18pt;margin:0pt;">Intangible assets balance was $21.2 million and $24.6 million as of December 31, 2021 and 2020, respectively. Intangible assets as of December 31, 2021 and 2020, consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Acquired identifiable intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">1</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (6,041)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (5,398)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,009</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">4</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (17,250)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16,385</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (14,987)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,013</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">2</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (812)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 786</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (706)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 892</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">7</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (1,640)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 160</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (1,600)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 200</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (306)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (24)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 824</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">In-process R&amp;D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;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;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,635</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 47,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;border-bottom:3px double #000000;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;"> (26,049)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,239</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 47,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;border-bottom:3px double #000000;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;"> (22,715)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,573</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="font-size:12pt;margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"/><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">Non-amortizing intangible asset</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Developed technology includes reclassified In-process R&amp;D asset related to Cimetrix’s Smart Manufacturing Solutions acquired in fiscal 2020 and reclassified in fiscal 2021 upon it becoming available for us. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The weighted average amortization period for acquired identifiable intangible assets was 6.8 years as of December 31, 2021. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Loss (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size: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.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.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</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:9.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of acquired technology included under Costs of Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,079</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 705</p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of acquired intangible assets presented separately under Costs and Expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;border-bottom:1px solid #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;"> 1,255</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;border-bottom:1px solid #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;"> 741</p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;border-bottom: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;"> 3,334</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;background:#cceeff;border-bottom: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;"> 1,446</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;text-indent:18pt;margin:0pt;">The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.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.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,468</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,444</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,046</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,882</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,712</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,687</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 21,239</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no impairment charges for goodwill and intangible assets for the year ended December 31, 2021 and 2020.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">As of December 31, 2021 and 2020, the carrying amounts of goodwill were $14.1 million and $15.8 million, respectively. The following table summarizes goodwill transaction for the year ended December 31, 2021 and 2020 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at beginning of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 15,774</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 2,293</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Addition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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 3pt 0pt 0pt;"> 13,481</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Measurement period acquisition adjustment (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #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;"> 1,651</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </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 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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;"> 14,123</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</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 3pt 0pt 0pt;"> 15,774</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Goodwill adjustment was recorded within the measurement period with a corresponding reduction in the Holdback Amount and reduction to net deferred tax liabilities. See Note 4, </span><i style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:normal;">Business Combination</i><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</span></td></tr></table><div style="margin-top:12pt;"/> 14100000 15800000 15774000 2293000 13481000 1651000 0 14123000 15774000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Intangible assets balance was $21.2 million and $24.6 million as of December 31, 2021 and 2020, respectively. Intangible assets as of December 31, 2021 and 2020, consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:28.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Acquired identifiable intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;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-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">1</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (6,041)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (5,398)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,009</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">4</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (17,250)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16,385</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 30,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (14,987)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,013</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">2</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (812)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 786</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (706)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 892</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">7</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (1,640)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 160</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;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;"> (1,600)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 200</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (306)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;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;"> (24)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 824</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">In-process R&amp;D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;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;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">N/A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,635</p></td></tr><tr><td style="vertical-align:bottom;width:29.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 47,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;border-bottom:3px double #000000;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;"> (26,049)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,239</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.61%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 47,288</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.12%;border-bottom:3px double #000000;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;"> (22,715)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,573</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="font-size:12pt;margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"/><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">Non-amortizing intangible asset</p></td></tr></table> 21200000 24600000 P1Y P10Y 9407000 6041000 3366000 9407000 5398000 4009000 P4Y P9Y 33635000 17250000 16385000 30000000 14987000 15013000 P2Y P10Y 1598000 812000 786000 1598000 706000 892000 P7Y P10Y 1800000 1640000 160000 1800000 1600000 200000 P3Y 848000 306000 542000 848000 24000 824000 3635000 3635000 47288000 26049000 21239000 47288000 22715000 24573000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The weighted average amortization period for acquired identifiable intangible assets was 6.8 years as of December 31, 2021. The following table summarizes intangible assets amortization expense in the Consolidated Statements of Comprehensive Loss (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size: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.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.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</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:9.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr style="height:1pt;"><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;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;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" 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:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of acquired technology included under Costs of Revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,079</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 705</p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Amortization of acquired intangible assets presented separately under Costs and Expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;border-bottom:1px solid #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;"> 1,255</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;border-bottom:1px solid #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;"> 741</p></td></tr><tr><td style="vertical-align:bottom;width:75.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Balance at end of year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.33%;background:#cceeff;border-bottom: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;"> 3,334</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;background:#cceeff;border-bottom: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;"> 1,446</p></td></tr></table> P6Y9M18D 2079000 705000 1255000 741000 3334000 1446000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.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.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,468</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,444</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,046</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,882</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,712</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,687</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 21,239</p></td></tr></table> 3468000 3444000 3046000 2882000 2712000 5687000 21239000 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">7. LEASES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Lease expense was comprised of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,828</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term lease and variable lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 822</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 545</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 2,682</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,373</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Supplemental balance sheets information related to leases was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.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.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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></tr><tr><td style="vertical-align:bottom;width:72.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating ROU leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Maturity of operating lease liabilities as of December 31, 2021, are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:84.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.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount (1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,825</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,459</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,071</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,087</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,053</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,649</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,144</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom: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;"> (1,128)</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 7,016</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of December 31, 2021, the total operating lease liability includes </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.1</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million related to an option to extend a lease term that is reasonably certain to be exercised</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</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:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</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:24pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes the current portion of operating lease liabilities of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.8</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million as of December 31, 2021.</span></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Lease expense was comprised of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,828</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term lease and variable lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 822</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 545</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.23%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 2,682</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,373</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1px;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of 12 months or less are not recorded on the Consolidated Balance Sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Supplemental balance sheets information related to leases was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:-0.010307312%;padding-left:0pt;padding-right:0pt;width:100.02%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.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.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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></tr><tr><td style="vertical-align:bottom;width:72.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:72.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating ROU leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 1860000 1828000 822000 545000 2682000 2373000 P5Y8M12D P6Y4M24D 0.0525 0.0524 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Maturity of operating lease liabilities as of December 31, 2021, are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:84.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.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount (1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,825</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,459</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,071</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,087</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,053</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,649</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,144</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom: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;"> (1,128)</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 7,016</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of December 31, 2021, the total operating lease liability includes </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.1</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million related to an option to extend a lease term that is reasonably certain to be exercised</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">.</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:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</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:24pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:8.5pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes the current portion of operating lease liabilities of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.8</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million as of December 31, 2021.</span></td></tr></table> 1825000 1459000 1071000 1087000 1053000 1649000 8144000 1128000 7016000 1100000 1800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><b style="font-weight:bold;">8. COMMITMENTS AND CONTINGENCIES</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Strategic Partnership with Advantest</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">See Note 3 for the discussion about the Company’s commitments under the strategic partnership with Advantest.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Operating Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Refer to Note 7, Leases, for the discussion about the Company’s lease commitments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Indemnifications</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Purchase obligations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company has purchase obligations with certain suppliers for the purchase of goods and services entered in the ordinary course of business. As of December 31, 2021, total outstanding purchase obligations were $8.9 million, the majority of which due within the next 12 months.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Indemnification of Officers and Directors</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Litigation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of December 31, 2021, except as disclosed below, the Company was not party to any material legal proceedings, thus no loss was probable and no amount was accrued.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On May 6, 2020<i style="font-style:italic;">, </i>the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research &amp; Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to PDF under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future, and costs associated with bringing the arbitration proceeding. The arbitration is on-going.</p> P90D 8900000 P12M 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">9. STOCKHOLDERS’ EQUITY</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Issuance of Common Stock</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">On July 30, 2020, the Company issued 3,306,924 shares of common stock, at a purchase price of $19.7085 per share, for aggregate gross proceeds of $65.2 million pursuant to a Securities Purchase Agreement with Advantest dated July 29, </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">2020. Issuance costs related to this private placement aggregated $0.1 million. See Note 3, Securities Purchase Agreement with Advantest, for further details.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Repurchase Program</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On May 28, 2020, the Company’s 2018 stock repurchase program (the “2018 Program”) that was originally adopted on May 29, 2018, expired. As of May 28, 2020, approximately 786,000 shares had been repurchased at an average price of $12.43 per share, for a total price of $9.8 million under the 2018 Program.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On June 4, 2020, the Company’s Board of Directors adopted a new stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the year ended December 31, 2021, 251,212 shares were repurchased under the 2020 at average price of $18.01 per share for an aggregate total price of $4.5 million under the 2020 Program. </p> 3306924 19.7085 65200000 100000 786000 12.43 9800000 25000000.0 P2Y 251212 18.01 4500000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">10. EMPLOYEE BENEFIT PLANS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On December 31, 2021, the Company had the following stock-based compensation plans:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Employee Stock Purchase Plans</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees can contribute up to 10% of their compensation, as defined in the Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four <span style="-sec-ix-hidden:Hidden_GfzgyVs-2kqzWCxSig1WsQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">six-month</span></span> purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan”). The terms of 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company estimated the fair value of purchase rights granted under the 2021 and 2010 Purchase Plans (collectively, the “Stock Purchase Plans”) during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:36.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;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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:18.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.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:1.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:13.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.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:13.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:36.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021 Purchase Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:33.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2010 Purchase Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:19.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended </b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;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;"> </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:33.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended </b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:36.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.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;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 34.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 34.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:36.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;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:36.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.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;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.83</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.83</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">During the year ended December 31, 2021 and 2020, a total of approximately 109,000 and 183,000 shares, respectively, were issued at a weighted-average purchase price of $9.53 and $9.12 per share, respectively. As of December 31, 2021, the estimated unrecognized compensation cost related to the 2021 Purchase Plan was $1.9 million and there was a negligible amount of unrecognized compensation cost related to the 2010 Purchase Plan. These estimated unrecognized compensation costs are expected to be recognized over a weighted average period of 1.6 years. As of December 31, 2021, 1.0 million shares were available for future issuance under the 2021 Purchase Plan, and shares </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">available for future issuance under the 2010 Purchase Plan was 5.6 million but shares to be issued will be limited only to the final offering period on January 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Incentive Plans</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as amended, the “2011 Plan”). Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under this plan is 11,550,000 shares, plus up to 3,500,000 shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a <span style="-sec-ix-hidden:Hidden_mAA8bzNML0S-UVWID22GlQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span>-year period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock options granted under the 2001 Plan generally expire ten years from the date of grant and become vested and exercisable over a <span style="-sec-ix-hidden:Hidden_h3Uyz8gx6UWq7EP3ZzrntQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span>-year period. Although no new awards may be granted under the 2001 Plan, awards made under the 2001 Plan that are currently outstanding remain subject to the terms of each such plan.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021, 12.1 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.4 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through December 31, 2021. As of December 31, 2021, there were no outstanding awards that had been granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”)</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company has elected to use the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life, interest rate and expected dividend. The expected volatility is based on the historical volatility of the Company’s common stock over the most recent period commensurate with the estimated expected life of the Company’s stock options. The expected life of an award is based on historical experience and on the terms and conditions of the stock awards granted to employees. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of the Company’s stock options.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.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:2.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:10.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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:10.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 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.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:67.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.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;">Expected life (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 40.90</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.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;">Risk-free interest rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.60</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.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;">Weighted average fair value per share of options granted during the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">No stock options were granted during the year ended December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally <span style="-sec-ix-hidden:Hidden_zMLabvwlfUeuphvdyq1PRg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">four</span></span> years. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;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;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,563</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</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 3pt 0.05pt 0pt;"> 3,454</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,515</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,800</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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 3pt 0.05pt 0pt;"> 4,209</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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 0.05pt 0pt;"> 12,931</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</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 3pt 0.05pt 0pt;"> 12,463</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The stock-based compensation expense in the table above includes immaterial expense or credit adjustments related to cash-settled SARs granted to certain employees. The Company accounted for these awards as liability awards and the amount was included in accrued compensation and related benefits. SARs were fully exercised in the third quarter of 2020. Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was nil and approximately $0.2 million for the years ended December 31, 2021 and 2020, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Additional information with respect to options under the Plans is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:34.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.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:17.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 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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:15.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:31.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;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;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;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;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Term</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;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;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">per Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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;">Outstanding, January 1, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 745</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.64</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted (weighted average fair value of $5.75 per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16.72</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"> (246)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (57)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11.65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;border-bottom: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;"> (10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.06</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, January 1, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 456</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.95</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (216)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8.90</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"> (10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15.56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;border-bottom: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;"> (4)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6.90</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom: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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.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;">Outstanding, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 226</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 12.78</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3.20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 4,288</p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested and expected to vest, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;border-bottom: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 0.05pt 0pt;"> 223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom: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 0.05pt 0pt;"> 12.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom: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 0.05pt 0pt;"> 3.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom: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 0.05pt 0pt;"> 4,250</p></td></tr><tr><td style="vertical-align:bottom;width:34.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;">Exercisable, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 190</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 12.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2.36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 3,684</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $31.79 as of December 31, 2021, which would have been received by the option holders had all option holders exercised their options as of that date. The total intrinsic value of options exercised during the years ended December 31, 2021 and 2020 was $3.0 million and $2.2 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021, there was $0.2 million of total unrecognized compensation cost, net of forfeitures, related to unvested stock options. That cost is expected to be recognized over a weighted average period of <span style="-sec-ix-hidden:Hidden_N__BbnRQ80eC5sWl9J1I7Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">1.7</span></span> years. The total fair value of options vested during the year ended December 31, 2021, was $0.2 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Nonvested shares (restricted stock units) were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:69.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.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;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.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;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.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;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Nonvested, January 1, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,887</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12.30</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21.31</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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;"> (867)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13.25</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 0pt 0.05pt 0pt;"> (163)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13.23</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Nonvested, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,747</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16.33</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19.43</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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;"> (689)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15.23</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 0pt 0.05pt 0pt;"> (163)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> 17.63</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Non-vested, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> 1,872</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> 16.33</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021, there was $25.4 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.6 years. Restricted stock units do not have rights to dividends prior to vesting.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">401(k) Savings Plan</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In 1999, the Company established a 401(k) tax-deferred savings plan, whereby eligible employees may elect to defer up to 60% of their eligible compensation but not to exceed the statutorily prescribed limit to the 401(k) plan. The 401(k) plan also has a catch-up contribution feature for employees aged 50 or older who can defer up to 100% of their eligible compensation but not to exceed the statutorily prescribed limit to the 401(k) plan. Company contributions to this plan are discretionary; no such Company contributions have been made since the inception of this plan.</p> 0.10 0.85 P24M 4 P10Y P24M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:36.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;width:2.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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:18.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.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:1.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:13.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.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:13.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:36.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021 Purchase Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:33.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2010 Purchase Plan</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:19.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended </b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;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;"> </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:33.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended </b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">December 31,</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:36.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:19.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.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;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 34.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 34.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:36.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;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1.43</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:36.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:2.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.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;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:2.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.83</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.83</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.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:2.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:10.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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:10.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 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.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:67.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.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;">Expected life (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 40.90</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.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;">Risk-free interest rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.60</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.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;">Weighted average fair value per share of options granted during the period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td></tr></table> P1Y3M P1Y3M P1Y3M 0.4800 0.3425 0.3425 0.0011 0.0143 0.0143 0 0 0 6.71 4.83 4.83 109000 183000 9.53 9.12 1900000 P1Y7M6D 1000000.0 5600000 11550000 3500000 1.33 P10Y P10Y 12100000 3400000 500000 0 P4Y5M12D 0.4090 0.0060 5.75 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Stock-based compensation expenses related to the Company’s stock plans and employee stock purchase plans were allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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-size:1pt;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;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,563</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</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 3pt 0.05pt 0pt;"> 3,454</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,515</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,800</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,853</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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 3pt 0.05pt 0pt;"> 4,209</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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 0.05pt 0pt;"> 12,931</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</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 3pt 0.05pt 0pt;"> 12,463</p></td></tr></table> 2563000 3454000 5515000 4800000 4853000 4209000 12931000 12463000 0 200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:34.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.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:17.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 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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:15.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:31.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;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;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;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;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;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;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Term</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;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;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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="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;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">per Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.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;">Outstanding, January 1, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 745</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.64</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted (weighted average fair value of $5.75 per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16.72</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"> (246)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (57)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11.65</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;border-bottom: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;"> (10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.06</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, January 1, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 456</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.95</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (216)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8.90</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;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;"> (10)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15.56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;border-bottom: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;"> (4)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6.90</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom: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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.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;">Outstanding, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 226</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 12.78</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3.20</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 4,288</p></td></tr><tr><td style="vertical-align:bottom;width:34.32%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested and expected to vest, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;border-bottom: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 0.05pt 0pt;"> 223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom: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 0.05pt 0pt;"> 12.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom: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 0.05pt 0pt;"> 3.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;border-bottom: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 0.05pt 0pt;"> 4,250</p></td></tr><tr><td style="vertical-align:bottom;width:34.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;">Exercisable, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:17.31%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 190</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.81%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 12.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2.36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.19%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 3,684</p></td></tr></table> 745000 10.64 5.75 24000 16.72 246000 10.46 57000 11.65 10000 10.06 456000 10.95 216000 8.90 10000 15.56 4000 6.90 226000 12.78 P3Y2M12D 4288000 223000 12.75 P3Y1M24D 4250000 190000 12.40 P2Y4M9D 3684000 31.79 3000000.0 2200000 200000 200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Nonvested shares (restricted stock units) were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:69.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.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;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.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;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.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;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Nonvested, January 1, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,887</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12.30</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 890</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21.31</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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;"> (867)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13.25</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 0pt 0.05pt 0pt;"> (163)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13.23</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Nonvested, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,747</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16.33</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19.43</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.54%;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;"> (689)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15.23</p></td></tr><tr><td style="vertical-align:bottom;width:69.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 0pt 0.05pt 0pt;"> (163)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> 17.63</p></td></tr><tr><td style="vertical-align:bottom;width:69.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;">Non-vested, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> 1,872</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> 16.33</p></td></tr></table> 1887000 12.30 890000 21.31 867000 13.25 163000 13.23 1747000 16.33 977000 19.43 689000 15.23 163000 17.63 1872000 16.33 25400000 P2Y7M6D 0.60 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">11. INCOME TAXES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">During the years ended December 31, 2021 and 2020, loss before taxes from U.S. operations was ($19.7) million and ($18.4) million, respectively, and income before taxes from foreign operations was $1.4 million and $0.3 million, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;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;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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-size:1pt;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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="7" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.79%;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;"><b style="font-weight:bold;">(In thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">U.S.</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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="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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67)</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,325)</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,056</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 237</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 238</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Withholding</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,591</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,392</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0.05pt 0pt;"> 92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;background:#cceeff;border-bottom: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;"> (58)</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0.05pt 0pt;"> 3,171</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;border-bottom: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 0.05pt 0pt;"> 22,303</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2021 and 2020) for the following reasons (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Federal statutory tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (3,847)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (3,793)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">State tax provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 239</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 703</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (499)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (602)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax credits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,676)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,488)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign tax, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,653</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,443</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Change in valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,099</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,034</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unrealized tax benefit reserve changes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (151)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Business combination costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 356</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax law changes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (2,237)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 353</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;border-bottom: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;"> (113)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 3,171</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 22,303</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021, the Company had Federal and California net operating loss carry-forwards (“NOLs”) of approximately $51.6 million and $13.1 million, respectively. Some of the Federal NOLs, acquired as part of a past acquisition, have expirations at the end of 2021 and onwards, and the California NOLs begin expiring in 2028 onwards.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2021, the Company had federal and state research and experimental and other tax credit (“R&amp;D credits”) carry-forwards of approximately $21.0 million and $21.6 million, respectively. The federal credits begin to expire after 2022, while the California credits have no expiration. The extent to which the federal and state credit carry forwards can be used to offset future tax liabilities, respectively, may be limited, depending on the extent of ownership changes within any three-year period as provided in the Tax Reform Act of 1986 and the California Conformity Act of 1987.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company assesses its deferred tax assets for recoverability on a regular basis, and where applicable, a valuation allowance is recorded to reduce the total deferred tax asset to an amount that will, more likely than not, be realized in the future. Based on all available evidence, both positive and negative, the Company determined a full valuation allowance was still appropriate for its federal and state net deferred tax assets (DTAs) at December 31, 2021, primarily driven by a cumulative loss incurred over the 12-quarter period ended December 31, 2021 and the likelihood that the Company will not utilize tax attributes before they begin to expire at the end of 2022. The valuation allowance was approximately $51.6 million and $41.9 million as of December 31, 2021 and 2020, respectively. The increase in the valuation allowance from December 31, 2020 to December 31, 2021 was primarily driven by net operating losses (NOLs) and credits generated in the current year which require a valuation allowance. Management will continue to evaluate the need for a valuation allowance and may change its conclusion in a future period based on any change in facts (e.g. 12-quarter cumulative profit, significant new revenue, and other relevant factors). If the Company concludes that it is more likely than not to utilize some or all of its US DTAs, it will release some or all of its valuation allowance and our tax provision will decrease in the period in which we make such determination. Net deferred tax assets, after the US valuation allowance, was immaterial as of December 31, 2021 and $0.2 million as of December 31, 2020.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The components of the net deferred tax assets are comprised of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.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.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:1.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:9.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.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:1.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: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:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Net operating loss carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,085</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Research and development and other credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,591</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </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 3pt 0.05pt 0pt;"> 24,723</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Foreign tax credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,010</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,435</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Accruals deductible in different periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,362</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </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 3pt 0.05pt 0pt;"> 3,471</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,472</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,669</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,442</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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 3pt 0.05pt 0pt;"> 1,220</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 57,026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48,603</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Less: valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom: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;"> (51,586)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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;"> (41,859)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,440</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,744</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="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;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 178</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </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;"> (629)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"> (1,472)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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;"> (1,669)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom: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;"> (4,129)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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;"> (4,218)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"> (5,423)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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;"> (6,516)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="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;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</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 3pt 0.05pt 0pt;"> 228</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In accordance with the accounting standard relating to accounting for uncertain tax positions, the Company classifies its liabilities for income tax exposures as long-term. The Company includes interest and penalties related to unrecognized tax benefits within the Company’s income tax provision. As of December 31, 2021 and 2020, the Company had accrued interest and penalties related to unrecognized tax benefits of $0.7 million and of $0.8 million, respectively. In the years ended December 31, 2021 and 2020, the Company recognized (reversal of) charges for interest and penalties related to unrecognized tax benefits of ($89,000) and $33,000 respectively, in the Consolidated Statements of Comprehensive Loss.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of December 31, 2021 was $14.7 million, of which $2.0 million, if recognized, would impact the Company’s effective tax rate. As of December 31, 2021, the Company has recorded unrecognized tax benefits of $2.6 million, including interest and penalties of $0.7 million, as long-term income taxes payable in its Consolidated Balance Sheet. The remaining $12.9 million has been recorded within our deferred tax assets, which is subject to a full valuation allowance. The Company does not expect the change in unrecognized tax benefits over the next twelve months to materially impact its results of operations and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross unrecognized tax benefits, January 1, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,615</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,024</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 71</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (410)</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross unrecognized tax benefits, December 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,300</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 853</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (411)</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross unrecognized tax benefits, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom: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;"> 14,743</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;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not provide deferred taxes on undistributed earnings of its foreign subsidiaries as it intends to indefinitely reinvest those earnings.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal, various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the years ended 2018 to present and 2017 to present, respectively. In addition, due to NOL carryback claims, the tax years 2013 through 2015 may be subject to federal examination and all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not currently under income tax examinations in the US or in any other of its major foreign subsidiaries’ jurisdictions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Valuation allowance for deferred tax assets is summarized (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.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;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.26%;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;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.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;"><b style="font-weight:bold;">Costs and</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.26%;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;"><b style="font-weight:bold;">Write-offs of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expenses</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Valuation allowance for deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.53%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 41,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,727</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 51,586</p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 31,373</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 41,859</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="font-size:12pt;margin-bottom:12pt;visibility:hidden;">​</span><span style="font-size:12pt;margin-bottom:12pt;visibility:hidden;">​</span></p> -19700000 -18400000 1400000 300000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;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;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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-size:1pt;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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="7" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.79%;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;"><b style="font-weight:bold;">(In thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">U.S.</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;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="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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67)</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,325)</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,056</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 237</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 238</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Withholding</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,591</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,392</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Deferred</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0.05pt 0pt;"> 92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;background:#cceeff;border-bottom: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;"> (58)</p></td></tr><tr><td style="vertical-align:bottom;width:74.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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 3pt 0.05pt 0pt;"> 3,171</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.39%;border-bottom: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 0.05pt 0pt;"> 22,303</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> -67000 -1325000 1318000 21056000 237000 238000 1591000 2392000 92000 -58000 3171000 22303000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The income tax expense differs from the amount estimated by applying the statutory federal income tax rate (21% for 2021 and 2020) for the following reasons (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:24.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Federal statutory tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (3,847)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (3,793)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">State tax provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 239</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 703</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (499)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (602)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax credits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,676)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,488)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Foreign tax, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,653</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,443</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Change in valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,099</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,034</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unrealized tax benefit reserve changes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (151)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Business combination costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 356</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Tax law changes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;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;"> (2,237)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 353</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;border-bottom: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;"> (113)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total income tax expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.52%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 3,171</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.5%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.47%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 22,303</p></td></tr></table> 0.21 0.21 -3847000 -3793000 239000 703000 -499000 -602000 2676000 3488000 1653000 2443000 8099000 29034000 -151000 356000 -2237000 353000 -113000 3171000 22303000 51600000 13100000 21000000.0 21600000 51600000 41900000 200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The components of the net deferred tax assets are comprised of (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.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.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:1.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:9.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.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:1.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: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:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Net operating loss carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,149</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,085</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Research and development and other credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,591</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </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 3pt 0.05pt 0pt;"> 24,723</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Foreign tax credit carry forward</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,010</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,435</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Accruals deductible in different periods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,362</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </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 3pt 0.05pt 0pt;"> 3,471</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,472</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,669</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Stock-based compensation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,442</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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 3pt 0.05pt 0pt;"> 1,220</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 57,026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 48,603</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Less: valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom: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;"> (51,586)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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;"> (41,859)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax assets, net of valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,440</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,744</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="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;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Property and equipment, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 178</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </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;"> (629)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Operating lease right-of-use assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"> (1,472)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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;"> (1,669)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;background:#cceeff;border-bottom: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;"> (4,129)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </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;"> (4,218)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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;"> (5,423)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width: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;"> (6,516)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="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;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.24%;border-bottom: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 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</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 3pt 0.05pt 0pt;"> 228</p></td></tr></table> 13149000 8085000 26591000 24723000 11010000 9435000 3362000 3471000 1472000 1669000 1442000 1220000 57026000 48603000 51586000 41859000 5440000 6744000 -178000 629000 1472000 1669000 4129000 4218000 5423000 6516000 17000 228000 700000 800000 -89000 33000 14700000 2000000.0 2600000 700000 12900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">A reconciliation of the beginning and ending amount of unrecognized tax benefits is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.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></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross unrecognized tax benefits, January 1, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 13,615</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,024</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 71</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (410)</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross unrecognized tax benefits, December 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 14,300</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for current year</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 853</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Increases in tax positions for prior years</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Lapse in statute of limitations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (411)</p></td></tr><tr><td style="vertical-align:bottom;width:84.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Gross unrecognized tax benefits, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom: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;"> 14,743</p></td></tr></table> 13615000 1024000 71000 410000 14300000 853000 1000 411000 14743000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Valuation allowance for deferred tax assets is summarized (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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-size:1pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">Balance at</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.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;"><b style="font-weight:bold;">Charged to</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.26%;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;"><b style="font-weight:bold;">Deductions/</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">Balance at</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">Beginning</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.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;"><b style="font-weight:bold;">Costs and</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.26%;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;"><b style="font-weight:bold;">Write-offs of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" 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;"><b style="font-weight:bold;">End of</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Expenses</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" 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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Valuation allowance for deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.53%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 41,859</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,727</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 51,586</p></td></tr><tr><td style="vertical-align:bottom;width:52.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 31,373</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 41,859</p></td></tr></table> 41859000 9727000 51586000 10486000 31373000 41859000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">12. NET LOSS PER SHARE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Basic net loss per share is computed by dividing net loss by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net loss per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.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.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:1.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:9.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size: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.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:1.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:9.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></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" 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:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (21,488)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (40,363)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic weighted-average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 37,138</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34,458</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of dilutive options and restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;border-bottom:1px solid #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;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #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;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Diluted weighted-average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom: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;"> 37,138</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom: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;"> 34,458</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net loss per share, basic and diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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="-sec-ix-hidden:Hidden_3NBZdmWARUC0aJok_6hu_g;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (0.58)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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="-sec-ix-hidden:Hidden_9X5RMlsmS0yAlmTGttAAPQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1.17)</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;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For the years ended December 31, 2021 and 2020, because the Company was in a loss position, basic net loss per share is the same as diluted net loss per share as the inclusion of the potential common shares would have been anti-dilutive.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The following table sets forth potential shares of common stock that are not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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 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.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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.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></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:29.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 170</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 332</p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 921</p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Employee Stock Purchase Plans</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 160</p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom: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 0.05pt 0pt;"> 1,171</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;border-bottom: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 0.05pt 0pt;"> 1,413</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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;text-indent:18pt;margin:0pt;">Basic net loss per share is computed by dividing net loss by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net loss per share is computed using the weighted-average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net loss per share (in thousands except per share amount):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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.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.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:1.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:9.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size: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.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:1.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:9.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></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" 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:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (21,488)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (40,363)</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic weighted-average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 37,138</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34,458</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Effect of dilutive options and restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;border-bottom:1px solid #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;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #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;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Diluted weighted-average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom: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;"> 37,138</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom: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;"> 34,458</p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net loss per share, basic and diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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="-sec-ix-hidden:Hidden_3NBZdmWARUC0aJok_6hu_g;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.11%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (0.58)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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="-sec-ix-hidden:Hidden_9X5RMlsmS0yAlmTGttAAPQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1.17)</p></td></tr></table> -21488000 -40363000 37138000 34458000 37138000 34458000 -0.58 -1.17 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The following table sets forth potential shares of common stock that are not included in the diluted net loss per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.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 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.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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.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></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:29.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 170</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 332</p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 968</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 921</p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Employee Stock Purchase Plans</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 160</p></td></tr><tr><td style="vertical-align:bottom;width:67.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.13%;border-bottom: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 0.05pt 0pt;"> 1,171</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.08%;border-bottom: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 0.05pt 0pt;"> 1,413</p></td></tr></table> 170000 332000 968000 921000 33000 160000 1171000 1413000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">13. CUSTOMER AND GEOGRAPHIC INFORMATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and <span style="-sec-ix-hidden:Hidden_lcm3m8FjUkKi8zR1HBXwAg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">reporting</span></span> segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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.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:1.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:10.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:3.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;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-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">E</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.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 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.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:11.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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 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: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 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.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;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-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"/><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">represents less than 10%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:50.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:7.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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.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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:45.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 50,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 36,723</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 42</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,267</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,776</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Japan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,097</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,762</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Taiwan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,387</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,935</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,747</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></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 3pt 0.05pt 0pt;"> 28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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 3pt 0.05pt 0pt;"> 111,060</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom: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 0.05pt 0pt;"> 88,046</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><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;text-indent:18pt;margin:0pt;">Long-lived assets, net by geographic area is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:27.35pt;margin:0pt;"><span style="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:76.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.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:7.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.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:7.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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:76.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:20.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 43,663</p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,545</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,251</p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 40,703</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 45,914</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="margin-bottom:12pt;visibility:hidden;">​</span><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"/><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">(1)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">Includes assets deployed at customer sites which could be outside the U.S.</p></td></tr></table> 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenues from individual customers that are approximately 10% or more of the Company’s consolidated total revenues are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.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><td style="vertical-align:bottom;white-space:nowrap;width:2.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:10.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.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:1.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:10.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:3.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:26.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;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-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">E</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:67.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 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.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:11.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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 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: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 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.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 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;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-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:67.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">D</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"/><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">*</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">represents less than 10%</p></td></tr></table> 0.23 0.17 0.10 0.16 0.15 0.11 0.29 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:50.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:7.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.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 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.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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:45.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:21.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 50,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 36,723</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 42</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">%</p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 14,267</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 13</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,776</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Japan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,097</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,762</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Taiwan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,387</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,038</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 3pt 0.05pt 0pt;"> 9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,935</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,747</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></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 3pt 0.05pt 0pt;"> 28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.04%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.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 3pt 0.05pt 0pt;"> 111,060</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.97%;border-bottom: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 0.05pt 0pt;"> 88,046</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width: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 3pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 50374000 0.45 36723000 0.42 14267000 0.13 13776000 0.16 11097000 0.10 4762000 0.05 6387000 0.06 8038000 0.09 28935000 0.26 24747000 0.28 111060000 1 88046000 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Long-lived assets, net by geographic area is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:27.35pt;margin:0pt;"><span style="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:76.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.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:7.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:1.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:7.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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:76.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:20.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.42%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 43,663</p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,545</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,251</p></td></tr><tr><td style="vertical-align:bottom;width:76.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.77%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 40,703</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.64%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 45,914</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:1pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="display:inline-block;visibility:hidden;width:0pt;">​</span><br/><span style="margin-bottom:12pt;visibility:hidden;">​</span><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><div style="font-family:'Times New Roman','Times','serif';font-size:12.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;border:0;"><tr><td style="width:18pt;padding:0pt;"/><td style="vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">(1)</p></td><td style="padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;">Includes assets deployed at customer sites which could be outside the U.S.</p></td></tr></table> 39158000 43663000 1545000 2251000 40703000 45914000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">14. FAIR VALUE MEASUREMENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:14.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%;"/></div></td><td style="vertical-align:bottom;width:85.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%;"/></div></td></tr><tr><td style="vertical-align:top;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 0pt 18pt;">Level 1 -</p></td><td style="vertical-align:top;width:85.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:justify;margin:0pt;">Inputs are quoted prices in active markets for identical assets or liabilities.</p></td></tr><tr><td style="vertical-align:top;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 0pt 18pt;">Level 2 -</p></td><td style="vertical-align:top;width:85.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:justify;margin:0pt;">Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.</p></td></tr><tr><td style="vertical-align:top;width:14.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;margin:0pt 0pt 0pt 18pt;">Level 3 -</p></td><td style="vertical-align:top;width:85.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:1.27;text-align:justify;margin:0pt;">Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.</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;text-indent:18pt;margin:0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2021 and the basis for that measurement (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:44.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:12.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;white-space:nowrap;width:44.57%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:53.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.57%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.96%;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;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;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;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.96%;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;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;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-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs (Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,474</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,474</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 112,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 112,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 125,016</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 125,016</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><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;text-indent:18pt;margin:0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2020 and the basis for that measurement (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:46.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><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:9.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:51.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;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;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;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;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;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;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;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;"><b style="font-weight:bold;">Inputs </b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,012</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,012</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Treasury bills</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 114,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 114,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 132,993</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 132,993</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><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;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">The carrying amount of the Company’s investments in U.S. Treasury bills approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities at December 31, 2021 and 2020.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">From time to time, the Company enters into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities, primarily on third-party accounts payables and intercompany balances. The primary objective of the Company’s hedging program is to reduce volatility of earnings related to foreign currency exchange rate fluctuations. The counterparty to these foreign currency forward contracts is a financial institution that the Company believes is creditworthy, and therefore, the Company believes the credit risk of counterparty nonperformance is not significant. These foreign currency forward contracts are not designated for hedge accounting treatment. Therefore, the change in fair value of these contracts is recorded into earnings as a component of other expense (income), net, and offsets the change in fair value of the foreign currency denominated assets and liabilities, which is also recorded in other expense (income), net in the Company’s Consolidated Statements of Comprehensive Loss. There was no realized gain or <span style="-sec-ix-hidden:Hidden_WX8Mv4oaVU-0huupVFRYcQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">loss</span></span> from foreign currency forward contracts during the year ended December 31, 2021. For the year ended December 31, 2020, the Company recognized a realized loss of $0.2 million on the contracts, which is recorded in interest and other expense (income), net in the Company’s Consolidated Statement of Comprehensive Loss. As of December 31, 2021 and 2020, the Company had no outstanding forward contracts.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2021 and the basis for that measurement (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:44.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:12.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;white-space:nowrap;width:44.57%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:53.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:44.57%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.96%;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;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;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;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.96%;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;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;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-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs (Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,474</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,474</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</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 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 112,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 112,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:44.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 125,016</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.13%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 125,016</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.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 3pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><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;text-indent:18pt;margin:0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of December 31, 2020 and the basis for that measurement (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:46.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><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:10.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:9.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 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.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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 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.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:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:51.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;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;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;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;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;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;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;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;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;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;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;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;"><b style="font-weight:bold;">Inputs </b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2020</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;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;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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;">  </p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,012</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 18,012</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;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="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Treasury bills</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 114,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 114,981</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:46.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.74%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 132,993</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.1%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> 132,993</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.67%;background:#cceeff;border-bottom: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 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.68%;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;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr></table> 12474000 12474000 112542000 112542000 125016000 125016000 18012000 18012000 114981000 114981000 132993000 132993000 0 200000 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">15. SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The following is a summary of the Company’s quarterly consolidated results of operations (unaudited) for the fiscal years ended December 31, 2021 and 2020.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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:53.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:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q4</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="13" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;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;"><b style="font-weight:bold;">(In thousands, except for per share amounts)</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,555</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,886</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,663</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,785</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,070</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,675</p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (7,597)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (4,484)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (2,407)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (7,000)</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Basic and diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_lbCTAQff-k6dYTKVCKwS2A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.21)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_sfplsd5OdkmcpfjKzKYPtw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_Bs95he9LBE2bYR2HuiS-Eg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.06)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_yZwilHCo70q3YkNXwnTYQg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.19)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="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:53.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:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q4</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="13" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;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;"><b style="font-weight:bold;">(In thousands, except for per share amounts)</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,409</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 22,367</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,487</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,946</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,493</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,839</p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (528)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (3,652)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (2,734)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (33,449)</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Basic and diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_LGn3jIMyYk2ek9dY56xtjQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.02)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_uHgD8rK8O0Sagrek6MAnPQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.11)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_q-B24pIy9kSJqWu05_IgFA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.08)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_G-TmC_qU-U-RSUUgOVIJgw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.91)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="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;text-indent:18pt;margin:0pt;"><span style="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:53.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:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q4</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="13" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;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;"><b style="font-weight:bold;">(In thousands, except for per share amounts)</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,555</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 29,886</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,663</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,785</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,070</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,675</p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (7,597)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (4,484)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (2,407)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (7,000)</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Basic and diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_lbCTAQff-k6dYTKVCKwS2A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.21)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_sfplsd5OdkmcpfjKzKYPtw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_Bs95he9LBE2bYR2HuiS-Eg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.06)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_yZwilHCo70q3YkNXwnTYQg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.19)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:0pt;margin:0pt;"><span style="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:53.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:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New 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.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:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ended December 31, 2020</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q1</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q2</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q3</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;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;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Q4</b></p></td></tr><tr style="height:0pt;visibility:hidden;"><td colspan="13" style="padding:0pt;"/></tr><tr><td style="vertical-align:bottom;width:53.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="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;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="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:44.73%;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;"><b style="font-weight:bold;">(In thousands, except for per share amounts)</b></p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Total revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,409</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23,112</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 22,367</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,487</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,946</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,493</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,839</p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Net loss</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (528)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (3,652)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (2,734)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (33,449)</p></td></tr><tr><td style="vertical-align:bottom;width:53.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net loss per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:53.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;">Basic and diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_LGn3jIMyYk2ek9dY56xtjQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.02)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_uHgD8rK8O0Sagrek6MAnPQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.11)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_q-B24pIy9kSJqWu05_IgFA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.08)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_G-TmC_qU-U-RSUUgOVIJgw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.2%;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;"> (0.91)</p></td></tr></table> 24200000 27419000 29555000 29886000 10663000 10785000 11070000 11675000 -7597000 -4484000 -2407000 -7000000 -0.21 -0.12 -0.06 -0.19 21158000 21409000 23112000 22367000 8487000 8946000 9493000 9839000 -528000 -3652000 -2734000 -33449000 -0.02 -0.11 -0.08 -0.91 207 The carrying amount of the Company’s investments in U.S. Treasury bills approximate fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities at December 31, 2021 and 2020. Additions to the accounts receivable reserve for doubtful accounts are charged to bad debt expense. Additions to the receivable reserve for billing adjustments are charged against revenue. EXCEL 91 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( ':"850'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 " !V@F%4Q"-R<^T K @ $0 &1O8U!R;W!S+V-O&ULS9+! M2L0P$(9?17)O)TE!V-#M1?&D(+B@> O)[&ZP:4,RTN[;F\;=+J(/X#$S?[[Y M!J8U09DQXG,< T9RF&YFWP])F;!E1Z*@ )(YHM>ISHDA-_=C])KR,QX@:/.A M#PB2\UOP2-IJTK J[ 26==:HTQ$36,\XZU9\>$S]@5F#6"/'@=*(&H!K%LF MAM/U*+-4_L:4#[)R0&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,$% @ M=H)A5/F6W?8.!@ [!D !@ !X;"]W;W)KM')5EKPJ#!*DP[SO)-.RF/9NCPOKDWUY;G*31)+,=4DR].4 MZ]XL72V N=R_,57XA F,^KJ8:SS@XEBE,ALUA)HL7\HC6@ M'T;^F34HGO@2BW6V=TSL5&9*/=F32731\BPCD8C06 @.?\]B*)+$(@&/OTK0 MUFY,:[A_O$4?%Y.'RT>,/!+ [^I0;V4RE\,.(&WYYKM6::/LTH-F#PIF%-4P_EC;N@=%P-P8[R41NUI.-2YM\#D;DW=OWY"V));F-DP0N9^<= X-;B$Y8#G2U&8@= M&(@RL5 MYLQA/L+-/^821O=CL6O68L!E+F/"$/8J6T<='!<8S.!4+G9$?GI!F=J="QLIZ/"+Q( M3O_4()7+\:)[7]JE/,1^=[?B<->'S(!9Q9L!-AMSQU!D]'&%DJ/._R57R'!UC9"L=I_Y_(CNT9Q#L1[66 M3J(X7 !K&C@F7'.,7I4$*"[C/]+;+<:I5L^Q#-W.Q#&' XQ:E1DH+ND_4INJ MS$"&^#->'7Y#<,2SGM?S,&Y5FJ"XNA=1'$!E?9@*#M#U3C$B54Z@N)#?J!!\ M,ETJB0EP#0@[]=K],P]U3941*"[GC[&!9*#FA+)WL_\G58-XIC%J5"EBC5/!%)9 ZH5$M*A'M[$=JD'!"E=RS M1G(_S+6VI=JF/BN6%@AK[B:&(WX3&<:L4GK62.DGT@B]::]M9X6I<,@Y0G";G* M,[B=N6.)X]1T*:R2?88K=DGH.A5Z85?7;X!@EI",TA67;M_]OX: 5?K/<-6> M#,Q1WO86C$J57H-B-N^?+'NV==YY=@U>B[C<2]>]S;+#D4&N1 M^]Q T*1-B:Z-E!+Y9(^0W^][?6I;.">K2L_]1GH^!$'24-=,9"1>R"?AC%,- ME"T6*//.:!<+UMY^#"[# VB]HZ+]/K2.:P!JUTVEY'Y-?5TFEW&+OFX!: M"-NHJ(%KMRF#!ARC5DFYWW [I^16;J.,X;)3+VO@QM\P5I5\^PUW=?8]=I@3 M#E:WP5=IN(]+[E8C#Q5X->97TUMR,:NZ4RCG5*)B,G&QR!>7V, M2272/JZN6R:VK_GW1F=)!8> %IE\5)F 7MO9B';VML=M_BP^,V0DM+LOFYWR MW=7=IXQ!L8'?J1[?? >YY3;]9B01,3,=")=$C*2?9I]]1Y-(\O'TYY&\WY$Z M>Q#RN]IRKM%C5=;J?+'5>O=VM5+YEE=,O1$[7L,O&R$KIN%6WJ_43G*V;AM5 MY8H$0;RJ6%$O+L[:9U_DQ9EH=%G4_(M$JJDJ)I_>\5(\G"_PXOG!U^)^J\V# MU<79CMWS6Z[_W'V1<+?JO:R+BM>J$#62?'.^N,1OKVAL&K06?Q7\08VND>G* MG1#?S#K;! N6-TJ(Z- 8% M55%W_]GC(1"C!CB<:4 .#-E]!?_M.D[[3I/5'YSK=2,EKC9A27*NW'H^T]TA;C^&<1Z:V"&*# M+;:CT-B6]& XJBW>J$S['6&7IVW M6R'UJ>:R@A'=HQ)%)*)2I=9F*78+3/J949>F9=Y+AH0!HDB MYQ#*NY(O40U)36P0*R'UL#KG")(86HOF3F^:$O+!H0F8G*19T([&2193,W7- MM&L?F FT!*]JQ]O\43ZY^AY9G0J#($TF7;>M:(C#P-WSN.]Y[.WY%\EWK%@C M_@B)6G'5JA9ZRR5D@_&L=>F.+44ISJ;SRC;"- M#M^RDEYUX97\3FI6O4)C8 M+T_3*)B&UF&649K.Q#;M1:9'8@OTD_JIC:E9HSLS^]N)Y=*:VN,;D2R:2'58 M962T3%XHS7JEF5?I9]#)=%'?HY(#HY T,#H5F],&;KKHSLK.+$%1&*03U;91 M'"["# A$&PJG>I@:&)3!5[[#*2.Q63P:V$#];^KPH^9[7S6LU$YLGA,;9 M-/LXS'"69C/5-AFP0_S8>0F-&)SA,21I==AE45SDW2@#?'3YF8$1#&_W)RZ;8VX"#V0C?K)U$_B80@?:0IQ:$AUF-)BK-\D M-^*'VY6HJJ+;77?G J(VDG7U%#!H81/\-@>WS M@#+O6**3X$T0!#B"E"#1GI4-7Z)H"8^0VC)I]L^-W@II+Y::%4#_!& M*]@;K&%TG,/A%?0CP_'_';T\FAK02?WH-',12BM/Q)+ ';)?)_$*DV6(PS9L M8;P,@\E92F\^BBFBIDUW^D+C)6SVCY^_4)O&TP3N-7D9IP'6U _KR_6Z,'4$ M)!=S!G-:0#IDNP*2C5.D3>>0T"">;A1==D&"YW:*=. X/<)Q"5QIY%,WL(AI M2#)*+Q$V@TG;@&?+*'H>UE>$W8;X*0["))B6U2[#+"9SAY-T=(KJQST4UDW5 M=-7_&FK_O'#N>ZE-[],L2:P]I>KG_%CG80, FQC)M^;[QAY8 M+Y3[Y-?&-T0XMHY^'6:$S$5WH#SU4[[CIG(D9Z=6!^)Q%J769'#8T3 *YI;C M@'GZ@YAOI_2KY<>.4W;'QMYEY]K8KT;?6,P'KC^8O"]J!<7=!AH&;Q+P(+MO M1MV-%KOVL\N=T%I4[>66,Y!M#.#WC8 :X'!CON3T7^XN_@-02P,$% @ M=H)A5/R--/$M P ,PL !@ !X;"]W;W)KT-B^^[\^Q_G^+H;+EYE2(A";Q&+9<\(E5K=FJ;T0Q)A6>H9M?$P\ MTV6H](39[Z[PDDR)>EE-!(S,(DI (Q)+RF,DR*)G#.S;H>UHA]3B%R4;67I' M6LJ<\U<]^!'T#$L3$49\I4-@>*S)D#"F(P''GSRH4>RI'O@Q&LS&(W0W>!@\#L=H>C\>SZ;H>H(%B55(%/4QDS?H M&WJ9CM#UU0V2(2Q)1&,T"WDB<1S(&KJJC+NF CZ]B^GG+'<9BW. 943\.G+M M&G(LQ][C/CS?W:JZFY"5(C5.D1HGC>=>GIHCT=TBNIM&;QR(/O!]GL1*PEGP M"5WC.2,UA!D<*QS[!,$!10%/YFJ1,*CUS'9?2K-=FNDN^LRN^^T.J%^7\[9K MT_'J?3GY!96>AR]SN8!O;^/O M,?/:S4/XG_>>[1S%GT$_*!/QOB7@%+2S0V-#%;C;T+MFG>8.LUGJ:'0[^1.+ M)8TE8F0!;E:]!1]5D75HV4#Q5=KDS+F"EBE]#:&K)4(;P/J"<_4QT'U3T2?W M_P%02P,$% @ =H)A5!N52->+!0 010 !@ !X;"]W;W)KKW1=(PO7EG!O[G&N?[[CX*5>,*?22)IF\Z*V4 M6I\-!G*Q8BF5IWS-,OCEF8N4*K@5RX%<"T:C?%":#(CC^(.4QEEO?)X_>Q#C M<[Y129RQ!X'D)DVI>+UB"=]=]'!O_^ Q7JZ4?C 8GZ_IDLV8^K9^$' WJ+)$ M<HQ&QA"V43D'A M:\LF+$ET)L#QJTS:J_Y3#SR\WF?_G),',G,JV80G/^)(K2YZ80]%[)EN$O7( M=U]826BH\RUX(O-/M"MCG1Y:;*3B:3D8$*1Q5GS3E[(0!P.PWS& E -(HUF3_!U.[U[FJ'[SVAR?_OP./TRO9O=?)^BK_>S&>JC;[-K]/'# M)R175#")X@P]K?A&TBR2)^C#T?WY0 % _3>#10GFJ@!#.L!@@FYYIE823;.( M1<<)!L"LHD?V]*Z(->,U6YPB%Y\@XA!L #1Y_W#' L>MJNWF^=R.?(]LR[(- MDV>67%Z5R\MS>6_D,I6Y&#G,1^J%O!UCC!T?*&P/R;?#PM#Q_"KJ"->PPC6T M ,>%K4#ME@AFT8;I!V'PY[2C7\X>>&698P0RM,&>@ MEW&V/$%+EC%!DQPNC4!88JD$U9)J0ARVL02^-VH@-D01/PC,B$<5XI$5\67* MA8I_TUSTX?W3Q:]-+%@$4J-HMHSG"4-42J:,,V+4@H3)<-C W0X*/&Q&C9U: M5QTK[A\B5JP?\5VF17%+DPW3\-<"'%BHU[SP#*ATSI(R_U$Y<>AVX#K0>VS% M=9,I!LJM<@!Y0*(_!UCJ/W3>JO >XKZX1 MIFMXQ0%N@FQ'$>(Z73.A]@]L-Y [:!(3**H1F=&#:Q&>(\Q_6[P-4F M@NTNJJ56T]V.X]DQ4(H2X/ MVF30RB?Q;Y!'721HT 0#,G"K.*);&B<4]+(/:Z@O*0AGQ.8*20;L8Q6SMUFV M/:F/O2;)=A#I8%B[%K;;UA-7X%7\K3EAQ-QVI7[H-JW+$'5D%,>X:^_"=O.: M'&'M7&RC5A_6AQ5.6FIEB'-'V G-,$GM5<3N55=4Q@LM_RCB24*%1.!118MO MK&F9+CP$XIP.F^)@"L.GN*,A(+6%$;N%7N MHKZ[?$O)HC[=0NL%"[;<0\'F6D(K$T%?EE,J'IMYM/W*#;#;XF$(\[QAUSRI M78W876U?^/^#B<'Z3$P,818FM?<1N_==9C1Y5?%"HC]O63IGXB_;9K-V+6)W MK??L[TAM3L1N3K8=7CGT4 M&KH>;CF,(&P8@+1WUJRV'V"U'=Y%+D3O+'S%+ M(O1(T_6[:EEK/@G_>RUK)29V);;6LJVK&+8WK5JVPUPGQ,T=V>#@,"9E8IF? M44FPK4VFBH.+ZFEU#G:9G_XTGE_ALTEQFE6G*0[7;JE8QIE$"7N&E,YI )A$ M<5Y5W"B^SH]\YEPIGN:7*T8C)G0 _/[,N=K?Z#^H3@W'_P!02P,$% @ M=H)A5.ID@H(0!@ LQP !@ !X;"]W;W)K$N+;VQ%" >/69JSX\&*\_6'T8A%*Y)A=D37 M)!?_N:-%AKDX+>Y';%T0')=!63I"EN6-,ISD@\FXO'993,9TP],D)Y<%8)LL MP\7WCR2EV^,!'#Q=N$KN5UQ>&$W&:WQ/EH3?K"\+<3:JL\1)1G*6T!P4Y.YX M< (_G*%0!I2(KPG9LKUC(*7<4OI-GIS'QP-+,B(IB;A,@<7' YF2-)69!(]_ MJJ2#^CMEX/[Q4_;34KP0!6 :Y*J2O JP(\)0#:'0%^%>"7Q=JM;EF:&>9X,B[H%A02+;+) M@[*^9;2H2)++5ESR0OPW$7%\,EU\62X^G\].KN"H)3O$ZX..]).NM/>BWN>K8IOE=,>Q+-^Q-=$2X>%R0&@Y.."^2VPW'MRD!G K-!.BI$H5.#6I3MFK+]/,K/H;E+Y>X1<-L4ISI""(&AKRC18<,0>J&2 M;6Z V6[@6VW8J0$&G4!!G>DH&'K0]YF+'B8K('>&,=0?& 2U,YH/9ZQ+36CMX2MM5!UJW)NB]#UD30U==3:097 MD^"YEJ_TPID9%9B5>K52[Z>4RF=W1/.\,@G;A*\ R=8I_4Y(A5AOBF@E!C]8 MBSOC4)4\C3P,;#-UOZ;NOPIUTQCQ=;J>>CN=^7IA]T$M44$M*OAUHAY)$26L MQ-*UO,X.E2'0="''4V3U8UJJPEI5^)*J3!4*=9:N5J%0JU +U-("K<8E6;UJ MOA+&I0\1!,4ZBQ$;<3&T=X(V><(/5J'*W[J5(>R@M6?>8"^MRZJIF23>Q) MYSIS_%@>K&@:EV:CW$XHBP?Z(+?RXVO"NY$WT@HB*"-@%O4\J,33*'^J >.I;M*>;MU("#R'55 M489L=@BMCG$(F\D/^T?_,ZRIK+;AIM;GL^T%KM) ,P,L=-VN_FG&..R?XQWV MM(.JI_6Z,@2F4!_8CN5#7[7:AE3#T$-0=:B&?$/?0[96?0,.(:WZ.@K9CFMU M/7,:2P%?QU,Q_<> G4[R5>P!DAW5W T%8'685RNU!M/8T)0?TFY#][ M(Z1["2?HV,ZAO=\;_B\O<<@;(=TPB,=RAY[&+J!^N_"ZW@B9?E\(/76#BG2C MT8:UQ39& _4;C2M2/YW4N^10,QE< G*5[??,@-H'M5DW1@+U&XENUL8EUG\E MD+[25I=8=P]M6)ML8Q]0OWWX&?N)#'MZ%-I0I7P(UJ;(. M$72"0#$@)EQ@JY[:F W9J*O7FQ&.^D?X<^PG-+:Z/I]MWX%:KYO&N&5U-5 S MH5'_A.[RGV:N^KY<]9\&B(-LRPM5/3IN""W'MU0#:@*&OH^@6G]C0L]1&\#P MTP(,W4"U.J.]MS'R==X%+NX3X4A2&PO=V]R:W-H965T&ULK511;]HP$/XK5M2'5IIP M$NBZ52$2$*JBE<((;-JC20YBU;&9[9#NW\]V0L:DP=->8M_YON^[NYP=U4*^ MJ0) H_>2<37T"JT/CQBKK("2J)XX #G-82F/A MCB6G)7!%!4<2=D-O%#R.!S;>!7RC4*NS/;*5;(5XL\8L'WJ^30@89-HR$+,< M80*,62*3QL^6T^LD+?!\?V)_B7J9VCK MN;=\F6#*?5'=Q#Z8X*Q26I0MV&104MZLY+WMPQD@#"X PA80NKP;(9=E0C2) M(REJ)&VT8;,;5ZI#F^0HMS\EU=*<4H/3\63QFBY>9LEH/4U0NC;+?/JZ3M'B MR5B+R9?GQ4LR7:5H^G4S6_] MTLB@>L"-,T(4W?H!E&.YI0QTV(586U2LL0X M:^7'C7QX03X(T5P8/H6F/(?\;P)L:ND*"D\%C<.KC ED/=0//J#0#_U-FJ#; MF[LKM/VN3WU'V_\O?;HB..@$!TYP<$%PIE1%> 8H$TK_L[,-_K/#V[MWC/U> M$.'CN2@^FXP2Y-[-OS*<%=?-D'3>[HJ-FLGZ$][\H58K S4+_W<.\A MV&PO=V]R:W-H965T&ULG5I= M;^.V$OTK@M&'%EBO15*2[442()OLH@5V-T&2WCXS$AWSKBRZ).TD_?4E*5FT MQ0_;?4EL>4B=&0[GS QY\V)HWZ M9<'X"DOUE;],Q)H37)E!JWH"T[28K#!M1E<7YMD]O[I@&UG3AMSS1&Q6*\S? M/Y.:O5Z.P&CWX(&^+*5^,+FZ6.,7\DCDG^M[KKY-^EDJNB*-H*Q).%E15[GQ.MRC-C/_67/ZK+4:H1D9J44D^!U;\MN2%UK6=2./[N M)AWU[]0#]S_O9O]JE%?*/&-!;EC]%ZWD\G(T&R456>!-+1_8Z^^D4RC7\Y6L M%N9O\MK)IJ.DW C)5MU@A6!%F_8_?NL,L3< %($!L!L AP.RP #4#4!&T1:9 M4>L62WQUP=EKPK6TFDU_,+8QHY4VM-'+^"BY^I6J'I.[K\G-]>/OR==O=W\])N/DS\?;Y-=??DM^26B3/"W91N"F M$A<3J3#HF29E][[/[?M@X'T )M]9(Y[+ >WZH+5XSX5V"=F1N1NI]O+T:0Y#-9A>3[;YA/&)9B@K4 MBQT RWM@>=0 U]7_E=NJG2Y%(IG:ZB5K2EJ3I.D0ZZ?Z9L2Y4C),_O M9YNJZ!$545/=$A7A2HK;N-%4"5XQ+ND_YH'/?NUTQ9YA"@B&UO,(36'NM]VT M1SJ-(GV4K/PYUF&I2DJV4K%:M*C)F_Y,?&"G#@X YP@,T/JDLM!2SWJXLRC< MZST[)FRAENWO#>4*.VTD;E[HLUIU+ 217B^=.9 00MD MRL$LJSPPY[WL.=G MP2Z94+Y:XC65N*;_*/S*0]FS5"2HW'=+F@U1,HWDRBV]FLP]KC!4Q)7)L[E? M#Y#:X)U&-?FFMY-2HJ)BS02NC7>_;\7>^I+:Z5'DI=M>74 M1I/O1IBH%5OKS>H-Y:F[1&"&!IIYI/(T#:BVQTO@R*9=$*Y]2>(WXB<:X/H& MFCKH7"D(TG0:P 7A'MA08_+3H>H7*%Q*'@ 2SW@"/BZ+-E&!WH57PG=8K7AO2;)7&WS^2P=&L45 MFX$4!*QB^0CD49#WG*PQK78QM#4%T\NG$BSE8HV,!*EN[H/5!*@8(G>EQAD* M1%=@>0O$B>NN7\2:*$Y(N,Y)QVPQWHA88 4N-8$,# .23PK,0Y@M@X$XA9E] MD32L&9]@7)>5Q@"YUG7%8%J$@J+RD.JDH\6)WR2N#V3 ;\4A!,)T%HBZT' ?C M1=>PZJ3-EH@S2BEH.0G&.>F>LY*0JGO/"LL--[-KEQ1+E5B/)>$[ *8*]%K+ M0SY3E98-4P*?7!',+J%E*1AGJ?L-+Y=8G W;1UC%+"\!9!;UH)Q MUCI ?GHJ#ST9'.Q=@TL6C">*$Y)UI\B9>KB, M-4:S8;7KDYJ'JEUD>0W%>>U^3X7GC5"_JE!LBEY!-3M_,'T-75'J[;BKAGUJ M( _AH30?1CJ?&)SELX#_(TMZ*$YZ?:C;"%.N>P.&%[A+<>.L*(9TXA,#>:HX M,X#Z=!>(R].7H>1CKP17M+6785NTRAFT&ONMY++4"JU M'@8)CQ3,IZ&UM32&XC0VP+U:U^R=D YTO^O6-?;VOI#+4"!%^1"Z1ZH(0K= MUE?%Y:$L"%G*1''*?"#K_:"M\OF5RN3->GC1NIRG882BE^4\=(3S#OR""K%1 M&X<,$?4QK!=HVV.ZA/9UUY'+=(J@IX&T'%F>0W&>\R9COW;AZC?OMO<:TT-H M>0X=?W;%BFPZ#VEA>0_%>>_+8D'*UDG?2M.=250VJ6S:=6I8TW&%XCWS0?OR M%M>A! 1YB W,ABSND0(HT$?)+/MEY MM(=4=C+T-H_8?%J$LJS,81.]3Y4!E+OUF\ MF?G0'1Q1VZ<_0SU%%SK)?,:UB6'F@#1^[K9W\!;GUYMS-FSF*?A\1G3%4(J" M1K2$FL4)]>'H/KS)7-9#P0HKLZ27Q4GOB4E*Y8S ,M86;3 MJ <^;M;K-LM0FE14E#43&T[Z!%]GH2H0MGIF%=J=): MQ1M3+!%.6673(J^U/&=E,^<\Q",%IZ'CD,P2718G.HM:8\2KMK-*F[+>5&V% MH=58*>Y0%MPE;NR\]E#FZU8Z1RL>*9C"0-V16_;+T__J#(V*4UK]$UTAMQ25 MQRGJWEL6=X;^X[5\OG REZIT,T!2V!YG,"N MJZT.UVW^O]\@6- WK4-[E"4Y;D37M#6Y[+H[X=G]SLYH*.0N?04[!;DEK_P_ M-SX3S*G0O[370\PQL_YZXN%.]^+]6QN@&"9-N:>RG 7:^KDEOCQ.?,';"?M' MYU@D@BWDJR[3*K(E-6N=UE01/O[)W6LHP,GN)GLWG%:$OYB+7R(Q_MY>%>J? M]I?+KLV5JL'SS^#337M%S$[3WEC[CKG*\(1:L(6:,OTX58AX>PFL_2+9VMRC M>F92LI7YN"2X(EP+J-\7C,G=%_V"_BK>U;]02P,$% @ =H)A5/'5W[]9 M(@ 1FX !@ !X;"]W;W)K.S$P3(U*;L<88"_KLSEZ:N M<2( XY\RYS._)+X8?];9WQ+N@,N\<.:RK?]NJW[UX[-7S[+*+(JA[F_;^[\: MP>VM:-_LWL9>_(L*P?7MVMY&2!8VX;_+[X('9[RPIF\<$9P\T($Y9NB M+W[ZH6OOLPY'PVSX@5"EMP$XV^"FS/H.?K7P7O_33=N;[#2;9&^N9I>WUQ\^ M7K^_R=Z_S5Y_FEW?7,UFV<7-FVSVZ=V[B]M_X//9]<\WUV^O+R]N/F87EY?O M/]U\O+[Y.?OP_I?KR^NKV0_/>P *IWY>"@"O&8"S P"RJJ4R5 M3O G/&-*:?9^6F>G9V?_Q:I9]?)]=PC.8^ /#@!M@"..^I4A$,Y.OK]LUYNBV=*WT^^SMM,?X$5Y>)QG MFZZ]LY5Q^*$:RMYE15-ESG1WMH2G\(M=-J;*^C8SZTU[;[K,-$N P'0\M *) MS%QI3=-;AZ^770O0(2#.K&W9-C@MK&[*UFU=;]8X%SQN0&?E\*&NZ<.Z:$!! MYC0G?*RW_S(\=S$'/2N Y)GYYV WH##YC6$!&F_H;+/D%WOC>IS>KA$O0U!L MK:DK^O6?0U';?HM4A!]LE^(,-J KD)A%G9G%PB)*Y7::?80Y(EJ>?O-](%;N M*<7K.]V/S#9E/50&1VXZ:WHP!O#KHK\O.D!RL]HZ6\)"MND-$0! H[&F P"/ M@%S7'XXSL$O7&_!W,$0Q 9,_:;H_-P'\$&DT4- %KJW_2I;F@98!B!'!,T&22&8 M D/"I$ "NZD-O8LH?&HLCIGUM/"1B..GZ6R:_7QQ\4&%$OP 8'*@N,@$[24P M];KX#&3P@).@.' T-LQQ_:KH@5X+8 5:#7!J.X)I[8D/XXVP>VV+N05Q(![ M\95U9=TB\^!(P!6QP*7'7\H*7@990/=UE'"T!P?@Z0PPY"#(F"_@A3E4.B31 MT4M$3M/9MIIFLVC3 S&8PNX ",J+LAS\7[8P"]*-<=>)JFQP9C'4@.B=(0B] M3!*$JGR8P(L!%RDSD")BEO4?6)-&NVF'>XVHJ'WFV M*$ MW17U8)+]*HDAJOT]P/4,@I+-U2Z $,Q%4&!"T(0P)<$,\RW;MKJW(#HT M4=LL)XAHY>''E5D,"#ZS,!TNVQ=? HI-PN4XK@:= SPPK^U2EP6?KOP\05>R M0H!P8WE>V>1<* B_&9I^ *)T/3C8C%=3!0X$10R">\$Z$L0"?%'$<@"M7EG@ M]RY;="U8E57K=N5C76SE#201/N\LJW>#:K]M8G7DM;M8 L!.5\.Y F=M6D>\ MP[9A6;>@;\ U^/7ZS>3TVPRFJM#P@?IU1/X2^0K7\1:&)]P,70EC<)W*E-;1 M#R1Z" Z2 9S]&O:K,H"^5YXJ+=PE2#H[%K76?L[?^ M%=NXOAL8#]KF#3CG()1D\D"0$;28I=BO"S,S-_/4'4Z-Y (G$4TC1,>V)E>L M+-R*!1X_( O!7C._NA4H_VP"**T!&-#(O3!RI(0<;HN!=T /)\Y:AN$Z;J$C MGCFX##MNN-+>0FSF[Q%U0(&@K]#O74$8K(BI4[E(R&;[01R.&** -X3L-<,U M[G<3*54- +-=.%ODV=6 UHA&W@"\J^QB;=#M(SB%)5.GV\('V,2M*A"(&\UZ M#MREL2,HA?M6@G!RZ9FJR,[P^HL7?]GQV;P4+\G-']D$-O@/3'KVS<%)^[8G M<1"O@$8#D(>@/WD8^@<6>ACZMC%^TMTYSP_.N0OV"3@KQF0>Q2@C5"A8=F<-FBCI6!QGL!3A6NI[ @&W$[\EID#?>%S_L\3!BO0W0Y\#F= M:._'_:/[E07%=P_:E'V+MHDP\CLQQS#0*\U<]"JHQZ+Z#3 )^KLQ!407*/6D M;8&TG4G\RLJ NU(A<3B[AMH:79@.@T.@\@SU,,_*&L,OM:N)'S45H)951=&' MJU@3SH)^NMY5A+?P%;0 SDLOQML0=!8&3*BW0/G4%J:N]A5= ;:@LQ#<8QQ9 M],QGP '?GH#3L65[BQXFZ97==X';<,^15 ^]*U&#^#X8FB*Q1G7RWAJ[P*%N M7':FX! 1H-?%YD//J]%3E.8M;32M-:[J4^XM:W QP!."!43@R!U#(# KC!H< M1!BF '!0:8!6_VQZ==R!.XL[D&_\:0*,/'$%2N1LW,9H<++_2KRV^B#H$%GT MV/LH: E10\Y (HF'!D"MR5M9LB"2S^\HPC(&PX8>4SH=IB9 'AHD*DS0& H5 MP"G/HY@-7B>+!,3D4 )D))*QLQABROXV,7))'5V"$2ZUGP^]"I2NCQ"R"VXPU01(M9FWI+GJ^Y=X<< M$(-4%B33RQ4(/$,2+OFHMPJDFKBO2 5*>I7I,E;%DU0##*6/:4[HSHF9!@*)Z$K MC6<(<_][;3^;VJX@!F9WUFK@TA@F$GIEXD2)E06/K27%41!)8$U:<5.(O!WT MJVA1=E$.;*DXPX:RAH9]8PHAP?^/$3JPC-EZWKQ.URJ%S;@0'[9TP.* M,[ U&LNF#?:(71^O&P"]/4V!REKDP$A86J(@1^S:AC_M!&&2QR(EDI"D]SR*H@VG%8$F7R MFI.88#:P;CF^$2>H1-C-$C>#DVLY9E%_HTQ@&[LGN=>%I'0X@4RKP;@-A) J M.W\%A3TORL\R'X?^/&P,<$I0<5*$-)\%U=K9+UB4:#O4 _BN)CSU5\UW[F[T MBUSIZFL=ER&G]<@N<[6 7(QBJVDOC\T%8P/D7\ K( P27:@#?1OB@(N1V,"; M:LE@*V5]CQ)>5 F ;Q+.%=GIV62- MA4.?_?SD%QH#+U'ZI"@Q +1WMAK84X? ''ABCFG]A^?*$U8?'4"Q&OS^U>GI M])67$$3DJV^F9^'!H_JQ,\B46+BNMX]@Z*F(8=)3*!FEDMU0EJ#G\>L.67UR MIQ-\672;MIFDXLM:U>,]/4_1/IN>_&&T=QR#?V]@=M$\%EDA[VC()I$NV)4Y M$3V)T\2S&C8'U"D2RCD5/)(%W2;9%4[8:17NLL, M3JJ/H.%U*O ZBS*LJ]-/1T4="UX=U@"0-[B;@PSD'%L\LB-2X.W@8#O=\7>^ MZOO_Y?\WF#D@1GO^Z%BU4R"9CPV]7!7=$HBHW_\.3HR9M(N%>\ILKPU$?^2 M[LX'.ZV/+LB#"2_#;OOMU6=7K)VC(1]8#URQ_RZ>'1V>G#<[XZB48'0V[]7AF>ZO<6!J5-*X@W'*))Z\D.V37-HT M^Q#7WZY\_>W#@;(<"FM/WD;1L].LT5UE(!@#QE)]@LX/N!FM=TV-$+L#L$R'4;BVA[!Y%=(*#T!@ !* >]= M<#T=%@:C! IJ(E'B2J!^NPX%T@NVG]>[)5-?$J",@E0Y>U.N&NQ/@.!1JH+! M>>EPNS"GI_E9KDK!-"N[P4BQ TV/$:2O_H/#UA1KI9MM)H!\:2@&XSWDR1=&JI3Q)VX_.8+>E9L9Z,85(0#LR4!3]P"2<.8D1JZ.$YQH3-:*?63 ML,"*:(5ZK3-+7YY/?QE B@YX6874< KTQ4*YGLF Y$5]%74BX%2AD*!4V\W0 MC"^%GF*#SGB4L#X^!N@]S# M9#5(CUUH,8'TMH\.*(4#@&DY-"WT.MA0D,F?K.E&J^"YH,:9A,) M:YK61[S*E^0$\P83#DG-7&)WE4X$(\X4CV3^[K5Z$96ZT6VNT_0"<> 7U*%Y MAFU9468@#.!:7J PF1^W+\!>1&L>@()45)AJ=%1'OF.E@0EQ5 T+[K8[J+OK MU!"6,&N3=6V[GNYI/4+0<1\,6[(4%K$U$E*N 4]?TQ\="9[L!)2P:K*CV_>? MCO.]H4G_3N@['/L]CV/0-&+,1Q/026>/ M-\NRXWX_(R1GX6HF_,UG_H4703PEVF; =JJVJE,=*U4PX61UB1DM8('ZA'%' ME'1%U"?8,TA&[?WCW)0_QBM2PK#2GN'3&4DE9,-]G$%I\322*@M^A3Q'S$1P MZ7/:U8DBNA[6V+JEJ094%.(2^EERWXFE+[<;'RJ8+SWERMB51&_)1.N3"69- MRKE]B">VWB44+8R2B<58(GCE%339+EV)=.P<%E86HYLPW4! M;&<;B5 M1[W@"_18+J5>=ZL]0;P'<#-<"FE$9/*!I.$'MR,#JG;K3'IWN#\NC]S M(-'"4A%JF&L\3];1X4,D[LS[B:??81 M!G&NE3P0D::LVZ&:5 8WLMMZ:)-:7B!?O[)=-0'OH0_G.9 5 +TM_(^TYQWC M<#05B#T)\(UK*#UR=@3/UTA#$P4CCC(VM*6_@:D->SHVHP=)VPJIIAD\Y5@M M7"F&MX=\:4^#45X%7\0AF]7I3L2=:0)%,BF=413W-D1B>UP3N*4=>C2]J7QZ M[E3]F&6X?(.$YU)+.N<==2HW282"8 >WHB#M"/_E0*G7)HJ*"R$$0^LY;<5_82EC@D=_X'T84KT MP2#F]?3F3>&V^3^_+S,:\9I&7,8CDO!&<]6$\Z$Y@YV.@G=.^^X9V)W69CE9 M=7CNQ(8O(0CH)^2.[F?$L.F^?8_ M]O=AOX/7MW\0.2F/$TYJW23G;Y3G) S+;! :'##1++%5KBQF-M:/JI;O%$<@B<&@JY)->L M0>N('H1],X$M%1)#:%MA>J$ ;6A)\3!^@#=X)*#4\$H M0.P%/(SQ2!ZYYEA[D/-7!G>,G&G98S\JO)IP.T*\ EW7\FG):-23MDPE<=U2 MC:H,7"EAJ!O(L_?V.5 LA?\I%-_!B-Z+<8GP""W)DOIF,3.<.?6V>^YN"G[4 MHX-VCPSMX<_@-:S=2C[P%[I8X\,]<]/?&RG*X%MSBH(/GN?D;8Q/ J.3H)TL MY-L\#GW,:9ZZM*AI"@]_7=R[[QDMR5LL-!O"%.560!E)1[R8,:2'!]@.5,2F M(.;[U9\^C,X,B#.+,5#%>4:J (RA@ T?C6:@N9@P>CS IS*PZ66LRL"Y=VGX MY%,A4I<6W&!1;0@#1IMF-RVW;O;$H G(:(&+#M,01#Q,,]+0^)ASKD:$TF&2 MN_)O<5C,#=L$&,@Z8$4E'FE?5-$=23YX09!D!7NK<8OT3II(OB)Z!.C"5-Y5 MI-HZ[B(PL['+L+/CR^.O"XO>+:"X:N^Q9S??M6C%@-U%\ZVX.)KBYHT=P))W MPM38Q]&A7:AWFHJC7'XLV#;M5D+Y5W6,>$J..K0'"_$!)#)4>9QAX8W5-&(U M2&Z2-RJT5/7TZDR%CD<]@L%GWKO!5+FD MK,J.* "@'L1#-06Q\'7^0@X&R. M8M6^X!-#JO#%03@R7]2OB4>EAIC/(M)4D8AT1DOQQV!Z;$W0/A6KX*HI%I,_ M@<6F'C@R"N>X@N:O$#3-Z#@;Z*JNMZPX^81CM.A1 +17CX*)P_'9 M<4XUQPWQ24GL!1]X^L@ ^1(FFI:)0B1DH_@V'$!+UD_RC"%GFPZB0]>( *D4 M+2?@.\D^YOR[>NB8"(38(8]N54#5K7/)W%ILTC#'7_! $5LX["W#AZ82;W0O MBZVI.(;)MW%@68)L5?48+9+C,/ZL,S)4U *RY7E@1& \,;ZD' NN*?/).D)\ M(&*$I D>3?!'C,0""#(419*)N23'I=R"GUDTK@Z1_T*R80B]CCG@3JJY2NX6 ML0$U?BD M*L#)C'%>&\.\:?;S[K$J/FA.8HV[HF3QR/>!Q.YI9Z+V0?ZCR\H5+:.\]SM- MPAN@^1UGL\)I]NOH-'N<.&)^Y%-)6#5@EJKE=AHG!]TY%Q^5O;0A9NT;Z6RS MCUFR09@:(8.*Z0^)Y7?*U B"G(_:FPL>8$K M\*YR!V6P(*O;QE[.>6413U@ M D4BPL97JPR6*?F(".@'OL?HH:AC[S SEK#WI@TH4+8.!(U K/;W>PRH_;DL,OWHP?[0!*1P MS<'[,G>L5KAC_AZ/Z&^]?]D97#$'*ZQC6:U&]R.0"HA@Q6!!>L=(^4N74'3O MD2:+GH",AES1H1\D_LI42Q/G=]'X]KZ'3:$F4'V,O)<[,PG+NGWQ8)#O8?!^5.,G$<^"S7-Q$=#G@JM-!@, MH6'@$,,"K08P[C4%H-A[0T=3\/:MD=-/;J>EA\MB8YV7!YHW)=#KW0Z&U'H4X89]>2CM3X-J.1ZZ+&.F4UZ44-NKJ93T',Y^9VKE!BLFO+:1'# MOY_QB&.5T+E&A_RCLS=Z/\/(]5QN]':JG:NZP)&E8WBTYW*HG)P-[D/9H?,# M5UXA3%1^\8'D[AZ)(;!8Y874@;32BE2\(C'.+!8Y$+[&UG M6^Z9P-L_=@;RK6&H9?_8%]-7,.(JA<7OF;VL&0_A,:L>_*YQ*FR&<>DHE^ M9=RAGO)BTF]=;_<:M-\$;SE.E;*_[HL5OK^1NVC#91(A-1(UPE?DV._FIJB, M$QUXT5;9IUWN%EWI %.AIFCE1A*RA3A;4%6?]%P>7L0$H7K4)#:&)%\EY0ML MNZ=RO#J,+/@T^P7 XXO>'G-G;9+%T%I/61=6ZA)<8*;S&'0RTQ^IM2ZTD&/. M#ZTU"'G'L79HC-NI '=Z_8X///RQY3I +=%I"'[UU@-_Y-'?&( _@-Y--, V M4IIR.+:KR#^CC0H1QT5PJF:83J%ZWNL6S?_1VXO9:W_3HYP^][<%O')TK>LFG$ ].SG]EG?G:0#J67N ,ZIYNF%\+6 \ MLNSZVL7LDW_KIIW2ZI/3LSRMY!Q];#>VS+YY<0).TXQZ^!9;%/'?\1/L1^XI/:M3_-[*_# M\+=<4G(NKIC$>@97T!X;/EX4U9YV2$;^, APQY?C4 J#Z8]?V1\NR%9[[^WI M^S$W)3@"DLBS=Z%D&&(L/0$JNF%A.]?'YV+H3"8=FP)R^P2.''A/E(7(3;]" M):5<#&_^K0![ =K&WX]&SB^VR%9D"GY?N^OC%P3Z=!.S2[B%E<17H9'+SE!Z M02"](,X^B72=G4Q.3O/X;JC)%5VR TK%IV)%W,[/3H]'A[X+]^'\K06FRGZ% M7PD2_^;Y<2Y]9"'8P^]_A2@2]T4&OCI]>3RY)#;Q(:&*_7.C5/Z.>+^Y2\O$:BR#UY7?1)32 ;Q",'%?/R2BIU]/3H&WQQ.21.O3[_4BSE_8??%B M]_7Q=_%5-]&5G3(2?;'1B8\0 %G\>*_%+?8)HVXT-1DAZDNN@&"VU=7$C5W1 M+>OQU=-TL2TZ!3X_X/NWHP[W/'1K)T_I-&&4&""_KZ58.=Q"NRGPF/,=QY/: MX1#?&\5(:>@6-U'3=TP3041+NYUNE(;#3E*KUJGUYK_+MY.3%?V@5;RWR0Z8IL2IG+\?GWP7WP+ GR"LX MJMW2]-0>Y8_9W6).89'O;TVRZNG)^**3@XL=1#JVQTP .86ISU^"2)*]&M";?F^YY(]0[Q%MR4;E-:TQ3<@^ 2H\N9F9[O M%NO59Y6BCOQU"*K\A-MHU*KWB)U/G?G;F/86O_#M(=B0LKN%Y&Z[J#*-MJ** M&^'(>D8UGAFSM>E\J!SR0-BVNBY(D:C^#<8AX.C4IUL,D"-CGZ]-?/N$:^9/>8S!<+_%13/;9U9%M1LM/OG,JJV M)"87,^4;41N]8:NM4X]SU(;NR43$ND01\EZH43,-B8B#)'.J:B7.(B I]CCU MJNCJ;> WS'2@"]5SWY@*O=(;T[#'0"#&.RAMG5XV;GTW)R9D)#LOH8:Z>HM84\4O M^^HD[\Z(.(J_#K ?]B-M_Z=\XW^?:RP#^-(NKE:+/"/?,Y-ZE+7X2+5OK8\< MGAL!6Q4T>6#,/^%6C_V-J.?1W_9:&[";EW0].H'$?^;+/\WTCZ1=\-\&"\/Y M+ZR] [.+W0>U6<"K)]-O7C[CX]3Z!;0[_:4P\"7[=DT?\=29Z7 _+YHVUZ_ MX +^3\?]]#]02P,$% @ =H)A5)%Q8-M-% UD4 !@ !X;"]W;W)K M4K6>_6S+K< MF4SE(T2"$F*28 "RU9U?O^^%@Y34[=B33.WNA\222 +O^;P7V,^WUGWR&ZV' MXKIM.O_B:#,,_7UU!U=JZUHUP%>W/O&]TZJBA]KFY/ST]-%) MJTQW]/(Y_?;!O7QNQZ$QG?[@"C^VK7(WKW5CMR^.SH["#Q_->C/@#R<".5E9^PF_ MO*]>')TB0;K1Y8 K*/CG2K_138,+ 1F_RII'<4M\,/\<5O^>> =>5LKK-[;Y MIZF&S8NC)T=%I6LU-L-'N_T/+?P\Q/5*VWCZ?['E>\\>'Q7EZ ?;RL- 06LZ M_E==BQRR!YZ<'GC@7!XX)[IY(Z+RK1K4R^?.;@N'=\-J^(%8I:>!.-.A4BX' M!U<-/#>\_+L=='%>'!/?\9(!5\=I)*2N\YA7.#ZQP=E[\S7;# MQA?ONDI7TP5.@)Q(TWF@Z?7YK2N^U>6RN#A;%.>GYV>WK'<1>;R@]2X.K+>7 MM=3=@1PZ,TX.97^ENU$7M;%L, M6UMX.[I2^^^*5YUJ;@93IGM45Q7ONT&OG1IT5?QL=%,5'U7;ASN6DRV<+NVZ M,[]ENQCTBM*Z2G6E!L,;-L7WKRY?%Z\NWQ0_VMZ4Q:/31XOB8T[4&]"U U_R M?/\;,E'M_(R=03NPUFPOV9Y<<=@X.ZXW\"\L:AL !M.MBQHD4/A!]\#M7__R M]-'CI\^*]Y7N!E.;4M&#MJ9G2J%A45@7O_@%4Z3$;;2[8Y5>.P(UY-VN&K.F MJQZEDF\25WDK3$T6@5LZKQAA>F=@J7#[*^"KO./>P7X1)1\S6<+:0<3;C>Y( M) ID<6A-Y4#(\-G7!HPF5QJ:PMB!8FM<(NV*RQ9F*#8*GNY[9Z]40\97VK8U M R#TP*:QLB#^7KG!:" *7>(B3X*G"\1"494HBL@5=W0(BC>W:L3"2 -N*UV MI0$J_+CR [*X$((:1'NU,HT9;G!;>-##8H[U8#S(W:[4J@'?F!ER"S!N^N:P M,G)1 75H\J8#!4;[ TK54)0*]NG*9JQT<:6G0;Z !(<86!;? MY][R>5RS^*.%L$EK?\"<9^Z)YJT5,+!_\0*#,AAOHS P8VP%_8P>H0!70<56 MJK$=?(2@C3_S+O?^^IGSRXO/]"GLV?WEQD\!K3:!4Q8GG&V$GR=P \L MCFD),%'#3=T:4"CH::(=DG=.G*V'+6KD'FN+C R7,LU-\>Z:\A?PW+/'#Y[- M_IG@ZKX5C4^H70'MD(E52"H(#IP2R'?$@Y!).VO7ZV$$UP B!\B>CC%EJ9;% MAWCA'FQQC)>*54Z+WUPW$T M5S_VO77#C'U[)6).9@TXQ<;KX0>$N&,,\VS!BV*E2S4"&UM-CHJ :4AM]\S] MN =:U#T#/XR=[W5)6)F]QA<\I,B<",8LQ>C:9]LDW GD"2-[D,,9Z1'$C#4S3;BY^(BAFZ3\%= M=N?89$E0">(CH-\6J*<@'YR@N?E"+$>+%%W_&0@. V:')Q9C7<;U\QF+Y6Z MS%$%J>=@B&9$XL MT,^ 9LA6&CM6;.3)MB6Z%C8*GI6=DAL Q"9+5RLDSMB* MY$#&!X*%4G:"7)"$7!&+ &CJ$YD9!6E+*4SO0''$IE&3/; MY^(6J(FF.UE5>%CIM>DZB1=X4Q7T'H0!6]?&^0$*2LA6$K;DOO6Y9L\* W[( M''3U_\?4O\;,WW[_OO W4/2TG&2\^2E^O<=9).[P!@(UD AJ_8V)";*]SSEG M98O.#C'MS'?&2-T-5%NR<\#34;>8/IT]?E;<4.D(1!N@K=V%XY3/4)XI$98\ MC+?"#..?@&\D:Z>G&>OO3"V#^8,;%/\%*O_Y GE0H]6.$<(V@95C,+=S-1270A;[::N5' M%Z4-%]8.P!6D!*!:^7SGG?B,F84&HVLC*-U%M0D+7G.*/ZY^T:S:%DT"ZS')K*VAO[2.6+RB L> :4L1:@Q2[ MM9*XRZS_"Z%%RB3*\-%4DD&"$'Y0IO,;-$%G;U2#[0+ N)N>#7EWGTC[5J'4 M_<;TDBT I0,L%@+U1H-JF$%VY[QM1 3%#8_QXW_38&$.RM_8A!8%I>FA8S+A=(X:HU+1B#04.73"4A04+LE8R!/18D1 M>1A>Q/IW6B&0DXVQ^P@Y7*8J'*)D)L,M2*]GN?CP?QQJ,93,L>B&Y*JH3 "Q MO/_Y8Y9P8+(?F2"W#7FPM @-B!T]4 2T#W^A?-;4P,0V#?H20!@8=#U(DI_P M.23P B*ZJ[#O$&Q:[<+C#@PG7)N$A<0S-V'0@A!YQEYJB#G-$?"!7UP>#*YD MY,79&)=47(6A[)F,!G9N('';%3#SP[ %^X*W(B!B<0/V0"UB-EGQ90H9Z-M9 M.9=A7U<=[H7.)R,(2HD>JM1(5U)2!@(GPMH)=E&[!S1)U1'O98;0W?>JC8HT MG<0.KFUIM;(EQ0X&3PDNZ:3Y-FR7%2''6QI=U"U6(VK4#_ M@N]K2UK)NZ#X!6];:X!VU6\P>,&&ZUWQ9M4U5RL9)[!=&D;%.(T(O(;L%;=A MDV4\1@]M+ <6@@]$57BJTA [AV)CMQF@+0K58D6Y$+ZX#3-V8IX\'\AG::7R MFZ+&)A47I'4-.W '$936V1:B=@T"M&[*8/2%SQNY2,LL-<=LWC^#&$O-6=XA M=:<'PA6G>PBCE):IB1RG@R#L>49=RH_?$4B>7CS[ZG]_UA"R:-9;O-6E;E? M"$YKPW6I@^7A3?%A]RWHN+=/7B,5S]T0Y@7&>GI_"9 M_Q\N8]+KN E!YD>L[O1=,#&YQEBE 4T>/OR6U/WPR;=DZK1V?#(TEFZ02;W+ M)#&'CR.#6%AA0H=VB)V*2X!F"BMG%XLX&:6[?XA> B3S40J*,WLC5O8)GY4X M*]F<1,9*\E$ MY=XV#.UC'XW*#ZB$H+7VB D M)>=-4 S"I4UI5J^O!W*.>J[<3,!DK<93,!&-3D$!^[<4,2@I#K>B1\&"8T.Y M!I10#K-FLLE*AR]P):Q5)1BDEBN1R,DZUL=Q78:ANF%AF2[ZDN2>[2@%#\3Q M9RI2DN597>(# 1R,.!." #?'A4V>WW?Y(?##7L9!,I_D\ M2+PU* 3<(:0[822_2./?.% 0N\'B+(.2U*B%:S6/ K)$%%Q)EYN.$J0PD$K7 MR!WXF 10D4\#PQ 0Z]?(PC(>0\']PA1X_Z#Z5?@,OJ(HW&9>W@[P0+"<(E4.2Z0U9!/ MXH ":WRD\-9NZ_LNQ1T4K^,Q%NS S$.L&+!5M4(I\R!6QKTY0975_$ 8=$[F MW"18J%KR44PNZ6%?\NSC2(TCD4EI!.L0O3T8=JO<)XW0UE5&8:5"+XH-=M64VU.B@H[>:+8;3('!@3S7-&;( M*]!J=!RCU_!L5_PZ*H>E,T* 4$G99>V0U@ZV\![S#?2O"ECF])#CC0 .;T53 M.I%LECIQ>4&P)ELU 6_ED C"IER:-:G*THVBTM GB,E[2" FH2-Q2?E/M6D$FG'JR(:9E$< K9IE-*JVRO-"[ *:%:8 Y(304/40+1#"+A0@+<[KDT M--Q%$=24NF33VTU7 1..Z^#Y4O.&!7CFB"D JU1W5\;9C@R@@1U:$AN@_E$&9$ZHU( N:M?8"=. M=K<&_'F59>?"5RK@PG(4:D:-43%K4.XQ*[8^G*R%DVK%:]4P,.4.*TCFR1ER M9.=$.3_(-SL>N0J(2[:4H5,ZLA)C":8)UY+@U#R0S0[6Q9%""E,_[C04;BV7 M*2Y7IJ:S'7&YZ0([1B('!V,'7WQ/9.^FIR25H HBWR(7B_+839^>>6R,'"*< M@F/9P,T8G<5U,6Y+@R\_9CB3U13X1: AWQ">%"MID=8V/RY^1-^Y?1:JB^A$#HD/!PD),C;.C<=F"*G"V3MU9: M3"30>,\L060[=DIS,CDUE2YBGQ5L9+BUA3&G'33PS>GR0=$"O^&,RC<7R\?A MAVG38\'G=3DZ$NR!8FA.A=54S$G9!B+KO),)+>7.V\94I#6!N.(2WVB8-Q)A M5A0$J^"T6^,HZB Y]IG%C!G$%)$VJ(&V"JU.B9B 13[*G4?9A6A@/' M@R'%(JK$).#*@GF1!%1U):"VM[V2*SZU'?88(MU=@EM 6J6XSD.?WZ6.7#"% MH'1BE#GE T(E6C1]W>KF2A^W^-)&2-DFAI@9Z=S^4M_7Z5;&JQBFY'1UOD1G MN^.#R[!B\UO"*B"T'://S8LM*7\R\P'<%Q8X;.[%%N[XYGQNWF?+\_WFG<8D MF5CS'J'_C"8AJT?Y"1\\QM@G700:/'\L<033-;*D=' QW+T*^8!X?G;BJ^8R MAY,(TA(KFO@_>[1\.A/ Z2$'WX\?TD,,HX: D0=?=)@<,9V9SX'"-/?@$!IG M9^VW6)Y!R1Q[ZYB[X$L&Y)WYA6UX=R&V@;\Y>_QT^3#PO"Q^H)J!N.I[2(LH MHDY.U<[32Y;!-')AH&11P*?83P(65G-_CSV3<(2OT]<#O?+#9@7IK0XFAKZ2 MLDTNRW:L4FSJ\XQ2CC\?$'V2V[V)1./O]P7HK^CUAC"U(R''UM+>0*)2'PHO MGAVR.6YE!7#-SRR%N)\5$*E_=; Y.V\3STH02;U!%7[TV7H[92\FX])KM"MJ MJ], N:D1?+/L:9(TJMX,4$'])EDC"8!:TDWJ7-ZZVBQQSSM.W)&0*H<.,$LI ME!_%K+6F4QO\'@^;I0_5/=L?'Y_S&')?M0@9EH;6B(>U)_/)K!F(77#!2\1X*(%X I3O>8#Q0,O7)"38T"+5T=G+P]G) M9T:;T^6C*=B>+I\,Y$0]OP11PY"VE)GG*V%CON8O=2$5CHQGZB2Y"X ^ )UA$-;I,V32@ MJ.'>FD'4#(.J,&9P4\^)-0A?9B]+;<9(27C?,=W*Y<5 =:'N-J0_((=?%YV5 M4=,$C$6P!QOC-!>$BED43,$U)2 M#-: ;9%<%#%?H*9LTT0+RH] 25-KXMDQM1(XY>* 5HXJHCY&4(;T?]_LP!KU M_=E^.80@]?2>4X"Q.#J8U89!"ZGFMQG*<>G"; :X3MFSRH[]T;"-)3;-G].9 M-V\9+'TZ?<.X$0/,?&RQS^+C5!8KG-+TI( 8- ^^3DR-,1'6G90O9HV=V&!( M@V+J'IB==W;SYD2:5%)^2A.QK@H"GV>]T^:KOE+-2$+'CEDT%&9 7-RX^*9H ML.C8$'H[?4*2\"\,.>G"OP"X*6:VF+HXA)Z[4\J$U36=#_)LF?F(JS8=*(5.PD5'B#@?W\V!*EQ^2N^TI2D_CB4K.G:5 MO[PTQQ<"/WEYFLG"N>GL(9F;QX=V"Q,;L*>F,1H,Z3J M1:(0C5WRPQ^4RE8,B=%0XKCR;GGI:Q.GSYFAT;PG)O&A'Q1F,W'G&3-7P9;$]_N6-E!] =?=QH!6+%&^!Z;>T0ON &\4^YO/P?4$L#!!0 M ( ':"851N*GUMX 4 &$. 9 >&PO=V]R:W-H965TFZ%Q ]MKL8^T1$M<)5(CJ3CN MK]]SE.27MLD";,.^6!;%.S[WW'-WTOG*V,\NE=+38YYI=]%*O2_>=+LN2F4N M7,<44N/)TMA<>-S:I.L**T41[6[NWEN2E]IK2\M^3* M/!=V?24SL[IH]5O-PE0EJ>>%[N5Y(1(YD_ZWXM[BKKOQ$JM<:J>,)BN7%ZU1 M_\W5$>\/&SXJN7([_XDC61CSF6]NXXM6CP')3$:>/0A<'N2US#)V!!A_UCY; MFR/9&P-!KG1U%8\U#R\Q&-0&@X"[.BB@O!%>7)Y;LR++N^&-_X10 M@S7 *;&&PCQN"3ZTIDY24=[1*39:M#\U*P[4K%T[%"CVJO6,ZRJ55D6C3K8:P M?D+AA<[R( $5G41:1@5,*> IM!M'/_[P>C#HG6UG)J],S&M%,1J557DE']Z6-4O0A&C4[86V#EZ)Y MM%CO #=+$L"38'L"AOA^V![V3MJG@R-RJ;!PBC6F(3)Y#F;0=:+/P>O6*K'& M.2JLB:2,@\'!R7%G@)Z49:&]ZACIL#+#YIAF[ &X$I)E.'0?T/_29 MML!))*W'(*&96?H5@-%[%6$ R.!]VOB6]@'+;NNX37%X(@*N.P$6:'#*#A)7;UB^E EK3 MQM-"2M242C1G5^S4ZUH*\!!RAVDE\P42UDRL+<-U$F]W@IXCM9709N5 M!5J;_TYY;,[;"E]]J7H@&[K:D'L 4IS8$ \J/2XC[^J$/2&&4+5LQ MV"$ZD(U*AW!Y9D21*3$Q&)Y4#V*1R:_A(4W?8$& +S#,>4>5@8->9[A%^ZU' M4';33,*&L3W[D\[K_6B/.Z?;A:"UIQE[GHXH"$9'LIIW:!RHC+K[$&-!E*7F M>804\439S-GZ8,Z<-S!'F=0)GN\,IJK)X14DQ.$ZWWMA[.Z\]L,N"1\W M/,1!>/4%L%G=?#^-JL^&[?;JXPLS,U&:@2QAVNN\.FZ1K3YHJAMOBO 1@1X. M7.%OBF] :7D#GB\-7D?K&SY@\U5Y^1=02P,$% @ =H)A5"?G"V>)"0 MR!< !D !X;"]W;W)K&ULM5C;;ALY$OT50FL, M'$#1W;$<.P9D9S)C8.(8L6<7^TAU4Q(G[&:'9%O6?/V>*O9-BIQ]V7VQQ6ZR M+J>J3A7[:FO=-[]1*HB7S.3^0V\30O%^./3)1F72#VRAG/!EEDFWNU'&;C_TQKWZP5>] MW@1Z,+R^*N1:/:KP9_'@L!HV4E*=J=QKFPNG5A]ZB_'[FQGMYPW_U&KK.[\% M>;*T]ALM[M(/O1$9I(Q* DF0^/>L;I4Q) AF?*]D]AJ5=+#[NY;^B7V'+TOI MU:TU_])IV'SHS7LB52M9FO#5;G]7E3]G)"^QQO-?L8U[IZ.>2$H?;%8=A@69 MSN-_^5+AT#DP?^W I#HP8;NC(K;RHPSR^LK9K7"T&]+H![O*IV&=-7Y/UW/_?$SAJQ,Q8[^U_A^'-QL\%10>)++@"(RI;*B8C)2)R&C1*__&,^ MF8PN%\GW4GO-"8]\4/QX?/FF+VC3K]0"MCE5"JD,?P":99\$W8E;E%P MP>D7<9U:I8;Q\D@H7"9A]\G[7HC.Q5XGLI#;8, MQ-.&WF=+G4L&L8O)<2=(3&%D((+TJ-ZPZ6)-4(W/+U$/+\QDV"[-+NC$-X=$ M8;>*HK'< 8=D@U001DF7 XJ^T![>!$751)Y5(-S=PG[OD0AF%SUAGG,V)\DM MFHA#)!'E/!]_"0XO1&:=8KG&Z+7* ,I <;$8G3D^EX\*Y9YFA8"$XB_:;)YS><4934>$-!0!?R M ;:1?LH7Q*T3T&@,"6(IA=QQ.I&,L 'NLE-,VXU.H,AX3BY3IHH5U&<@5:8$ M%J+TNS7I4J*>%IDM\T"!$JGVB(.G(%,?[+.WJY*C6B,OY+/4)H)*]E0^5(DT M$(O Z\,2WR_MC4*$6/O)M ->)>L \BYS'%A=ESB%W:,4_&I7>4C^QH G1NHL M5K&&)UE.^$H'XP WH">M2]0A!@G/L5(N8$Q [F!^\!##)>8)#.=D'K2JY*(B M:M3K"^8J7WF\KY<*._@J HWF2@Q3_BU@LT:G#,.--)(J^)&&@ &( M4ZR0;:!BZIC[V=&X+H&7]. 'SMY".6W33GRK=(]\&1T^1!)Y@0P;UQD6X?ZY MT!1N$ZEL)!A7YD2^Q$4V/TJ8>SX^(E=476FTTZD-\2D$_4%( M?-FTRGI^B%:^5JDDN^L3AY&#!6=CM3LPMRZ0MRVA;""$V%5W6G.KJVVY'$4J M]V/T0MP'>D7E*'C3;4 ZY[,NY1AS>_FT>+P1B\=;\60+G8CYZ*PO;NJSM^U9 M9ELH MMM$ FGF"5][*8QR3JC -)P+^$]YO28O:]8ME2<3^M<_TWG0]4]J"RX M2RJ!JF NA],2;YZE*5ER34>'5!8A4R\)J<*>AJ[0>3T-%55/?E:.S[=2:3<1 M.,TAB"CKL-FX'X6*HZF1%%E&H="HP%N9=\4XJ4T;@-M&RB M.8K-<-/U&S!04:>*!RV>T"C#Y0N%K["@N(CC"GEC#CL0>K5-9-2*W"J,"BUC MKBRY0;.9"W&@C(P&F''GJG*STY-H#JQZ11WB@Z2&4HR;VA 3&G8)9QH6D,?Z MM5PBW6(CDI$0V6N3/?)>M+F+4T?0R!L$"\"WIB[=PE&Y,SAB=-ARO3 S'R*O? MJ6ABZ_KWWA;-=1_5>W'*$;:E!ZSH\E3Q12#\P:]_1_W1\S?O&_/_7_\77:V= MA]00'B+\I_]&3_%OQ&(/GH<:F@>"IC5T$7.O7G[:(ZE#$CJ-8P(/R-70=W+6 MOQB-WC0"3L2\/[F8'PCZ@<]: SZJ9PR9!66E2C:Y-7:]:UZ.)_VSV5C,,2>\ M17XRU7[]16;%Y<=FS[3_;GHF[H<+<5M='F*]4$_A<;\1UK]X=R[&(W%OP=NM\-A=3\>0D2%EFU=P3:(DT_-;9-YJ3P-_JM&Y4C?OSZ8B->K)! MFA]8O(5K>M&_F)R+/SKEV,0FMF%JZSM9]XEZ FQ&LE;4N#^;G0/0JLH=D,U+ MU0)U?B:^%-R7$$##5TYS1.UX.FF%'%)%O6DVO:A<.]:'6YLF_>G%M-KY*IUV MX3COGTUG>S1PK#$S9=7PH-QB'@T=X=_O+[/! 4*!@:YOB'2M(2Y;T@_X.FN&10Q A_,, M9Q<[M51QD,2F9[ NF$_0]]6T--!0B27NK$(>R6S]PVS,QM+M@I"ENVY5%7O:#NY.S5>G(UM) M7-UEZSFHOM/H>N1_[1I3(Q [],FH_] -CGT)'':^KG+^TC=DB@+LBQ]:FZ?-9^I%_#K;;H_?N#]+M]:Y M!U.L<'0T.#_K"1>_&\=%L 5_JUW: -[EGQL%CG2T >]7UH9Z00J:C_?7_P%0 M2P,$% @ =H)A5%&ULK59M;^,V#/XKA%<,5\!-;"=NDEX:H*^X M/>M<4^W(?$$D4^>DB*E*9KI9],B6CAI1+2G :EM:N3?M]D M)5;,]-0*):T42E?,TE0O^V:ED>7>J!+])(J.^Q7C,IA-O6RN9U-56\$ESC68 MNJJ8WIRC4.O3( YV@GN^+*T3]&?3%5OB ]IOJ[FF6;]%R7F%TG E06-Q&IS% M)^=#I^\5_N*X-ITQ.$\62CVYR4U^&D2.$ K,K$-@]'G&"Q3" 1&-[UO,H-W2 M&7;'._1K[SOYLF &+Y3XF^>V/ W& >18L%K8>[7^@EM_4H>7*6'\/ZP;W4$2 M0%8;JZJM,3&HN&R^[&4;AX[!.'K'(-D:))YWLY%G>;":5CG9V=F=L@@I','\_H_YU?WC/W!V=PE7?WZ[F=]>W3U.^Y8V M<:K]; MXW@ F[P#&"=PJ:4L#5S+'_#5 G]BU%),=Q?/D0\1+S'HPB$-(HB3^ M &_0NCSP>(-W\/Z/IZ^ ARWPT ,/?UTL/P9,>^] P5Q366J[ 29SP.\U7U&A M6,@458NQH KXQ"784M6&-,SA"?S^VSB)!I]_V9>R@M4"M<_,3N@RY/XBN%#5 MJK:TO">W4SJ . XGR?"U(!VG\* *NV8:VY4T',:3[BR-X;K6DMM:8P@%?W$# M\T,46C9A&AV_FHW@*U()ETKDP*N55L_H+$RK=!PFHZ0[2U/XRA9*,ZMT$VUE MRS?=&H23<=R9.:Z/2,EX@]B05O?;),=A%+N026-U[;O5$9='1&])SNW))4D8 MI^-.L(GL^*?$C([#4;P''Z5A.G!^&W-"/3"KJUHPBSFU+NKB&6=-$X^0S,&*1D,+OM?!1GPRWIV))D[F#0 ;>:+VK+Y1*L@C/)Q,;RS- % M\8RR1BBTJAPFF(VQ6)D>/);>[NW8+IA@,D,R;Z)"F%U=5TD_$[3.=5(^2*)> M1%U9B%T,#^)Q;[*7&&_?K11?(4[35\D'2S?2"T+R'7TU,;F!M78M)E=KZ<7/ M3)#'M 4G4JNW6\)B P>#7M)RZCCJK JNC3U:HD3-=@[CT0)911ITMP#=^]T( M;*,*:RH"I!:3,:TW+AF>BZ&K:0-2T;:4B5J(#>V7495IMA!$G-C2OH)E3VX? M>@4\T;,CIV>&.W[T*VI7SR 1OV*#14R&V##;7>[FB]U;K[G2N1C)?^ MXC>4VUK:YG9LI>W;XJRY4O?JS&ULS5A9;]LX$/XKA#,'%5SDG1*'GC.7RI#=7JG@_&,AD3C(L^[P@.:Q,NDQ+Q6C.;D72)99AL7+&6%\<=)S>LN)!SJ;*STQ M.#TN\(R,B?JKN!3#C_ MJ@?7Z4G/U@811A*E)6#X/)%SPI@6!&9\JV7V5BHU8_O_4OJ?QG?P98(E.>?L M,TW5_*07]U!*IKADZH$O/I+:GT#+2SB3YA=8R+5=9X<\;^6Z M9^1Y6^3]B,<=!?Y*@6\4^+\^MKL%A_T](M'CG*!SGA4X?T$)?!E1)$4*9G'R MK:22FI+@4W0.%:8$?48T-\LO! M$](XAB#?))D0L8V[WT0.9PEAQ9%SS$8 " MPFEJI&$&,BJ4J J68:.3&[DSSM,%90SA/ 4ZA?,9G3 P1TJBI!8"M%/!,Z"F MLFUE'XVDMO2U.8X1I>VRC(8$"_%"\QG"&2]S97A66A=$$'3@^'T'BH@Q@P? M?> $_7@Y8X'-LB &)MA+W\1PRAG EI:JL#:WPB[ZGP%XH-"$SFN?:7XB> M<6))?H"Y<<.NB58EH( P"M4$$%YVLE- MG/X#Z&=6#YVW#;,5!LZ:BI8'$/1-MON6XWK;G=$JKE8IVJA>8 E9D7"A=W)! M(3>K,LG6C=>K"$.U"9U&/$]U% 5)RRHS:L:/G*43G'Q%(Y.E)A<:(BB6' [B M5)>9T,6#GQ&C>$(9!(7(/AH34M>>A*[))'27M MU('K]-UN+;A^/VQF]M9V7D' XVZ729*I3:_]U7?S?W_6@;%NQUW@A M;X2BWW&GY*X$ASS8I_8.4NOG.9;?^RK=E\/S)>RN#$R2,BLK\-]*]'-F,80T,:K 6 4 M2>8Y9WSV @W!$1JN2#W/"KV@!;&1Y09V"\I#RXN;=<\&P7:+W+>&<=0B#RS; M\="CP+!M.",&2)0>P8G\52*WZ[QC!<.XD18[;B,JBL-M=)$=-G3QT$7WD)*0 M--%KZ7''5BOT.Y[MHK1;E'!W CS/=8M&5'WPS00Q!XM$S8$5^RT;O;:-@>]N MIG+]EB.N#PA]5 B>Z /CX0W.B@\7Z-W.LWK7N+NU=X/1JY5'KJ ?W):^D$20 M"W'MYZ;$YGF M"2M38LY^!G0 $D"P(8*5C%:ON^RG3<"B#Q*-(3L5NL5Y.84>L13:B#%GI:G: MJN,Q6 2](Y4)!,V@?M46M'1WUAU4%KJET/T:I(YI>I\P90;(= M:RJI]79A+ M*;#C)R+@CHUP&P_KQL4T\7LP<7FHZ]8AA)99MU=;C_B]K?.&_K]M%WDNX-9/ MEBW3.02*,YJ:$(\5?*KJT+<7J!M!YOJ-X(F@&WVD_:Z]PYA:B=Z4&?LSZ>0V>++JO'O[''=>,"NNAU'_3#6DPU:_T/7X_ZF)YA!ZZD+&J"9>="3<)6 %>O M7JO9U9OAJ'HJ:\BK!\=;,)L"!C,R!5:['P4])*I'O&J@>&$>SB9<0;=E_LX) M]!M"$\#ZE,--K!YH!:N7U--_ 5!+ P04 " !V@F%4,Q0"2:$$ #8"P M&0 'AL+W=ORYPKSH9#FV20&Y%# M("%QA,#Q\0A7("4!H1O_UIB]UB0I=M\;]#]\[!C+BENXTO*K2%UVWIOW6 IK M7DIWK[=_0AW/A/ 2+:W_9]MJ;SCML:2T3N>U,GJ0"U4]^5.=AX["?'1$(:H5 M(N]W9N UQ[/'&1_!>B^P *&Z!8@\4_WBNW@:8!;4J^PC820R><+;P MN>66)3HOC+"0,KUF+@.VUA(G1J@-.Q$*);JT7*6V?\9^^V4>C<:__[3G/\!- M53V&N8=\!<;GO_E.=:"_$?M4@.&.?)(' 30[W[%P,)^.#M?1G#UDVKA3!R:O M%3$2]LB-X"L)S[!.PGZK/X^B]GT23]C?VG%YU'8TF,ZC@_5X-F[7A.O3;G'$ M7(8N,*&$$PCH'<.T8R_G52]K@U:L9=P 4]HA_23:4(*T\L6YTLIJ*5+N4';) M)5<)8)0XA7;@@ZLVY057.Z^\4>(_M'SH.G(J;;1U"BRAQP9!YA=QAY(DL*1YLNYRL(J$S MXG 'RL>29-QLP ;LH2P*"4C#E/E5':GG&XLHU:E0$;3TR7"Z"8:Z&G]5']N? MW[;-\SL]^]43,WK&,8=XSJ"G%.B^B7WU2VQ_PW3;W_>?/C=QT/CM<$1L_X7I M23![(9L&E M$6Y''?P6&M8"=QQDB[(T\$V^+]0/TTU#(V3]P,I%[D.F 42#T3-VF)!P/Z;A M()Z\)U'<$8UFOIB3KF@^(]&T*YJ,231K!A![>HW%?>%H.)C&[VLN69>8/*"3 M5>1EPTX%WU'#VXZG\T$8Q\@?%AOY!J<$9PHCBO8M<1(.PFC>9W?5M"&[R1(H MX6];>-YW+\MV,NYW_)@-1N&T8[3/+HZ5E3C ^2"/P;<\8-F[, C11RF?S3*R MI"[\@.,"GI >L)F[@^,R[A@R%";;:H5TM&,)&,>%UU@1+8%)_,$6^(1=<9F4 M%7YIR2?TP;0$HXVI#CW1)+F=%.!)5ED.?%)N&M\IT*0TAM)>X$%#WGYG%O S M1CQO(SXR&\%KMX9AY[:5 [(DW2GI ,K;2]MEY4M[7]]NK.>XLD*Q0= M"VM4'06S28^9ZAY9+9PN_-UMI1W>!/UKAE=O,+0!OZ\UWDGJ!1EH+_/+_P%0 M2P,$% @ =H)A5/?+'-90!P E1( !D !X;"]W;W)K&ULK5C;K&)N/ MTVDH5E3I,'$-U3A9.%_IB$N_G(;&DRY%J++3V='1S]-*FWIT<2;W'OS%F6NC M-34]>!7:JM)^>T76;S7$6^,;TX:_22'BG^UCQX7$U[+:6IJ [& MU?SQZAT_+P_\R] F#'XK]F3NW!]\<5N>CXX8$%DJ(FO0^+>F:[*6 M%0'&GUGGJ#?)@L/?G?;/XCM\F>M U\[^VY1Q=3XZ':F2%KJU\:O;_$+9GY]8 M7^%LD+]JDYX]^3!211NBJ[(P$%2F3O_U4X[#0.#TZ V!61:8">YD2%#>Z*@O MSKS;*,]/0QO_$%=%&N!,S4EYC!ZG!G+QXMY%4J?J1W7]Y>[N]MO=I_MOC^KR M_@;7]]]N[__YZ?[Z]M/CV33"%DM,BZSW*NF=O:'W>*;N7!U707VJ2RKW%4P! MLDS0YJO*%BHDZ.QVIV-#L^H.^D]_Q$])V\H>\O.+RG_UVO_YWH?_=_ MC^Q!OZ MCA2B>B12 OM$@>XJKDB5)J *A8)Z#E++S6M7-;K>_OUOI[/C]_\(JG!592*H M&H-JD>XD&GJ3S9LF)^I+0WC,U$OU*X%=07VE!2MP"+ ^>6T1CXEO@(1V!21[D5 MW"+B,8)?UBKXPGT2+6X>(B2-:#3%(E7H;<-^BE7+$2K)H:7[+IPP&T,NV8%^'KFD; +]S'HX5 MY"/:]<"=A7<5?#*^_)%SM56%U:8*HA<@+??05ELV #R175IX("#V ;W9I@PB M3)R+%I%_@>@7 V,^N39&8@).11 A2'*06K:: TX N=)K4K6+:DY4JV"6*7-U MW'?.<,7IN256@H(R:-0D*- D3=56JD$922:4@4@1&=H+:Z@EAKMH8XM<@E9H MZN*^2^6)S$S40^N+%9>5FUNS?*6(<*B:UQZ2G'=A#VW36"-ASQ6]DUFHI7,E M:J]&88#:I@ XKA./,$&6GT8AF1H#%$%L?1*:MP%=(@#CI:!&KZ1J#AIU_7*, M\$2$ '3APBPY6Z\CA27UP^GD X:-M;@USL'\'H MT/0K:?HOR,9R7Q:X8K?9N1OC45,.5T",&(.F7 GSK6B[06$(JS(MX:IO7$J$ MPM%XR'D)NZD+VV+0,&.8P-(>3,HJ!SXA2759#[5QV5B#R=K5#< $5\.F-7IN M;';:2#D,'"A[!SB+<)LBYZ34%7:9='..+0F18AJ#04MV+]^1"C1>+0S8842N MC4Q-/; "N=[(6#E(<+5H<:N05@D]"Z_;DA]-Y]R%%JU%\D+A:J8>IT+ILC2Q M3^;5%B$,&44?Q=SW4FN+^Q3S]&=K?&)JUTFVAV)":Y!VLZ)ZUWAR(6Q<:\N$ M=F-0?//4T#WQ*2(Q%DT'[&N>'>BC](3%E*.0F_,;2%)MM#X3"%&I\T(HI(37 M!1'S 8\N0<\@SE>2P%3IN-R" %N&NFNCY>0%]7<\'82I\ULO/5$:D6+X &1@ MY$8A'.UJ.8\=Z-^CPOF/R3&ZR(>%\5C]> @7U).:ZYLWV5PD>0U)2UCJV6XMZVGO70IJ MY]EP@F-'2FO3+K_;?C-"U_H519_C\EG6/KQCRP:&_^/G<<(B^SL2S^=KP'1@ M6UX-V1<,M;04]BUTX,_W;"M[:VI1^#9/3NL"$VFP']H=:ADK>K#7\=,,%D#F M7%Z[$2(G",A;T7AM-?]\^7C5];+\YO#F4D5/!361R:* = +_>119N&6)A)^E.]?$,QSD]/-1BAL2^Z56=^B6/PNX(S56 MK[W$3@>?"K#Z+^6#"',3ZM)7@_YN_\WE,GUJV#V>/MC<:;\$T8%_ =&CR?N? M1LJGCR#I(KI&/CS,7<1[AOQ<$4\J?@#G"X<4Y@LVT'^)NO@O4$L#!!0 ( M ':"8516IP&PO=V]R:W-H965T2-FF3 'T-M]NZ9LF]&_91L1E;J"UYDIRT_WZ4 M[+C.^M@&[$MBR>3AX2%%>;:7ZE'GB :>RD+HN9<;4YT'@4YR+)GV986"WFRE M*IFAIQ,/4MRRNC KN?^,;3YCBY?(0KM?V#>V\=2#I-9&EJTS,2BY M:/[94ZM#SV$2ON,0MPZQX]T$9VM8;;7[_>??EC%AB*8.V"I$6[:M#B=]"B M&.ZE,+F&6Y%B>@P0$+6.7WS@=Q5_B'B#B0_#: !Q&$80ZZE!'#G7T/ZGX(9H]A^>Z8@G./3IH&M4.O<74/P+_]IM)')U=M#'@3NN: MB01!;N%:EB7U^]K(Y!$>!/Q8%\\P#)V$]&MRM"85$\_ R0U3& Z&X>E@&H] MYXPB6I2D0=$690#, (.J5DE.)P JQ9M0)]'4/PLG8ZA0-;X#H$$!+,L49HQ$ MR934FAQD@I@ZX)/3L1]3*Q>%/96$:9D;,)(BK#&I%3><*"P/P2X)"FD,&#H9 M)H?+=$?FJ VDA)\VV<73)CO_18A$:J-I;!3.BM!-SBT1OK.TJH+D=: =U11. M0C\Z$".U$<'5=3CX3[P:!;:U(J$5#0C#>*']MAPK[$1<*IDI5MH*W3-*8?)& M@=HJ:WH339I:4$J].C00WUD7:QN'%\ZRQ79;T<7W!$D%W#/27_&,"U:09BR5 ME**TQ]N'3U.B;'*@KZQ&D<(F&<34X'81@>VB9G*6P018]C MZEJ'IN\.%0WY?NO$_FCXJG&H4H85/;.I/^F:I::AHIP^_2S]ILD%PN@C":\D M4ZF%O*'L$B.5[B1@(.CZ^)?RQN%K>67?K:[LQDD\]L...85]BU/_D,%&4AO1 MRAK:2Y?&O'I$JUX*7!Q:EU07F$G#F[Y63&CF+C@](*NDJ%,N,L)0LLYR6-4% M0A1NQI\BV_/62.Y:#04^T;';2WA&IJA#;ZC%G2NZ'4 [PH$&,)8;!R-__&8?O)3#A[="[&TM4F?L"L,K7PC379+?;?61<-G?KBWGSA7+/%!T>#05NR37TS\8>J.;6 M;Q9&5NZFI4K2O>T><_I00F4-Z/U6TCQI%S9 ]^FU^ M02P,$% @ =H)A M5!KO=/,]#@ IR\ !D !X;"]W;W)K&ULO5I9 M<]LX$OXK**]GRZZ2:1XZ)T=5#F)D4U7;GR\ORW@C,EYZ:BMR M>+-21<8K>"S6E^6V$#RA15EZ&?K^]#+C,C]Y^9S&KHN7SU5=I3(7UP4KZRSC MQ>-KD:K[%R?!B1VXD>M-A0.7+Y]O^5K.2B(SD9=2Y:P0JQK%* M2_J?W>NY473"XKJL5&86 P>9S/5?_F#TT%HP]_9ABX'M[ M:+%/.0/%B&PI"J><$:LV@KU1V9;GCVS#$WI>J11\3^9K!N84?[E *TY8#+/ MN3@YQS;E>?DSN\JVJ7H4@MWB1'9=%_$&)K-K?,W>Y^P_=?H(._G=G?[YCWD8 MS)Z5FOY&I8DH2B9S64F>P@*^W1;J3FANEN)K+?(* MR4 P (MB/$\@'I05K^!!YD 1='X&L\T$S1LR%?K/Z&6'/KT(GIVS2C'Q4,$2 MFE^)(F-J1;]1'?"C4/5ZPS[P1Q;,2,%P&K_"#H41I$]YQ$0JUW*9"B:,@"6+ M@50,#E'(90WF46]QW\#_R>PEB\Y)C!C( 5$%[(!DPXUZ>U3JGA=)J1FUKX!8 MN>&@%?QU_?8=$LW@8.E$&*\89]M"QC1Q/K&;,[ +D,8\K#@P Z'Y"^2".Y[6 M M?ABZ58RSQ' S(SU6HE"GS>PA^5,*4U@JJT&K2,Z1D>^[Q38PP-0^*AKI#& M/1STX\5*U<5%AC&DOU$)T1%&<0(KY8.9]+EE\V 6,B/#<9*SJPL%$3Q !DW(^>_?"_I/NN<0RG#.QG'[4_!"]T NI&R6/?=[C: M.8CAP(U"G8'*'V&#\GRP-/#"R>'!SL-O*H6PD,KJ<;!H//=\ MG_TT&(_&2."GP?.-++]81_=:AFYQVVT08",UP M6.#4J 6,X-9Q+ZQ.FBAK8_OIPIM$1!M^ 10#)6CJ7>(>>T698@^":*)HG1TY1PN,ZW(!J^XBP7:YLT>:;J MO$*^OG7;?ER@?%,>+P@P @P):\U =PFFU2P ]%*T#L 9IO"F.$]O,?'5&82]:!RL&AS"H!9R-Y[T ! (\]K*/BL(D+/H+[WP%:. M]F@2+"#:CZ!H4EHPQ;G!7\*9$,=V;63Q)4@/HHA\-Z[$!T=O^?@T&V#)-;&. M" CJ5G@M4>^P,#^$3H,.*.T!S,!BOA;$R0"/

&:!RJL;!TSL?(J<)4(X_5R#.@&UHL53R>!0Y2X-=% FXFD+>T>0$8"-2A7P M,P +*'MB#KD&P)M*& M!6$$9+2E2<#..@?N![TJ9(.Q':./Q+ (X.$76LJ#%5=BV"/GM/'2;M%0-^<%-:S./6Q5 MJ&Q(@#QM"=DL$^P. IP);T86RA@FP5%EU=MM1Y5DC>;OYF1_)@V]H)]*868G M'%%J=;8!ATDQK=,#Z0613L@%XU;NL%C)'6B>P MQO\43L/#3:#BW79/! MH1V&G @'\3]P$8@SD(/S! ,-MZT.7E$[BP*/M4B<"$5'AP<0P$EZ1,G>J=3; M?00$!]0ZUJ93E^+;"G:;"^ @5;%5&&Y*_ =G91J$(ZJR. \G M J2N"YLN>H5$1Z)]NW5":4\BNPXMF-!/6ZZ63+B@D *A%RK*"(VIS"&.1)H$ MH[DPN$F;FC6N-IC1G/0.P9UAPTB]16M8&B__C/FF!MS[*$4*^]8PRK0A$+ $ M>T%"*]L\^Q,*^KMZ,=_4':%&R-$-D'W]@+$W?K+M@>N:%L38]Q;^D8V-[DK? MF_I/-B_^;'/"5=QXAOTD>J@]T=_D%"JRV;!9]%'U$ ?%S1T;'&I4&$BQZRH MK+GQ6@-'=.ZF3-X))>0SSCA;2D!'DV6G@@:W!<8+CIJ[P'L.) 5S7%!!/-!J M]8Y:Z**!);LX1L_)2TJPG;; ;N>AJPX=0VU)8EZX9@K-T#D^356L-5&:#FI) MUHUPN 0BY?GW[Y@^Y7V-U[VAU@78&:1]D=>@@L9XPM%DVNYK1:/Q9,QN (/P M D$M*""!5:G:9AC&[<3):!(T1C<>S:%2NA4 0/*U.Q$-8!*H#22>*%76K163 MJ/44^HLC3JYA,PA'BRCH#HQ;@GRV ?L /=ORK@A?\2686(.H9(:F#;$W==,A M D-Q %D!A/HOX'=42,>:H%;97-@2!VN2=IJ( 05PV+&7+AQHBF/L:MDK#FI+ MF5P#-I5*OM2!SHZ9ZRC3"\/&C&&=BBN@5M1]L77C0G.[A"-:007O:3XUT*LU M1+?UFE7/1D(:_5KSHM(X5=]P[3VMF&]EQ5-R9T.B/52J576/<:]M5KJYUI8 M,Q]H[%&[X-=:TL01RP7\A^+F,FVZ+ZYM>NI[H4/"-F?J4N/I9FRO]9EH 6 M('/]70,2)=!B9N*YVOC:8&@-*F79"@8__K[D4PL>?S(L_MU[NGSWW0B\,HGS MSQ+LK[\1^ 4*ZL3-< V#009UA9D=N;)5O1UX8]I2-=B('7N/=[AY*>/AD?2. MX9IZ RYBX<6R0S:4'NU3-Y,0=+@EZ'#VAT9/O0FMLQ^YMJHV=Y_-6@ *PB: MG+%[_I<)5V<'[O[H^H @AX,PYRPXVFC2VP_8^ \ MF\PZLP)O.FE1TQ7H6>#W2/D-J0/R!VP\F787+B8#^?>AS_YX6[9@.D2Q M0P';O-N_P<1K,>;$' ]G3MM$.Z(.8UL8=H0-O=F<15[K1O(4<^]\SGYK=UF: MZPT$6[OI1CVZ$Z ;3+IT)[[5$&;8772"A=^E,_99Z$5MIJ/1=-Y85[?W*YVO M:=/D6W;?UU';0ZJ&U35;JO8EI7:%'@S188XW=W*\S7*:J& MHFX#;J2;$E@-R]9=@>F/V-L!;%YP[(MVAYNY)S4R;\ #QP= ZV MJ9%BWN#MK9;'/KY%;WN'.>!@9KIVF2[T#OO1 0H00'E MF^!T-I]V,T.$GRR\ MIO-%9Z\)[G6 EYDW)5XN#C$S;^5-RXP[KR,<*9RTFM!'>E+;:79;[W=TFK"Y M_K[9N1=+%,M5I2.FN9:$?6SK!5O7$E&]LGT CXW]X.S+.;NE.Z=2MY??YW!< MBT7W1A3O;)>I+#?(FEU6\8>+1*Q$@>FV-#2VYOX7% MQ>L?7>GBY2GU?8@Z7 MFWO#:?N+/;>PHW2\-$<1Z;O"6)A[:+Q/KK$Y"44,9JRXD$OJDV6RLIT*P_+6 M?KG0'H"T42KJ1W,HMZIXL"IJ)('S21@D:ABD9 -2*_H8 ML2U5X/\PL>QAM5DO]4Q[>4O%HP12@LJSXO$9W@?0'=SNU4WZI=L.=^&.!:=H M75"8#;Q=W_A>MCZ>SD2QID_$L?$-Y;?^CMJ-NJ_07^F/KYOI^A/V#[Q80VIF MJ5C!4A^PTXDV=?M0J2U]BKU45:4R^KD1P'F!$^#]2JG*/N &[MO\E_\'4$L# M!!0 ( ':"853G4/RY) T "$H 9 >&PO=V]R:W-H965T'J]Y3*[>/;$K'U0SY[D M99'*3'Q03)?;+5>'%R+-]T\O_(MZX:-<;PI:N'[V9,?7XE84GW7CSW'[V(Z'WSPB]2[+5SS4B299Y_H9O7R=.+,3$D4A$71('C MSU=Q(]*4"(&-WRN:%\V1M-&]KJG_;&2'+$NNQ4V>_BJ38O/T8G[!$K'B95I\ MS/?_%)4\$Z(7YZDV_[.]?3<(+UA9+A\R0O^[(G*]TS1VZ!&%T94LQO,R8R,"^3Z[8J_? MW;Q_^XI]>O[O5[=/K@O0IC>NXXK."TLG.$/'#]C;/"LVFKW*$I%T"5R#J8:S MH.;L17 OQ9:"5(H@SK$=BE4HQ+&LX0NQAY+LZ@>[G.CH^Y]$=1YXS+\2CL/V#$?OK;/!B'C_^TO_^!VBP,NUJK MGQOMD>9.=@Y>9U!\7FJPK(=6@=]ZZDVIE,B*YOZ2#:90M'/K>V$P&8*GE<"K M2?,(Z_Z\Y<[WQI,I^[E2[$/'!.',N9ZS7V6QV>1I0AAJ#Y@L_/8M+UP$IUQ@ MK5'#9#YDG_*"I[7A87$F[I )M' D"CU_YCOW 4B/PV;A$R#ZX$59Y.K 5B(!SCIL 7:"#0+_[X3%KF<, MS1)16.4IT@_10^;2A-*!=$W]Z/\(PI\KF5HI^[4]"+UYU$54Z,T6X9#=%J0# MVK53^5=I$F:+B45S/8-Q;HL\_L*@/2)O//;DJ$&T6+3'#*;C &@ \1APD85N MGP3>=#9UW@R]: [DU- %0Q[+1.'@<#H)'1Q&4JK8+&AK$\L,_ G_K#7 M;G[PF+TH-2(TXBE4M)2992C.=7%*J-YRO!["?4E?*=_W,N'N@0[AP4/V'BA5 M#H708=F"7$W\T[>8&/QSY MYY+#+0D,(L1ES1D=@+P4_UY*BF#(-SNN"G,4KG1A'VE9&'H;#C! 7;).4+PP MU)!7:4L3,?+,B&$3GE%**SR="("M968ID0IPC;WS>M_HVS6\\29KF* M-V:)3*NH\BVJ=W(#CJ)QP4;3'W_BV]WCE[5G-DH_,LRI#0)_-.[:('"L6.1>P!XJZ@O :*V Y- M%,ZAK:(J!1@!62-@S#,PQ$I-H2"'O"L-M*[*HK35"DLE7\H4@!#ZN+S9\@/M M3>56(O=X*.GA6"9]YIG%B64,2LSW&1+71NX:M]XCVTK2((+V1@EQ124;(_/E M%I<4CRD'2$N+PL)'*J*V['EL:/J+^;0/<3=Y1J_)XN"\.;.JJK'$M1;TCY%> MDSJAD[ST!&N4_I2(\Z_0HI'_0$)QK*W+E)M^1E: WP-BPJ1=&?-E*K#:&Y&E M-A158E6- \O8VKHP(>J4#7H-]JFR?+&!^^V!,VB>:LE4?B%$8CD#*@J/;-&$ M]4IKUI C]H*3@2T[C'_E,B5.F2 5@S?LA:>P74Z>#Y"16)E8<[KI.F$B %9T M4Q0\0!W4^D2E0A8U"9U%WK-3DA!(.B5]GV*3(F2?%08O/SU'-0FY>V(#J*(; MEE!!HL!G9HH?='Y;&,A(82(M G]IR)(IC2A^6M4 M)LI4MA5#<57$FVAAPYT2)IOU>]V(O>497PO*"=96,9IMF97"V,'NL%Z8"1Q# M&.UW7V*+(EYR=E?&5CPF9(O1>N1"T<$M MC(QJS&,:I:!<(:B ]4R@QQ;07BD\)[,ID4(&/">JN=)#M,2K#CXMCPG4:Z"+ M#( XU!<_2!\UAK4I'92)%L 0R?H9_36$IO=== MT(,'#_C5V#H0M0=Y!K#INO0Z%]NXLF\K:6"R^LO[J@>:J9<]/!Z3>'>FDJWK M":>&]E%41PMG 8W(?((4[I1K"0"=YCOCFRVF^PJ5EM]IMR./O%D0NGW3_=M] MWQO[[?1BX47A!%5"K$J>4B& E%Q(RHRPA>VVB3<+R%8=H1=. ^]-YFX7&OG>?+(8]D'!MJ- Z7T4+]D$$HR=^ZDWBZ(?0*S#AU.( MGKSX01$J4:.9)@#IP&#JJ(6>M9.BP32 F.];))OPHV@.?96OKE -'RMY8 PZ M=.]ATB%[C58C6QO('.^(/#]PIP&1%_CSX<-"7<(R7A2$G7D%8.]/^WOO;_E[ M)DRZ_CIS;H*@U=5K^@! 9:LM0U"VV]$3ULK,: \U7):0ER$E6'U2W=H^IYQ: M8K,JN+0^:@M-=)3=XC).P18R7E67N\HQM6.GA\\U&I.'6UN)E1I4YLNW11*1I4QPNS1QB]EB[[#0)[6PKZU1= MQSTMI_!C*IP_SB:.1(Z:=:I!NS8_UYJ^SKYK4NYR[7 QH*)$:4ZY?TA5CEHW MUOHA<0:7\X4W'H]M/7@9AG1SU( VALETGLK$T#43O6V=@(EC)3;T*0R%U1LD MK Y&&EO:#JQJM+#O+&L>H$>PLF.,/@F]LY6$'>]'K9D\>L_6.)=!.U: 8"M' MQZA4\C(%/L!R7/1"42!3&:TT<]UOGJDX3>G]\ K<*8?UK?-*. :DU_%3QW4$ M3: .O$JY=%;'FB]X:L+.+7VFLZ93@KZ8TM&7?N"T.R3*4HBLE:?R7:HZ>TM$ MJWF4P[I<_B9BVVZ?;6J[P27)P3E5S31RJJS2UOCW:++N0C-QAUU[D<)H6_O] M#\?7U2CJ\LK3QT)OZ$X0O MVS1H=IQ33/3I](EM134.HH=VHB#'_S8L-N-_U'=\9SL4^['!3%;-Y*NRAE-$ M(68]*-UI_]PP&7DA(MT?D6\^"?^(=-\EG/\'A'-GZQ!O%G6_=)WX5#7[ZW@M MQ11RK$3J:K8"#'-%>-9UWUE_4H4_:YE(KJ0M$*CI19@"7LG')'(=_$::(0HV M9%\I? '24$%-L>OL\"9J#!!?ZD\"2*8E1;H6"D]#> M-IR9B9?8.K M;@YK,V>MI_[@25)]:4CL/.;=^S>V<5MR^M26?NFUE,STW(Y7J^&IV8N86U2#( M,GR>O78 ZC!Z5,1:CVA- 0\01Z5PL[4%T"TS%9@9/=FNNG*1+?\-3_H\,?6J*4;;GM/, "#[]7T[ MFT=-4FUHFB^>9-IZY5>%6'-%GU;("O7J*UNBU[>X_&#G7J_L]TE-$@91U'9=O[.PL*;!6Y'>/SU%:V^F1YT"S_P%02P,$ M% @ =H)A5%Z8V2]Q! !PP !D !X;"]W;W)K&ULK5;;;N,V$/V5@5H4">#8NCB)DW4,)%DO=H&NUXC3%GVDI;'%AB)5 MDHJ3O^^0DGRI8V_1S8LDDC-GSES%X4KI)Y,C6G@IA#0W06YM>=WKF33'@IFN M*E'2R4+I@EE:ZF7/E!I9YI4*T8O#\*)7,"Z#T=#O3?5HJ"HKN,2I!E,5!=.O M=RC4ZB:(@G;C@2]SZS9ZHV')ECA#^ULYU;3JK5$R7J T7$G0N+@);J/KN[Z3 M]P*_G*++]E-$#I"*#"U#H'1ZQGO40@'1#3^;C"#M4FGN/W= MHG_ROI,O&;SFV 00(8+5@G[H%:?L?'GW.&E2AC_A%4M&U\%D%;& MJJ)1)@8%E_6;O31QV%(8A <4XD8A]KQK0Y[E1V;9:*C5"K23)C3WX5WUVD2. M2Y>4F=5TRDG/CB;*(D0QG,%D_ B_?IO-8#I^@-GGVX?QL&?)@I/KI0W:78T6 M'T CH*]*VMS 6&:8[0+TB-J:7]SRNXN/(G[$M M)U($XC*,C>,G:W\3C)8?\ M_8Z7.Z#]-6C?@_;?*8C'T:*X^P8.W#'#4Y#4IT(9 R52:^5,(W #J2K*RF(& M\U?(^#//N%QN1&ESY:N3!-@S:FHVD%4Q)P2U<+H%M8?',D!]:RR3'H!:'FR. MSA17&9S@2RHJ?[(M126:/H$J79,9H,T6RE3SOZCWP"KJWK+2:4[=<]J%CUQX MKM]QI3(.W=EOR9_] /E25*9>4ZZDY4P +A:.'J%DCA$-!S"85II;3EBKG*;(Y9H2II3Z_AEY\& M<9A\>+?WG\AT/4& ^A]]LMT,:,_=+'"/$":MT_LD)JT_[<;/4%F**\GB+6^8&C4%*/,TPFV^AMOGHBPN?+LFC@JR!08=6 J_6NXNCAG/&7. MS,[(>(?1\-]'P;>M*F^;*KH,(4EBF"AY]DS-A0=[[.IB %<$-2Y*H5X18>8/ MI\UO"Z:"$5Z20'01PJ.RE(VH$UU&].Q'24OGK;M$;^MR1L-JZ:^@[C]'L[.^ MIZUWU[?Z<74 4 $\/ 9 M >&PO=V]R:W-H965T+)0.F,62;TV[O0!WNJM%+D_$*#*;.,Z;M#+M5FOQ?TMAN78KFRM#$XV"O8DE]Q M>U-<:*0&C9949#PW0N6@^6*_-PW>'\;$[QC^$'QC.FN@2.9*?2'B)-WO^>00 MESRQI('AWYK/N)2D"-WXN];9:TR28'>]U?[1Q8ZQS)GA,R7_%*E=[?S!F;(<@@C>P>SF MZOK\]/@2IF='\.GX_-/E].+SR0Q.SCZ>7YY.KT_.S_8&%DV2X""IU1]6ZL-G MU LQ(V5V%F)?Q;,+ZL/HOZW*(;S@FMF1;X$PY?86M8 TYRJ&!6FP PD M*BM4[D[4 E@.N.2ZT,)P8'/L:MBL1+)"^8*A*@XHR?)$, DBKV8$-9M Q6LF M))M+#G;%+.WP-9,ERJ38S +4(U[*4^$Z_N,?>': Z5A MJ559>&C%':;$M<(D6 5,2I60+YH;5>J$H_$\)4YF##>&6%&S\RY/>!^NT>(, M V7YW:^_3,)@_,%\U8/62W[+DY)F"2*T$ D=:KZF<0&I,(GFSZ*"8],0GBG0 M/$*L*.VH2[[F>8GN M+[3*D#D5:Y&6:+2:9J3.%005'BL*K6X%PL,QQ,!_38G.E"9HNZZT6>I"9I5% MM7IKSRDD"!&-C7D/).1''W[8_U^J!K>@,06)$1SA]_]%FDAQV&XY&JI68$SED!B[L;AQ@4!W>UR M-X^VDC7T[@8$1MA'W4#5@"*J--BL9N?'(_Y?F^@AW_.Y^MK_!&#=BI2,_?'=/P:,QZXU'84,-F=+VQ6U M*^;[Q?,FV.G$'^UZP7#2V8@C;S2*7D ]\(9QF]30"X=!C:Y\&IZ.;M\;^U%W M8^CM!O%WQTLAG+@/#LT>9PIO*(54=V3:-J.JGD[5)1(_$!@%7BGP7DDW#1?: M3?^J_]2->]!YY*"BI7O*T8T /S+5>Z?9;5Z+T^J1U+)73\U3II&UL[5G;#C\:5!(I7LG1V'LHSTY,I7/E::/ M5KBJ**1=O:/<+(][HUXS<*T6F>>!PO-NRO/#A$^*EJ[S7; G,V/N^>$B/>X-V2#**?&L0>+C@R*IG#=%+0P+"J7CI_Q2QZ$C<#A\0F!<"XR#W7&A8.7/TLN3(VN6 MPO)L:.,OP=4@#>.4YJ3<>(M?%>3\R97Q)$93L2_.+ZY.K\XN3C^(BZN;V^N[ MR_=7MS=' X]%>.H@J16^BPK'3R@CD<[]$U:ER=!W^0)?<]P=$/OM-4[#7JG?UTH=RL<30_$^>G% MM?AT^N'NO;A\?WIS=_T^*!/G4EGQ(/.*A'+"9R3HB_*BM"JAOC V#,G"5-KC MJ_0@1Y6G8D9@4D(@0BJ\$6!'+B2XX1SX#ZE2JO"#MU*[.5DA1:[D3.7*KX32 M/-?8E&R^BE-DY-:,_))( YCV'HI*:;U*5"FU=] MS#R84Y!TE250VHM4>CH0 MMSP*_J@R)S:B*DK6YT3EHH'1P[G24B=*YC#!>5NQ!BBV[ R,M'$N%E*ZK+SK MP\P4EF>*K+1)MA(H7O5O43,\B<8HO1#SC5"2\W*6*S J[9@BQ?) J MYU\/Q"^/9B(<7.XV0KDM)Q$,;!\BP9AA,[HX6">=2UXJ3)M;)$["1H]ZC_&Y M-05TI(1-(N6\.E/9!/XO,P6SMKG>VHAOI8%16!J26.M?_S@VJ MQ.H*DF;96M%Q,*#(K=/ J)#Z'H(R20#6$&&@HYOG-3)"[+&>L*>DDRKSQ6MP5GC>0- FLF362(QLT:F(J<'RF$C^S:%V@6]JK:61?AR^%5"3@0DN2Z65*$%:+F\2[-K,186MFQDH? M:!UT 7M)%F10J4*I@R[-V,]1MP)D8>2&)/C8T=^!>A/7R69<&\5!V5:0P.]H MA]'$RQ4&8DXMM)HC<&!*XW@#G90UVJB^RYLU=KA:SDV.F ,/73*IS4B,5E/!=M/*IB/>#RMJ:;JJIU]ATJ9@A)M(;_J,^P27X*KEZNS73BSK&[S]7R:\3C]S+R8\OZ M[[7"::1S\WC3 >&WJK[L5*AF[)= Y6_5?-&6F%;OFJ#/<64#P6TH(A_:12(' MF\>[[G953PW8?U&7[;WFVWBOD:T')GOB3+I,\*8.<@68_6[P4!I63;$I*E_! MV7D%ZK0S_BE&X_[TU7370.#Z^.V6D9L,V^N^)\M;] ,.-A']+]HCQ#[2MN]@ M+>K9#'LW5X)0M?=^U_:[@YL#\6^#BJ4#]=>R[9013'TY'3_Y_+7AS?.M\9VL ML\/X[7:#3MOSX1-FK3IO8YQ8- M9%9HT$*LE$WW^@+.PL@@7:6U0'DP.%\,5",1)6HVI?'N1!W_^6)BB8<$/LM&M"$I' MSTD5'R2^N@13OHH=9W-WU*!@1KD";L;>%6!OQP\&,+R[32(\VG9(CRS "/&/YB1<1H -IZ, A#+_27E]H MO@GA$)KYW%%]0MQAP&XZ/,6">&7 ^GP#A/,/^.A$3G.(#@]>O>P!A>&M2GSPI@QO,F;& M>U.$KQG)E"Q/P.]S@\-E_< +M*^V3OX/4$L#!!0 ( ':"853:'@AW@0, M %<* 9 >&PO=V]R:W-H965TM M&&) LZAW*;4-^*VH@=2(\[*A'QF+MH5*HDM2=?+O=Y1L17*3#,.6[8O$>WCW MW)%W)&]PX.*;W#&FX#'/"CDT=DKM+RU+KG./^F MA44R-(@.B&5LK30#Q=\/-F59IHDPC.]'3J-QJ0W;XQ/[IVKMN)8'*MF49W^D MB=H-CS6>PNA_?W,UOKK["I\5RO)PNQE)^.;Z?+5"G M-[ 4.M<4UOKH:%([)"SI$E@8=1.Z&+3 M8@NI!'HZM< WH'!VRO,]+9Y^_25R[/"CA.\E%8J)[ G6O) \2Q.J6(+'5N+Q MD-H*[Q%!]4F4<%$6M$Q25.BA&U$1;E*YIAD\,2HD,%TB@ EF^0,339*!%HD> MD#YHQ\3]^+_]OV*<=26_$.9):67#RH&5"ROO)X*+18'KYJ7$-4D3V..:[56U M&[A/('=4,* Y+PLE,1]8+6)&01N%PBC-HEMFR0D72 (?5CB,Y)QV2:["$T_#GMMQ#.]R.L@ MCNF1KDYH$D)ZSX3-KES^96XF5*;KJE:2-"MU&;9X2=^Q>UW =LX $IQKQ+U_ MK7+>H>*>$_$?5)QMVG[4!3S2J3C7M/&V;P&.Z0;AFQ47846$'3GV@I8LG1GU!+ P04 " !V@F%4 M,@!NV@TC "P> &0 'AL+W=O3W42EY7TU-36/E D)*%#$1J"M*/Y^CTW M7"A1M)WT/.R^)!8% @<'YWZ!?KHS]1>[4JI)OJ[+RO[\9-4TFQ^?/K7Y2JTS M.S8;5<$W"U.OLP8^ULNG=E.KK*"7UN73ZEN?OYR>2)>W"CEZL&'SS]Y:=-ME0SU7S>7-?PZ:F?I=!K M55EMJJ16BY^?G$U^/)\^PQ=HQ.]:W=GH[P2W,C?F"WZX*GY^6;5A2G_H8MF]?.35T^20BVR MMFQNS-W?E&SH.7LYN[BYNOYT M]?%#\O%=ULJIJ,F*=3RN5Y*:RL$"1-:I(%KK*JEQG96)AB (N;6RBJ[QL"Y4T M,#IC^&@J_'QAUINLVB99520:'M^M3%EN1^:N@MEL.[>ZT%D-])-DBT;5](XJ M-1 \0P#39"6LII>57N@\JQI8#@;F,N\\*P$@?!T6:.JLLAEQO1T/8/VYQ_KS M0:1\M@H!N+2-!C&@[&-1_KC9"=L@83=9[?=^ -]X*"B8=;,%L=&LDJ6J5 V( MVN(!J T>5>8I!2:%(]*;4M&[B.+/E<8QLX86/OKK?[V:3D_>?![/QLFO9V?7 M]'GRYAC$[[]:#10!DJ<"68WK)XV!3U_@F#S@B/O,@GS?$.IAA:R!\UR *;5 M8$^F)IC6GCA@O&KXU5)G*H)P4X-*KAOF)3R7#1T'<18P;+74\U() MBM+.>:PS6!'@@C,LM\+G0"SF#EDG 4)*"M/.&US-\6^:+#)=)[=9V:K.>>5$ M$,7^&>!Z"D%)YJT%4K<63FX]%T:&"35PK*X)9IAO:4QQIX&U:2)3+4>XT<+# MCRLS&Q!\:J%J7+;)OH8M5ATJQW&ERI"KYJ5>NF5!D^9?1JC "P0(#Y;GE4-. M!8/PG:+I6T!*W8!=P_NJBD"!J.C&((.;%DX5V (L -QE6Q9 LT#O=;*HS1K. MT=A=_EAG6WD#483/:R0-15P"&*YB<8G\-WGY!A[#B6>T.[<:SA4H:V,LTR-" /DXN/OU^]'4U>)S!5H=8Z3U:9)?3G2%>XCLR+Q($3;MHZAS&X3J%R M;>D+8CT$!]$ )E8)YU4HV+X7[H[A-)P]D9(\OU=EI!W= 19&2#DNXP9'I_9 M#< !O)4@GP#!U$FNZ[Q=PQRX4*U*1@L(([]=$CMW=!HBMY)V4] )P+ ^]':/ MZ(^V6#*7PG+ H(('>3?/ZGJ+2Q)/T+8;Z]@"22\P YU&AP+P] '#0$/(F4D% M1BMM#-[,\[9F4BX*.DO E*[8[$8R17:=(SFJ0DB^]F+CW\QP#\(YKFL-VL,H MH!6H3D4D_Z4"9?R-1$TGU>8K&:A($^->YRJ0N."O#Z8A)?W"*^D7@VKTPL"J M52,Z\T;;+VER :)"-_+A<3K[,8L!#40K)>_\#G5EF[IEM!-5;DP#'S1I:) [ MB,F8 P!%>3PS,Q]/7>/4>+K:-JC)P8?2, L.R.R*Y1/^@10/I,GL95>@JY(1 MG, :@ $%T@C?13+3(A4I> ?4!LL/!PXZ=4AQEDC\X#+TD%;:6XBMDCO<.FR! MH"]4;9,5^$IN8_\">D,#9M%!FVY:MM\Z$(5]@U]7,ER@#XLV=V"H^E;GS.E! M:@%OG%F=I%?)V1J(,\\(3N$@BZ+25#@GL+.&/^ 0MT[>@6NA MUG-@!N=>@ R[,^*IX=8$J\A]\/JS9W_9,8&]T%G6QMJ^0V#[9ZX5(X9& Y"'H#\9AGY@H6'H3:7\I+MSGAZ<9SYMHC!@O0]QR M8");43;WFW-W*PUR^@Z$/YM"IHIVY$]B#@P<9'PJ:@"D>5;\ 3L)ZJ92&3AK MR/6D' "UM>J8P84"ZZI Y' (!I4+6ES@ZP&4<,"H-GA6EAA^J5W%<:]F&](B M+[T6>3DLV$&V@=Y "7<9"U(DZED0<5>Q+'V<8KE_?5IL'X1#R^/H&_@(<@PQ M0R_&A!2D+GK0*'E!?)8:IB[V174&VJS62XW6!QP D6CSLH7?%31-C4^'YSE6_5ME;8Q78-.!Z0D+B,@@^Q>!P.@GZB 00C %@(-B#_32%]4X3PGX M*[L%"85?C8 51S9#F3+KUY+.&]Q_)5[;&7UH@6ITD9K(2PQN6LI (HK;"D M MR3QM'$3?9GD=[RPB MBK1SUB+!- N&-IJ%'7S\!AO;L6@Q#@0 $Y M1IE#5<"4M@>0-4)DC3RR4(+$3CF?FHU\BW'R#]B"GPWY6R\.+-F_0L?(S;[0 M@;*Q2Z*)SX*$O"@0X2:O&UU$J)6Q;.O=*B=C0D@GLQ(KH/$,8>J_+_475>J5 M,04;Y-IYBI5B)*%=*6:@V E@9\-M!RY 692/KP)&*.8\A M4%,JMN8I^/8)]]'"0N!*.BLG-[81R\EVY<(&3."O>W+ [1G(&M5]98)&9>/- MRP;8WIZD0&$M?-B_.P(*Y\9_LM(:7"&0D0\Q1OMUO"_$PM^36%88^.];XP8# M/HA\-@*?)1*B?(?;_)WF>4^H4GZ%Z>1-UU34%JPORB(=B*YT=$"D2DDEP=Y_ M.!T_3]9P$N2'.Q$A\ M UQBPU5'(D,Q@%HI"TQPC<"#J?E@ZPN2(($>A2/)I$*VU_@IB*CTXYFYM63(QLZ^*,?C=GO!M _P)> 68@0ALP'5]YT_'5H.EVYIR( MF^ +/= F?/S$9SV.E[,?E4H1MAB()6!I,DN&"N@,!3)-V^\OG#O M4?"S+/DK\96S9#(=K3%QYR/AG_U"?>!U]!')@@O#C#EI]H*^6_;)4J4PUZDH6%OA^W^/3[K:GXY-OWO:.S?+G>KUG MU7UN*]*.\X M32?#<[XZB4(ZH>,X;YPM-MY?X\#4 M**3Q!.-X5#QY)L#RKW:\GFILEUF4D:]](E=1\;6WK84MTU MDNL#^624+ U9;5G#SH?SD@L%3BU(<PT&ZAM+H$;D$XICC>[24#X;115Z M /;823YG9I).0T6U,"@+[?UB#(5]BX&@L(G39&86#2443Y-W;5UI#G L]%?\ M0Z)GT?C1Y"3Y#0Q(,%=-S2AI*!:Z,P3SRQC10(^GADTRK3A(*,P#@,"6PKYW MP?5X6"CTML@YC/B>4M@#!#8Y"15>)X/G_FN<8K\*)0)GDC_O>?0XLKMG_;WY MXQ7%='&)+8HJ26E!H_)594JS!.:05'RP$FLD-8Q,NRP#IX)AFI7>8+2@!I6* M401?$@26<96MW9GK:@0'EROR@RU08+Z2B!-8/(:/^NCJ^N:OV7KSYNVQ2^7N M55BX-&> >E6;=KGJKW[ @RY@&&S A3_MN <=2+!@QM<-^^=H/W39BVT(QUW@ M"Q_@+P[WUYAQY@B]J0:)*BH;G'P74;GO'TU+#UPVMDC9.+:AEN0.PU6=&',W MTD0!HX['JKZB][,PZ*<[(Y@$8P:$F6.LO\AJC@+!^D#S2*@@;F&R$AA? M+UPVCW2[]R I @F N?*);F&(A0,%<9)R54+&8!? +59)_46W0*DDWL%9.E%- M*I&YI8HZGPA.4*Q411J7F: ;F^,$W9@B;88BCEL.4'-NDG**^X2V>T!BS'/J M76I.7&B'W5]\XI -4F1Q$!F%H:6[8#X FV'@&B0O/QA2_6.8S3O^#*9B.M; M&1^P<71)CA(?,.VA4V,CH2?'G0A&G.CH"5S?N?1A5!J#KE79C8X1!7Y%\9\F M6&8:!;;" $ZF>PP/R)]D])D>Y+%RXZ2!R"' M9P6&\"U5F-RR-,-$$\JL!59.I(?U8=DUC'*8M4IJ8];C/7%,F+=631<6 MT=\2#UG# ?CBI-Z1X(:-0+$Y$7MT\_'S<;HWM%.(B +T\/=I'$#IACO2WL1. M)Q:[D\:A\+>2H Z^217(K%DV6?XE6XHJJ166]F)IS13T@9V*9!B&\ M\)J#E*I;B83_' -IJLZU12G^B3-O5#>)D$0[LP%$7=V:$FW4/=L,; 6O=AUJA"!XI<;,I([9R):-I-%X6EMI)77&^#0O=R YO:\]D[FT",BX17&4H MH4/>CFMW#Z6Q!L755>4+2]/>MT5%B*F 3JW&7 )I6&SM 9D,@T&AME+I4%(<*PG[?+.>\'J '-!+J8*J1QBBC3T.'2 MN*+65UNXJJAPP*$$UYW-H/8/?423TT%%?2.J-4W>!KW*7.RC%RYB\6C/:7AI M'PB)5H9%+;OCJJXD'4A?4D9:QFL;_@Y?8_<')B69COE]2J*3[''DX^1)7);) M:7Y)#'0$OC]8KX]B.&)+A/11'#3P('1*^UTLB8=S1X>,BQ4;$E)+;061QQ)S M>+PTV-1+Y4-AD9,>?/'8 T^CGIP%/!@BH] %-AGNTKJ04@#TAGE?,T;P@VGE M8?/?N(),II.X/::_$KF+S8@0R,R4:DLD&4<0J;S3+62'R2OIVJ1:)M@2EM!@ M$2&^ZQF$3H%/(#CV^^&CL4./#1"20G*"-4T4"#FS5:I+/SB_HZ$Y'.-"4_Z\ MG;LP%!D@%A_B\:]45KC/\#70C( (9ETNU1FYV!2C#FV.0YR2]ZKV25R(V%HC MH5="35Z:MA@5"HFMWGIH.V4( 7W-2M?%" PT4$.>L5J4C_,M_(^XYQ/C4$27 M:?>XU%<-(X>;LN5(2K64:E)R1"T%2>E(_P!K)IQIWXP>)%?3/2AU0_O>9+C# M[B9V:&+Q=^FJN1XI:;]O.4SD'_"P_+'ULA=8J!8YH^P23US)+(CK3$J-S^+T MA,#!'J$' C=M@P995^QYAG64'6A9L@-,Y5RL1?Q^J..*TRE<:W,/'G92.W&_ M4A T@U02^D.M$%E^>DTSFT^V F M1T$]SL+MV;<[/4=KKJ [/'?'A%X"$IH1>8/[D7)LWA.3Q*MTYTKNM5P&GY@@ ML[I1CEI\2=&9O;=SLV,\1'T- DM;JDL@LEY=$ MA=6F7BA*&V( )'S@[5 [0KP" MJ6QJBBU&HQYT9(X3UX;J&_) E1(%LBTYUMYV"QCKPO\0C._LB-Z+]Q+M(_0* M24J,V4QQ+JJ(*L3=RMVS)<)S0:D.7J.3"8M3Y9B94TE($*KH$*2 Q*Q>PW(&)(5X7"T\EP@>@5-ZU_PG:-1]HE#YVXFUWPFR%GP;KN M_*AYGAI!-%H@7 ?(=8KXC8NK2@[!)^-Z6OMW+Q<8@S5][Z#=ONB]PV'P*A:] M.=]J$#I'X@[FN6KNE&22\:TY1<@.7EK!-+8.Y>AD:[D23;)P[X<^9@./75I4 M59F'O\SN[!O>EL0T%RY2RACE\GL927WL3+52G H\ ?)KDQ%G_.ZO6(@Z#<4+ M0^>]X!P$I2W[MH"5C)5+FW$&M+>IT(4BFXDKW!HJ[2 M&0AMG'PPW"[1$(%V0$;S(*LQ1$G(PQ0$#8WOFDF=AJ-0N<2U_5L<<^(F*0(, M!!'LBO+2TC+@Y$I/8-(S@@0RV6>)VY)V0LCR$;='@"Y4X2UNJL/"4P1B5GH9 M3K9_>?QVH=%)@"VNS!WVR:2[ZC9KL6QVOA7[RZ6_^&!;,#-J(6HL4*Q1:94[ MC3Q1GB]F;-TMPT7^=[H"]RGYJ]"2(\@'D$B+IG'TE0_6I1B*5O(6?%#A"H): M$4&-F*"X^R@0E&TM%PY3J;&_UB,^)7=_!B^%KW8SR'KA+,704Y@EST_^$C<4 MP>;FBCR>L."G#H&1=:YE8WM"RXF>QEEZH93?M3WRQ3YUJXI4PMEYS7%[NAS% M?>A4C&<=>O2F=^V\OF]K8QM27*'V<3).T:X]ZK;PEZ#R_P >Q646)' M"/9Q6"G!JZYRZ>/C$26-V&"3^$HBWSE'Y2D^1JT*>+[1._#XCBY^0T2CU )E M5K545,^.-IE8.)NEL$J3<3.TTTIB8AVIK\XRC$=U31F^9H&FBOBX5J[(Z1CT MHRX)VH?N*AB[;A>C[]C%IFS9MPPMZD$]%0@:DD_<3 M$"UZ% !MG$W&R&$/]SBE:HX-$7-./ !_\/21EO3%(:C_1@XB01O%,D)O?6?] M3J8A))VZ@^CZ&]P R3V7#\5W.N>8\O?.Q\$P.WA?:72_%>H7-Y?,[;+ESE'T M5VV1SQNNW9'A;56(/;^7AG.!;H;)%\AA7I44:G$?+CI]LO[6&22HJ+ANR_/ MB$!X8B&0!,^X6HRQJ2C8S)'RFH2QV.ER6^DYTZ059 M:"AJHFOC",'TP.GNQ\FE;UJ[#+&?A<3*$?MNS &'PMD$G5OT-#,BALZB&1R_ M1NK>OR5=/@-&=2,PAF@'4^-(46)-3'DT---@M7@=TM,:WC^I$T"=&>/,'#KZ MX^37W7YQOK*(Q!)2E4.+WWP3G^:#FKWW0?[693U5]?#.GZ9WIZ%X=SI<1?L6 MSNV6HK>/CF0/SXQWR/YH-UFN?GZRDY=C8-E3WO3ABU0B!ED [DLM]R84&>D[$%5(.9W)G:UUUS;LX\38.H0CG.- M['@;4,U92/; ^H#:GTLCG_9>$Q4J6AU<<[#*U2U+0FX1O,,+G[;>[Z@5KIB" MX>/&LB:+;MLBJ17!BDZD%$*3OI62U^A24A?A?,!FG"L>-6 C\E>J6*HX?8+V M3N,+LAW4!*J/G>P%/"VZKI['W6T.TD"*M6'>R=T3?3Y&%FJLG"4IOL,QWWY! MWR\6' (8!N>["#F-S$0JM(Q[81\*K12EM:'([!#! JY:L*=*"DQ@O2;UX@+5 M#TG>4/X[':[4[6MG?[1M\2U+=,M5N1ZAK]WA0,>$!$KV6AVDV"+MO0.T]TK2 M4* 1AZX['2SQE:,]=[KV==:XB#(U]#BB>\C&?.![YYY3)@_7YY'%\.]'[&)? M.Q3DT]5645.TNY6LYPY=VWN%K#?RG>- 9AOK.[F(B.PXKK'"'P1 M2=K?^.4?8K#2WW<5M7/)?"Y+A9*:0IN.93Y\.<_1 JS^2"VCX/I%."%:[3C5A]@:6N M2J[V[1$)O95T<8[W;+NW% M861I##HNH7YV.ES$^AL5F%QPB=TCM>8],P/R^*[H^YP"W0F_N31O7F9:4I)< M!4/=I72AA[^)1=O05881=;1Y0 35'"0*)>D[Q1^UNQ+3>YS^(IXR0"UAE1"U MY4J0NRQTN'3U@[J+0;RN365::6%X M/,T,KW5#:7) W5EAZ*[]7MQ<5>&BE>G)Y#53T\,0ZFZ[ KQ&Y1FV[5\+V)CL M)/?:V>RS?^N#&=/JH\DT33IYW:-/9J/SY.6S$S"59U3MO]@Z$1>M@A08OYC& MA&AWWMNYCSTD()S_N&PUDY?[E0>,LHH6Y% NJ5,2E[T8NC!%Z&P*.[[P.X8- M[=Y914E[[#MEF,"*4B=Y!&7E!('!JOIZ28FV,?_S(7E!&EH^W MA1]^'G.5@UDE$7-]&ZH;@F?M+CH16;;0M6WBUEZZ>H2:U@'=/M(H]SIUA)OP M3;-"H>JH&-[\>P;:%Z2COV.97 ELIBE(L3ZN,>;^.]%]7)3))?SP!+&O@T8N M3$;N!8;TC#C[+-PU/1F=3-+X=M;1)5US"4+0YSR$W4ZGD^/>H>_#C91_-T!4 MR>_P+4'BWSP]3J6V.+CX^/EOJECBNXU$%[C2FIX0C]?7/SI^35B1;[[,TX$'0'C"DKD2[D_)+XM M40:YW3MI$04@[J9W?C(D5*&T!)XAO%J5K($-ER3:).N.']WC_ ME<[]LA_LB>2?8,->^D-$+FW!Q@85]V*(12 M[5X<_QA?-AE=^R\CT7;LG?@( 9#%C_>J<6,+.RJ<=2HC^-"=F\Z8;-UJXA2L ML$PMBW]MAW[+ XT"'VWQK5)1+UP:&J,Z3^E"A"C,0G:JH7JG>*;6WE3SA&.>X'H,P8'\XRZ8'8.R@47K 34M77:EQN,V,0--P!0-::[ MC%I">Z/2F"_X5A\>N_6;5/P1?IP%A 'X\O7N>>SU)\% FG\2JO1R?/_D.K>&V1'E)-':TR?=X__RZX!X8] M@%_!4*V7JE&2RN4CO,$(S2+=/YK.JI.3_D5'!Q<[N.E8'S,"Y+X&]_S95)YW M(9A\WREU(66=%3GML);O]I70O<0*5/BA,%^^[:Q#_"6-+M[&M*;*N"+)=I0N MQ[D:OMVW<3:KI/)X.YSO"YX.Y\(-)?.KJW^)DO%L/RM-TC)'/;1B4@ MJ"N*N&:7M'<4[L"?Y(F5^+[0W;3S$KO+=:EJ[]J'J!I6V*\S$B1._H8+'9R? M,KL)?@IITP6W*G.9P^SR@I*&CS%*IG'$J^N+V/#K)H9^CRQ,VY%\Y1ZF=7E-M ;1F;0A&JXBM0Q<]2$CLJ),5NK)G*DO!<[=W%"OM])+N.' M(2.I=PJ!.74O!L9B'H$8;X'79?<'B[2O[<8 DN0ZQ-5P MIMXBEE3QRSXGS:?3PXYBKP/LA^U(W7R7;?SGF<8R@.^FY1H%X6>D>R92OV67 M%VIY&/R*[5J W+^@GE@@D_CU9_S1Q/\=[ MQC]"&X;S;_F^![6+93*E6L"K)^.7SY_PQ2ON TAW^DE:L"4;LZ8_L7E:U3@ MOE\8T[@/N(#_D>)?_A=02P,$% @ =H)A5(^ 6!,)! B@H !D !X M;"]W;W)K&ULW59M;^,V#/XK1#8,#=#6CM/>]7II M@+SU+D";!G6[PS#L@V+3L7:VE9/DIMVO'RD[3M9>TW[>ET2BJ8=\*))B;ZWT M=Y,B6GC,L\)>9Z(4:ZWU.ES62!T\QJ46.98&*D*T)A^\F<87+9\=P@PC MRPB"_AYPA%G&0.3&CQJSU9CD@[OK#?JEXTY<%L+@2&7?9&S3B]99"V),1)G9 M6[7^BC4?YV"D,N-^85WK^BV(2F-57A\F#W)95/_BL8[#>PX$]8' ^5T9UT?C>]F<'- M)0SOP^EL$H8PF(TAO+^^'MS^P?)P^F4VO9R.!K,[&(Q&-_>SN^GL"\QOKJ:C MZ22$@SNQR-"T>YXE[]B&%]6>#"M/@E<\Z01PK0J;&I@4,<;_!?"(5L,MV' ; M!GL1QQ@=0[=S"($?=/;@=9M8=1U>=T^L#%0$]\"=-' G#N[D%;A!1A4AB@B! M:@O&JES8I,Q@$$6J+*R!/YTEN,-'"\-,1=__^EE0W["Q =,8H7QP@!H-Z@=B M(C36Q2C_P1@67*%P( NPJ2J-*&+3/H???CD+_.[G_\W_&./2-03CO:D[%)F[ M'V'?5!VE0B\IB)O]-RTM'JDD,>]!&^)2%H4LEB_PK&I$@R7U6+,]K))MKFQD M5#HLWU&9HY8JALDCM7&#<-!IPRT^8%%NUDU>\+;6YH)I0'Z%3Q^Z.SM>=8+/ M>R4''[OMG>W9)Y\Q_1U1T-F/>>;O:A^<^NUG#K&[@SB6[BXY3C:EV+Z>[Z[* MXDV5-8IGJ^@? M[^D@ITT'.=U;W7--C[.V3S"GS+) %0N3'Z5*5.YQ.(8:62(I/M6&@X31])8+?C5/&(#D"/U'4K? M!]3N*S8$RHI Y@AP@WI"H4V;T[NZD*PR:@Q-,<+0=7!K-6\WKY'*5Z4E>UL2 M70A58M?L=!KX<"462@NK=!42>B;L"Q6DV2%5 M60PR7VDB667(QI,P59H=(4I;WL_=;>*0(%#&D7Z^6^T9F_A96GD[\T&.E(T\ M!1EP%5"-"HVT&;0&U7RQ5:^FM&M*9DICLI704?_X(V6*KB:?:F/5RDT;"V5I M=G'+E(9%U*Q WQ-%KVB]80/-^-G_%U!+ P04 " !V@F%4H6"50D$" > M!0 &0 'AL+W=O1&%8@:]B7C:N(56F]O?%^E!99$]<46N?&LA2R)-JK,?;652#*75#(_#((K MOR24>TGL;'.9Q*+2C'*<2U!561+Y9XI,U!-OX!T,"YH7VAK\)-Z2')]0/V_G MTFA^AY+1$KFB@H/$]<2['=Q,AS;>!;Q0K-6)#+:2E1 ;JWS-)EY@"2'#5%L$ M8K8=WB%C%LC0^-UB>MV1-O%4/J!_=K6;6E9$X9U@WVFFBXDW]B##-:F87HCZ M"[;UC"Q>*IAR*]1-['#D05HI+3AZ%1@BA!XO9R^SQ>0;OEV3% M4'V(?6W@;9"?ME#3!BH\ S4(X4%P72B8\0RS?P%\PZLC%Q[(3<.+B/>8]B$: M?(0P" <7\**NV,CA11>*5= 4> %NV,$-'=SP'#VJ2)Y+S(E[8&(-"]PAKQ!^ MNC-@B7L-4R;2S:_7VGD9_=V;<1A$G^!_]Q](9',C8/J)Y0JEZ^G!;WMKEZ"S M?-N9$&U&K[-J-KXUT*31@,@L#(;GVMU_[)FRU1 MYFXR%:2BXKIYOIVU&_[;YLT?PYN?XX'(G'(%#-A?FUF3S30VBA9;-P$K MH1JO8 [HO,?D+4$L#!!0 ( ':"850Z)S'=V0, M (P( 9 >&PO=V]R:W-H965T>:9QS,VHZW2CR9#M+#+A31C+[.VN P"DV28,W.N"I2TLU8Z9Y:F>A.80B-+ M*Z=NQ-.Y>SKK.O#/[DN#6M,;A,5DH]NLE- M.O9"1P@%)M8A,/H\X14*X8"(QL\]IM>$=([M\0']6Y4[Y;)B!J^4^(NG-AM[ M P]27+-2V'NU_1WW^?0<7J*$J7YA6]M>##U(2F-5OG->!*I;7S++)2*LM:&=-:&Y0I5IY$SDNW:$\6$V[G/SL9*XL0A<^ MP^S'P\W\Z\,#7-W=SF[FT^7-W1Q.EVPET)R- DNQG$>0['%G-6[T#FXG@ELE M;6;@JTPQ?0D0$,F&:71@.HL^1+S&Y!SBC@]1&'4^P(N;S.,*+_X@._;\G\8537LI>F8 F./>I)@_H)O4&B>.']-R]Q0VS2,?6#F8)XRBX?Q"Q/G8O;A#9QR22:J M-$RFI #N$BPLL%QIRW_5\0O47*5GE_#IMT$4QE_^M^^T';6U6$H+BXH$G/Z- M3)LSF+Z09W&09N&D.1*=&H/6---OC&MX8J*LA6%RP]WYLMJ*E$A$F;H329C) MG,E)SQ^&X5D#< (#/QH.7@%Q^0KJ2. :G^A6+3 %BTDFE5";YV:S$_F];@<& M<",_%UHEKA[O/[&\^'+=V,3^1=R#>3"%J^JJ04T7K:@2-QDOCKEU_.%%'SHA MS)5,5%Z@K6N8;30BW=$M&0;= <2PU"Q%R7*J.CIZL&Y*9?C8L@L'#O"[4NF6 M"W$,U?$'<5B16BKK:K46L*HR3;D>Y8J'_C#JPQ^+A/K;U+:9;YB_0B/Q[&>\M7[=GJWY8&ULK55M;^,V M#/XKA#<,+>#6+['STB4!FC:''7#MLC:W81CV0;&96*@M^23YTMNO'R4GCKNU MQ3[LBR52Y,.'I$5-]U(]Z0+1P'-5"CWS"F/JJR#068$5TY>R1D$G6ZDJ9DA4 MNT#7"EGNG*HRB,-P&%2,"V\^=;J5FD]E8THN<*5 -U7%U+<%EG(_\R+OJ'C@ MN\)813"?UFR'CV@^URM%4M"AY+Q"H;D4H' [\ZZCJT5B[9W!KQSWNK<'F\E& MRB>FF'EC#W+)DOMOK!O;9.)!UFCC:P.SL2@XJ)=V?.A M#CV'32*3CGYF?F] M- @I7,#JX>?5\F'].US?W\+RE\\?5W?+^S6M,CQ M&\A1#'=2F$+#4N28OP0(B&;'-3YR7<3O(MYB=@F#R(_KSM9+^MP@.&COH3-(=T0;D%LZX %/(1I.%/K^"'[X;Q^'@Q_]MI19@M4'E MVG!4VG;83P@WLJH;0\C[R&*_$FY=;LF<+N)/63:-*7T@@^ M-$IPTRCT8NC,:^O$H[DMI M"I_81BIFI&JK+4WQ:EH#?S*.>I+END9JQBO$$CH]A8F'?AC9D@EM5.-FU 47 M%T1O1\F=R,6Q'Z7C7K&)[/A?C1D-_5%T A^E?CJP>6M]19,O:ZJF9 9S&E@T MNS/.VI%(B;%**L/_:A5'][,DHAZ,SD^* 55EDI[#6AI6]GHX2*V^KYCX<1*_ M=IV"WI2J4.W<+-;T]S;"M .KTW;C_KJ=&ULS1AI M;]LV]*\07E"DA6+KEMPF 9RC:8 T#>)L13'L RW1-A=*=$FJ3OKK]TC).I)8 M";H.ZQ?+?'PWWT7NK[FXE4M"%+K+6"X/!DNE5F]'(YDL28;ED*](#CMS+C*L M8"D6([D2!*>&*&,CU[;#489I/CC<-[ K<;C/"\5H3JX$DD6687%_1!A?'PR< MP09P31=+I0&CP_T57I I4;^OK@2L1C67E&8DEY3G2)#YP6#BO#V*-+Y!^(.2 MM6S]1]J2&>>W>G&>'@QLK1!A)%&: X;/-W),&-.,0(VO%<]!+5(3MO]ON+\W MMH,M,RS),6>?::J6!X-X@%(RQP53UWS]@53V!)I?PIDTOVA=X=H#E!12\:PB M!@TRFI=??%?YX24$;D7@&KU+04;+$ZSPX;[@:R0T-G#3?XRIAAJ4H[D^E*D2 ML$N!3AU>3"[/SH\N3M%D.CV]F:+=&SQC M1+[>'RF0JFE'227AJ)3@;I'@N.@CS]52HM,\)6F7P0C4K75V-SH?N;T<3T@R M1)YC(==VG1Y^7NT#S_#S>GP@46E@#SN_9N<;=OX6=E-(G+1@!/$Y.N,\75/& MT)^&/;HA=PH=,9[<_O64)_L93Z1F"=:3;$9$[0&$\U3_L2VDE@0E6(A[FB\0 MSGB1*T.SV*BQ)H*@'<X]>J-=F@,V+R1 Y.NWZ-5O ML6M[[W[:MR/ZX:91Q:AQA!G.$X*P0C.RH'FN[07O&2,VZ#O(":PH\EL UW+' M'IJD*36V/Z6%XS[6RO$L/W;01X)E(0@4.H561%">0JGZ6E!922B90$X_2G=?W&:!%US+9$K[&$J$BXT">YIFII3HR@[+'R M>A=A!+@ZC'B>:B\*R(@R,BK"#YRE,YS&!-65 )<4@NX. M,8IGE(%3B!RB*2'(E"[?0D>%A$21$AWS;$9S;#@,>Q(YJ!,Y>'$BOZ>YPOF"ZD282$D@QUZ6WOWB6EQQR756':?V_H[K#-UNTKK^,&P@SQ:' M;E8_EO8\AX1#,Y9*HZE.4?BO$_C__CYVRK8=^Q$M!+A0]#ONU(8SP2%@GQ-[ M"3GPXQ2;[U69EYOE\:8_U HF29$5#"O2@_1C5'59^0)E2+[>)'O')0ULZY8N MA[H,T!3J#)U3DVNT#F#YZP? M#2W;;Y7]'>197ACV4026-X[;%+YEVV,(5,A[F.6AF))DF7/&%_?(!_GC&M7S MK- +6KT@LMS ;O6M<1RUT /+=CQT(S <&\Z(*21*KV!T MN)7([1KO6,$X;KC%CMNPBN)P&UYDAPU>/';1%80D!$WTD'OH>*OG7W:"]'DP<[-UQAMC5\(8@@%N*X!=AU=6B.VX'F.I;K MC?N)7"MR@@Z1;P51X[QMMU*4&G M=W#]E>2%#;Y?KAZDU^::"'+Q-R+@UHMP6UHU0NGI&3]3]#9=6\\&(0SO>M#; MVL.?'>(?\^WH12HO5,/;,=0OSFAJBO]4P:<,?Q -,]A*D*6^M7\CZ$+WK%]U M./BRY6[R$*^Y('0B XRMSZA54FF>L$+S+("S '_(TC'74'_S@LAVZ%MVU$Z7 MR ZVBWA\0N!G"6Z'/4E66, IL/N.5%UOJ_AMQ$*.!DTAB'SG^4L#M!RO?=]Q M+-\/>_(PJO,P^DGSM87>%PKN&?\F-_MUN3%AG:UP?F^B/3'^RPLHBGCKD?1G M)EQB9GI1Y=V/)X()U-/R(M6)U&H^@MAT.\?EA[$&-E450+ZO07X+9/NA!C7! MX%IQ[&I0V )%C@%%9?=>$D'P7)$F/ (KC*.J?&PO=V]R:W-H965TO'6+ M2WYM9EC($D[K$"S!DG:8ACV@9;/$5&*5$FJCO?K=T>]V$YJ MIQ@*!!%Y))][?TC/UL9^<2FBAX=,:7?62KW/3WL]EZ28"=]]SN46Q#(YN,=;]!_S:TNS7H.RE!EJ)XT&BZNSUGET>C'B_6'#)XEKMS,& M]F1AS!>>O%N>M?IL$"I,/",(^GS#2U2*@M::MF")*U$H?V/6?V#E3S P,80*OX/W;\]NWMW!R)Q8*77O6\X3.>WI)A711(L4'D*(8KHSVJ8.W M>HG+?8 >F=78%M>V7<1'$=]@TH5!U(&X'T='\ :-KX. -SCBJX/2P2-PPP9N M&."&!^#>(U5#!RZ-\_!W0(4[?/!PH4SRY9_O!? '\ ?J-_HNQ8.$I/E5CI< M@EF!3Q%61E$727T/)U*3Q!1.Z*5KG\*OOTSC_N"WG_;]"X4M$PF4!LP6:$,J MZG5."?_KPX<J(.ZX\YX&N_-!Y-!,V?<$'9';>=3,@&DEEX28#", MPDYEG95E;2QI<0Z$1=#&$R4EQG* C [)N33:&267PI/L0BBA$R0OJ3-=)SA7 M;LIRH3?A\+V6_Y+F?=.)9WFCJT+@&%V \U8PO[SBHF$:DK3P#P0@7*E31+!T3@#C4;2@5&;"S5ACQ/5,'^4-EEK)5('IC7/>K@2Y(*>X^N M"[=%GBLD:N;(+RI/ PTGJD?=R1/9N#MLQD]T M+Z5+3*&IH"A8(5/F44LI2JE45)>D>:LF'L'+W>D07AYAM5'#:J-G6,@Y)%K; MMG7%<^\K(S8=N!*^L#3Z0=H[KK !HV8[YCB5#>W82RPGM!/Z<5M3_YL9:\9C M[7M:SK.0'>8*4A@_(K(1"[>,$G6&H]DZ@3Q=,V7)?$0$2L"N2 ']?PN$6>INUDT-ZQ8]+I1^,=I6TX/Y16 MIBL?G#P$WU"6@Q=1-R(;E7I$.T3H)@]<1!.J4J30BMT>]ZGP0&1*P79&4S5O M($'KA0PG%LR@:)-P!W=#P"Z%2HH2OW!L$]E@&RXTUI;WLZR#W#0UBB0M-7=# M4-[5MK.C26$MASVG.Y&M?:87:)D\GC8>'^B-[O?XH+?S6,R0")V?Q/S6H"(O MWXV-M'EUGY>/S>WV\LE^1?>!U'R#K>AHOSNA3K?E,[B<>).'I^?">'K(AF%* MOQS0\@9:7QEZDE435M#\%IG_!U!+ P04 " !V@F%4#71VJ2$& !]%0 M&0 'AL+W=O#,1L21,B#);1%%?FC"=$XI O!B+CE(2:*8D' MMFGZ@X1$:>_D2,]-^,D1RV41)0OCC&8W9ZKAG]:J)JVBQE&IB<'*4 MD06=4ODIFW <#6J4,$IH*B*6 J?SX]ZI]?ILJ.@UP4U$5Z+Q'Y0FMXS=J<&[ M\+AG*H%H3&=2(1#\W--S&L<*",7XM\3LU5LJQN;_"OU"ZXZZW!)!SUG\.0KE M\K@7]""D$Z'\@(* M!3O@W!K.U7#N$W!3C)@PCRFP.4R7A--#Y2\A3,@CNK&$TQ7A81^FDLWNX&.F MO%+TX8;$.=$>>BHP-(II^%M+!=?T0<)9C S_[#) MSR__Q;8IO,&?O5760L9\8/&28, M!(NC.87]*(5'W$ <;+%:ANUU3[8&-RQ&*\>1?-QB<@/#-.'5UKSC*H!76^.K M2-P=SCFE$*62IX<_^?I4;:H][L:<]=?"NX3[K7XIO;6O7-$;F"SVHS6D: MOOFLEWRK%Z!]0:B$J?R!E1GP)7ZPN>,:P/I..E.[5*=WK3NF[TCA'R194 M_>_K TG5*L&S."=9)$D<_4@20&(75 MF$3 G.%H);23RB7+!8*(@]>_/(C6P7/.!.8*=!=.[VF:XQ&L?<#N>WXS#SA] MUW/AB@I$GRWU 83(%;-,V[,B]/J>M8XGMQ]@4IYBNXC>UX<%3=%M8\U,0FS$ M(B$Q9+"C;')X3F-DFR-XWG)K,2V[/W*L]H3K.QU>[-=>['^?%Q?-"/JLZI%5 M"GF9UW;O^JO;CH^Y%!+MH[)%V5W]]#WKK/;# $[+]/BM@)O\5U1=S=29U!2+ M!:>+70W#9:XC#J.JFAD_4#Z+Q)KT'#MZCE>I'&.AFGN'4Q%>TV;;)MDPPX1' MLS76->7)NG[I2E"-VHE&%PCMQ+#_I:B1&P0-V_?A+Y+F>,&$XJ)@PK!1)C&J ML)2Y]?B/LLKLK[J[E#U=6.I"=0"VV\3$AL3>.C1$M5W_H+VWZZ_/DJ0SO)XB MF3=L45F&[S70LH@K(LO<@#+74!WZ6^!Z?IMQY&WI_U2/L3G?U,WRMWN50#48 MVPHV9:^^EF8_3NW&=#5P/<2VOC>N9U0FI_+D+QQJ9;1S7!-MPFD([?3]P.]+^ ML$[[P^]+^U@2,7*UYL6E]%,:R:^N MU"7++TOCAI'3C80_#UKD7[D>.N&,-% MVU$W&S^^N_CJI%WE4ATD6ZO30I]J^%9EU N5-#I3V:1.9?7);&Q!+*%_KA M3V /ACUY\3I6S]9OBZ?%D]J:O'B8_$#X LL;Q'2.K"8&?J^XJU8#R3+]P';+ MI&2)_KND)*1<$>#ZG#%9#=0&]8OKR?]02P,$% @ =H)A5(5EFZ/J!@ M?Q8 !D !X;"]W;W)K&ULM5AM;]LV$/XKA-<- M-J#$>I?<)@&2--TZM&F0I.V&81]HB8Z)2J)+4DVR7[\[RI9HUU&+Y>*RR.2NIVA<+5L&;F9 EU3"4-V.U MD(SF9E-9C'W7C<L$+>' V^PFKCD M-W.-$^.C@P6]85=,OU]<2!B-6RDY+UFEN*B(9+/#P;'W_"3%]6;!!\YNE?5, MT)*I$)]P\#H_'+BH$"M8IE$"A;\O[)05!0H"-3XO90[:(W&C_;R2_LK8#K9, MJ6*GHOC(G[]Z>D>OCO\ZNR/":3@NF1@=C#8?@TG&V%'C2 M"/0?$.CYY*VH]%R1LRIG^;J ,6C7JNBO5#SQ>R6^9-D^"3R'^*[O]<@+6I,# M(R_H,5F1QL ><6$K+C3BP@?$74&>Y'7!B)B14U$N1,4JK7#TNLI$R>"D.W)V M!UFD&!F>L(K-N!Z1?XP"Y)K=:7)2B.S3O]M\W7_T;[^DOAN\(#_J_V]&91,V M DYGY91)X_C5>PP _KA?[1R^KHB>BUK1*E2_MM/,<-XH))"ND8O7H,7Z06,\I^&(7>#9/_!UW.VS?2<@Q)2D9D4 M)0"%$5J*&H+!E.9 K>#-Z3VABT5QC^['!4I376LA[\F,Y4RN>U2B]D/?^Y5 M66I@"< ST!R9*90P$P64')0'U4J)2I$AMU'Z_(?ES=/SY]72IL[*[4 9!DX: MKB=#X"238$2N-/H =RVD^,)-D>S@/&F?$\#5E89@$O >BF]BO7G4,)Q,NF.& ML>N/#$XR0#H'.FO?^$ZI&(8K!HE76J90Z[J2SPY\X;A"2]Q4$L^#_@8O1]FE#IQ!AQ20@/#.2 MU5>1&7J1-]H:-\]_04YJ!3!6"ETTY56C4":4_EK0:LOF? #,@_XJZ.U6)>P] MX$,@GQ%Y!RB5EH3 4M<+OH-(>@@D;@DDWIE 6L9# X^58N 73+E%C6 M<"P,H)J4?4"P'Z^7M-!)_,#.WO[M'M18KRO_$R<,(G*<9;*FA0)]\AHJ#0(! M8M%P/NH&%G.1=^X(G"#VK5$(&'X#'&WEC >3OC6*XTE#8WO8@^?K9&9M"NU- M/H2E2:)M %JMBQ+']>-V&*9.#)SY!OC@>2\_#2-H#U*;"T//2:/):!L4&E($ ME/9)?$8BL,"UQK&3A.%W(-;2H["R=7/AA414ZGN#(O:YY@93&T2>=*W6,/;! MS'<=DC%X1.(7T)Z8[=4PV'#RT 1T9(\AI"-H2320I8',YH[0\7R[)H6.[Z6C MQXV"&@EN](.UJ@FP]^+M%6"7__,'2,C*U\0:^'[:P\%)R\')SAR,=2\3-Y6I M?,C#RP\)12ZAS<$$-GFZ&PWW'WM,Y'I?N"3B*;OA587A-BBI3*>\[.-@26UK M:-5F13B0M5JV8]_?A!TW)_XND3T?/-0A?]*JID!AS8=CEU1 K+$782\L&\KA M#>\MA.)HKC(-9+;\6KC'EJYC%-& >4G8U^&D;7:E M_=G57$.AJA]:3CYN.7FW3.H_XL,6KD'F#-@BKWICZ#Q$?]^UL7[6$TLHT/3?2RVKFH^2:04V9F7YP-7M6Y?80 M'B],B[&Z9U'8DR!-J-6+IX3B,6=L(+*I^M;$!'HJNQIL]O]0YDWGL)ZW &T7 MOJ5B:P+@'R1!KZ3F\&WI,+8N!4L&H<*K3_S$ ;MQ<*G;+FZO9 MMQ!I#FE3:- 4^]5 BX6Y8IP*K45I'N>,PB&PO=V]R:W-H965T MHTX;5$4 M?:"EL<6&(E62BI._[Y"ZV*X3-^CNBR1>YLR9X#G''9F8S]W%Q/QJJT M@DN<:S!EGC/]9N.?KS+J)P61OP\N;,[?<;?N6X,3O?X")9*O7H!C^E5YW $4*!B74(C%Y/>(M".""B M\7>-V6E=.L/=[P;]1Q\[Q;)D!F^5^(VG-KOJC#J0XHJ5PMZKS2>LX_$$$R6, M?\*FWAMT("F-57EM3 QR+JLW>Z[S\!Z#J#:(/._*D6=YQRR;C+7:@':["P^+3]?T43A[84J#I MC@>67#F#05+#WE2PT1NPA/A929L9F,H4TWV 7%LB48-T9OH*.(=)GV(PQY$ M010>P8O;P&./%Q\)W$ 5X!&X80LW]'##-^ 6U"UI*1#4"J9,2R[7!N:H89$Q MC3VX888GP&0*=UR4%E/XP_N&!WRV<"-4\OCG:VD^[K5"E=2[0AD#!?DSSA]P M XG*"^]H^0(I?^(I4=INIT")P\*2,224 N,^ M*GAG5-/8J%+0^2%ET/+3AE$?'FC+2@D25.>%$L0HFT0IX8(S+W84@,.AI%!V MK-+5(:0H%6E(-5$:2JAS[Y/K@)9MC:9O'\<)F5 (I:%]IHEBN\QR54K;O80? MOAM%0?SQF[U_1Z8K,0&2 O2'[>2@67>RX!X!S)J@#TG,FGB:B>_A) I[P]&H MNSLU#'KQ>=PE1VV^#K&JWCNHPU?*KK&(+WIA/-H.A[WAV0BFAR6WVS@$9C5/ MW&E4%51*;LT>FS#Z>#!N&NKK^?W? YL=U$[OE0K;R7K0/]L_AK ?7G2/:/-9 MJ\UG[];F:^JD-L^+;6M/O8X1H956.=SZGFA;Z5#0WZG>QWGMM['U@ ;I<$FG M;+:C2LV9;;7-5X+-F/5J))43DCH WY]XK(43)I)25-&QI:)$+#%AI =.EE,% M1KVA//\24"=:*4^8<[,G"]^@_=_?[E]V*KEIG/ B@#B.8*;DZ1,U$+[91Q_. M1_"!H*9Y(=0+4DWXQ7G]:X*Y8(07QQ">!_"@+)U&V LO0GH.P_BUXASL7,9( MB-;^RNG^8:2+U;VLG6UOM=?596Z[O;H2?V9ZS,$ "C#@ &0 'AL+W=O]H-3 7S*3*B4%2 MS;MZJ2C)G%#.NZ'OQ]V<,-$YW'=[5^IP7Q:&,T&O%.@BSXFZ/Z)] M,6;SA;$;W#?+1U1SJTBA/%WI;-3F[2"[?5:^T=W=[S+ ME&@ZDOPWEIG%06?0@8S.2,'-6*X^T>H^?:LOE5R[7UA5O'X'TD(;F5?"B"!G MHOPG=Y4?7B(05@*APUT:3Z\OQD#,.+8S@]N3P=#Z\^G8W@[.+CY?A\>'UV>0%OKLF4 M4[VSWS5HVVKHII6=H]).^(R=((1S*K:[GU/6>43?!\LD*3D'.8$QOJ2@H M3._AG/PE%8Q<8*G2=FM,EU(9)N8PH7/,=Z/A#P<#KNF=@2,NTR]_;O+X=@"5 M40TS)7-@(F.W+"L(K[+*&C<+8H H"F2Y5/*.89)3?@^!_QH09"Z50V\6%$8R M7Q)Q__-/@S!(/FA(I="2LPP%,C#2H%JUMN<4HEG)L>+U>[!"?O3AN_W_3HDJ MLP@P!V@^I.,TE86-FT(\[-;%;DHX$2FZXPT3*2\R&U^2EVRUWPLQ99S3;.>'!&G^-7 _ M/%0OC<^:&#YP;A C<01!_Y'S1QM#$00NFN'>(^ZW>'&<5]H5%M:V\ZBP_MM2 MY?VZROO?7.4NE"=WABJ!@6Q*?6B,8M.BK!C F8(30V#0,#B*4=<*3JF<*[)< ML!2&.&)?V >V0WS8!])VYYDWYH@U9\=;!C@K;3:A.>(&9Y5=M6257V[<@F;F M2O!', MYLW$$.ONM?PKZ/M>E/2@9TOD%42QEV!36Q_W0ELL"R;($S!!SPOCI"&CIQR1 MER1QNQ;7RU\(=IE6V7G^7F([9&W62^*PIOKUZIJP54LP]J)! HW:@>='@YK: M:SE)FW4.8LKQK(G4P-N+^A V.D*TW4M:#(WQ]HQJ.3"P^&,?\?O.A0.$T8LK MLF+;TB?BND_$+^X3QTRG7.K"-F[QN.2U!Y^EF+_[C-^J&0RUIMBUL)S.FM&P ML7.4Q/T+.\9VL X =P"( ^"!P.?!AH;!]/]9]AMKV-6NJ]F'-?(FV&F%.=KS M@OZ@M=&+O#B.MB17X/5[3>Z&7M@/JB3BF]W3TNU[B1^U-_K>7M#[YOO:*YRY MCP?;8LM4R.B2RWMKVM0=N6K"*PS+ K_,"KS%%'.K,)IEU%WM9G>RNRF+NZV' M RJ:N^>1_;K#9"K?$/5N_0(;E@^/AKU\OIT3-6?"3M@9BOJ["4XE53Z)2L+( MI7N&3*5!U&ZYP%&UL[5??;^)( M#/Y7K-SJ5"3:D$!;VE(D8+=W2-M>M]"]A],]#(F!49,9=F8"[7]_GLD/Z!VP MU?:JONQ+$SOVY\\>CZD[*ZD>]!S1P&.:"'WIS8U9G/N^CN:8,GTD%RCHRU2J ME!D2U-QHF?,BZ\;L?I;E6W(S.3<(&W"G26IDP]]3&1JTLO M\$K%'9_-C57XW;UE[9_"5XTIO MO(/-9"+E@Q6&\:77L(0PP9.KG['(I]CBQ?)1+N_L,IM3TX\B#)M9%HX$X.4 MB_S)'HLZ;#BT&SLOXAJ)9'S\J MD/LY'W(\1YC*A&Z6Q34.4"'=3HV"PAOZ/)#I M@HFG7W]IA\'IA0:6,TM+9LS U!)?6N*6)R.$DNG$,64:Y!2H^IA.4%4G $S$ M+D1N10.")((KH.GF&CC@@I0RTV2K:^=@:32:%^_V7)]1>3:IJ]2]MNF^%.5+ M1IT3OQG)6\4C:DPJW5M%Z+E96(DC/A-\RB-&)_9:Z&NF'FR#V78H=7]0EZA7 M(P]C.BHBF:QQ)QK5TG7]2U)YUL%5*?+[4 41BVQ#O!=R':,P=;U_\!F7F$!0 M*]_"6NE;*)HU&# ]!_R6<;IGLO@ 05AO MG;;V*=Q=#R^V:$9SJ$C'=JB)+?VR30QH.PFX MX?0#\%WN]T>C(_A-+E$)=_77OI5)0%2/6^%.^=_$2WDLS<:IVXR/ZXW@9*]F M=Q%V)?">P[3Q)_A^=JG&[YCY6[A$TQXDORW7D'0JI^U@Q?K]\W+K5.Y&=;/SII[-3NKN^W_ M;W]CK4E1S=SRIB&2F3#YAE-IJ_VPEZ]%:_-\N:2+-.-"0X)3,7+@E:2(-K5SN=4X[+BIK0-^GDJ94(=@ U=;<_0=02P,$% @ =H)A M5)3L_K)+ P 7@D !D !X;"]W;W)K&ULQ5;; M;N,V$/V5@5H4,:!&%'5/;0.^!360->+$:;$H^D!+M"5$(KTDM<[^?2G)420W M<5^Z[8NE.9HY6)>.4%D1>\P-E^LN.BX(H M+8J])0^"DJ0V*G(+(^1;!P&R+ HBODUISH\CPS9> M@8=LGZH*L,;# ]G31ZJ>#O="2U;+DF0%93+C# 3=C8R)?3-U*_U:X;>,'F7G M':I,MIP_5\(R&1FH"HCF-%85 ]&/KW1&\[PBTF%\.7$:K.C:[O&1"74O'B9*PC M*#+6/,G+J0X=@Q!]8(!/!KB.NW%41SDGBHR'@A]!5-J:K7JI4ZVM=7 9JYKR MJ(3^FFD[-5YQ1<'VX&=X7-PM9IO%'-9/DX?-XN'N,]PN5Y/5;#FY@_ED,X&K MI]7D:;[4.@.XVI!M3N5@:"D=1<5EQ2>/T\8C_L"CC>$39RJ5L& )3?H$E@Z_ MS0&_YC#%%QGG-+X&QS8!(VQ?X'/:FC@UGW.A)A*:!"_0N2V=6].Y']"M2R(4 M%?DWN,T887%&8?M2?8T!<%TYS'SW^^5]3+/G[Z(<3(^07^K^=G M2D333]#=H,66BK8CK=+:AC6&M0-K]V\$5TL&*N6E)"R1)M"7F!X4Z"+!05/) ME @*I. E4W( &ZYT#07]2EFI._7*\2-@U]2G41<(3->.ND!D>I[7!\+0AQF7 M2@+?O<=J(]/WG3X0A%T2VS91@/J 'WBPTJ=JSF67["HPO2@8=!'7=$.WAV#3 M17V=P$0(#=X(VZK<_&-OID1F,>BZ0I+EI=(MZO"B:VP/^H"-SP#DGVM$@W]M MES'--UH^\R;.A\MNSSZ4/A&1#9@_<.8:NS M\PHJ]O5FEQ!7#6O67XNVEX=)LS/?U)N;QR&PO=V]R:W-H965T?ZG7U2*$F*D+L88$GRR% MC)G&6[FJJ[4$%J1&<52GCG-5CQE/:IUV.C:6G;;8Z(@G,)9$;>*8R9<>1&)[ M4W-KKP,3O@JU&:AWVFNV A_T;#V6>%?/O00\AD1QD1 )RYM:U_WBT6MCD,[X MQF&K]JZ)264NQ*.YZ04QC>'^]:OW M^S1Y3&;.%'@B^HT'.KRI7==( $NVB?1$;'^%74)-XV\A(I7^DNUNKE,CBXW2 M(MX9(X*8)]D_>]X1L6= W2,&=&= JQHT=@:---$,69K6+=.LTY9B2Z29C=[, M1I#^>]D=#,KHGO9G?'][Y/ND. M;XD_&PRZD^]FW.]_'?;O^UYW."5=SQO-AM/^\"L9CQ[Z7O_.1T=#)B4SM2%G MMZ 9C]1'\H'PA$Q#L5$L"52[KA&YB5]?[%#V,I3T"$J7DH%(=*C(71) \-9! M'5/.\Z:O>?>HU>,M+"Y(PSTGU*'NS+\E9Q\^EN#RJGMQ2KV\ =?(B])(W5X> MQ *J<.EWD^>0&G<.UJ=DZG0+"IC,'/93%V:S?O4<=KUIQ(4ESF* M2RN*D0Y!$ATR+!W$:R%QFY-^O&9<&BS$X -$5 U>%NOJ-+QF#J]IA3?!H)(O M- 3$8RH\'MIK'C#3:#I'HE_ET:^LT6?)G$<1QI[ O@3FT>&"F\C)?)0EO_5 M0?ZN>[V'(H-Z.*M%CT%MY5!;5J@>[AR)[1([BPX1HNDI(,])%\NGSTEY)M@7 M2 _'S2U.C<4&*W[WO(:4<"W(' BVSBB[9TN-2V4(SYI,MQ#AWL^V:QD1K8-J MN(T#'EH'/" -1WBXSGFXMO(PW,1S1"F69+0&TZ*2%?%AE2[<,J#7AQ4K!_ Y M!_"Y(H )X'9* L<:WP^9A$]&]'#+B!C?!!1+M;2+'3M9 M0;JKYR]D?]Z8O:3#W2V3P7GV1[[AUC/@QR"Y",C9=V"RK'OV3@"Z)"]HJ2P= MT]W3,=?J:\ 3'F]B\OL #,M_V)S2PBFU.KU'IQH^/:":!=CG-++$<4/D6T?! MN"^]3,WL,USG-0J$DKEU*WJ=J]AA7I_$6]<]Q'5NY,R,X==K*9-V MAY>7%X[S2^DGA-V0M@X-WR95]']ZHO]78WT"3Y!L@/0@683X\?Y8B=JBJU-[ M5_^Y]7GX77"P/@^G''D5HH5(4'L#_]],_:?564@"/2$)/[\Z[0Y/+[*B_=,3 MGQ/O0-TH@9RZ2LP5*D'M*O'3S'DG'-+&,>;J>Z'738YX?QGON%R\[MBK<9*=H R97/%$D@B6Z="Y:N*IE=C"5W6BQ3L]VYD(C MF>EE""P :2;@\Z40^O7&!,B/!SO_ E!+ P04 " !V@F%4X0 HS]0# [ M"P &0 'AL+W=OUFN]LP^??;;1MS&3):Y<7NH^KKKXZN MKMZ>LI]\@RC@+8X2WM3444)CACP-,X)NS7$".Z[VNF=EB8A^N-4 OZH+#H^H#]GQDMCEH2C0Z.O82 V?:VC M08 KDD9B3O=_86%04^'Y-.+9%_:%K*&!GW)!XT)9,HC#)/^3M\(1[U&P"@7K M0L%LW5"H%PKU2X7U&H=#(/).;DOEA1 09]!C= U/2$DT-,F=FVM+\,%%Q M]P23NZ'4$X,I%0@F/,)H[#ES=_;JODSAY1F&"\^=CCT/[.D(O,5D8L^_J77/ M_3QUGUW'GKZ"[3@OB^FK._T,LY,(!0DC_DG*+KP1?/SP"3Y F,#KAJ:<) 'OZ4):IOCI?F&%DUMAW;#" MM&!"$['A,$X"#,X!=.F2TB_6P2^.=1=QA'X-ZN8#6(9E5A :O5_=N$.G7H:I MGN$U;N -292YE @8XCI,DC!9 UW!#%E(@RJ'Y7C-#$]=_MV@87::W9Z^.[7B M6LHT&IU6*75&ME&2;=PEZVP(6V, @L+X318HCE4$9\ITN>_&YA6!IMD\<5!.\UKJW-EG-%LES=9=FM[8 4_6^2"- M\ %,Z]'H/AQOUP,X#(-0P!?*.7R?8+Q$]N-.JK7+8]M_.-7:UY%LU2\\="UC MF3?"V"F)=MZ59O9:/F]N%"0,P3]6PB4)9#^R%(!Y2:S!U1DWH)=A%*D[2()_ M9#\@>ZX+<%+D/\OSOU95 _23#B%&J:8Z+0X9U;RPEZME-S?,>IB+=4=U>17K MMFD^.6;5CG2UW,FP]./1>5LYD19([A#A2M(P:FV9#BSOU/*)H-NL=UE2(3NA M;+B1W2TR)2#W5U3V+\5$'5#VRX/_ %!+ P04 " !V@F%4.BNY2@@# "G M"@ &0 'AL+W=O*?%V#8L MK0AC7$@-0=3G"5V,8XVD=#Q6H$;-J0/WQUOT89&\2F9.!+HL_DE#N6H;EP:$ M&)$\EE.V_HY50F<:;\%B4?S"NCIK&;#(A61)%:P4)#0MOV13&;$78)^_$N!4 M 4ZANR0J5/:)))T69VO@^K1"TX,BU2):B:.IOI5 DQ5^EZIWGE%O>W B*5R)6"0AAC^"V J*VH_G*T?/:<1L8^+ M8SBQC\"Q'+L![Z3V]Z3 .WT%SV5)EDOD>_G^&F$R1_Z[ ?VT1C]M1-\Z>@19 M3!2T-A:W1$>0EQ<0TPCARST2_J+%S10G\*P"18/8LUKL62-2P"*Y)AP+E?6D MCT^J-)3.N$Q(\19_SFO*\X_WIYGBL#\7M=B+1J1ASE,J\\J@(=WH\OGQ#C53'';HJA9[];\.DZ^F MVXU@MV3..)&,EZ7V#H5\H?Z\[T'9SH[=^02[FCD.ORE[5Z'MYA+]=K?>\;AV M%=S^A!)^@*/I<9E[O4."?%ET2 (6+$]EV4;4JW47UBU[C]WQLH4;$;ZDJ8 8 M(Q5J'5^H_P->=D7E1+*LZ$3F3*J^IABN5">)7!]0^Q%3W4@UT01U;]KY"U!+ M P04 " !V@F%4'H*HO"<$ ##P &0 'AL+W=OGNT7./CG>\\5:J1QTC&GA.DTQ?M&)CUA\\ M3X>2*= ;]*4JZ]33.3VHL5:NQMSL8J-O>%-QFN^PGLT#^L[15=>B1*)%#,M9 8* MEQ>M2_9AQH;6P5E\$;C5!VNPH2RD?+07'Z.+EF\988*AL1"$Y=%@; C]@#_=7\.ZG]\)@6L-M]OU(?H'40+!3BMEQL-UC8F[2 M!2J02TKP)\PV"%IN5(@:_H$C1*51L^";X0B3!?VW KLW"C%!&OX]RK2MCU[=\KYE4[%KRT>\&_ M7_+O_U?^\R(=YAC*568_35T<_2J__J@ND!I#?] 0R:",9- 824'3\K4=0&0K MN$/E>D46(GQ>)&+%;?5MPV4J-_5?8U E-QCU&M@-2W;#DW2NIPCW]*.7@G:! MR.".-J20&VV-A:Q5?UCA?5:;154[UA#R8!]C<&I2W&(C]:":$[74JW;#)N;[1LB:.V'^_?=E^T=2 M8-_HV,F=[@UYJCTL8+7Z5 U'3?KL6QYK[GF_HEPIOHY%:)F':,F[JC47^K%4 MB8X-N\XQQ2R,Z:#]^%T2[EL7>[-WO7JYJZ?V'AWB:[5K!B09SWW_Y[HCV2F> M+\/:]S'6W,C^!WGI(:7OVWBTGN4LWO[RZ/[43GAM3]C#Y>'C#U4ID&A)<$J1_/J#M MHO*)*[\P&PO=V]R:W-H965TET[_D]G3@/:FV>[ K1P58*98?1RKGJ/(YMMD+)[*FN4-%. MH8UDCI:FC&UED.4!)$6<)LF[6#*NHM$@Y&9F--!K)[C"F0&[EI*9YPL4NAY& MW>@E,>?EROE$/!I4K,0%NKMJ9F@5MRPYEZ@LUPH,%L-HW#V_.//UH>">8VWW M8O!.EEH_^<5U/HP2+P@%9LXS,'IL\!*%\$0DXWO#&;6O],#]^(7]8_!.7I;, MXJ467WGN5L/H0P0Y%FPMW%S7G[#Q$P1F6MCP#W53FT20K:W3L@&3 LG5[LFV MS3GL ;K] X"T :1!]^Y%0>45O*(X M:W1?['2G!W1?(<%[W0ZD2=I]#8_I"-IS2-MS2 -?_P#?'#>HUM@A0_XJ&9@/8- M4_W65/\?]Z3_JR=L^Z<].6OEG_T_/7E;2N]P3^*]V>''\ TS)5<6!!9$E9R^ M)V:S&VV[A=-5&"=+[6@XA7!%7P,TOH#V"TTCI5GX"=5^7T8_ 5!+ P04 M" !V@F%4(4I"NF0" E!P &0 'AL+W=O&62[4B2)M+U3[L*LI>^E#UP8$!K 6;VB;L_GUM M0VAV%4A4[0N,[3EGYAS$.*@9?Q(9@$3/14[%W,JD+*]L6T09%%B,6 E4G22, M%UBJ)4]M47+ L0$5N>TYSM0N,*%6&)B]#0\#5LF<4-AP)*JBP/QE 3FKYY9K M'3:V),VDWK##H,0IW(%\*#=R.)28%4$$811R2N77M7BUG.M\D/!*HQ5&, MM)(=8T]Z\2.>6XYN"'*(I&; ZK6')>2Y)E)M_&DYK:ZD!A['!_9O1KO2LL," MEBS_26*9S:VO%HHAP54NMZS^#JV>B>:+6"[,$]5-[F1BH:@2DA4M6'50$-J\ M\7/KPQ' G?8 O!;@O06,>P!^"_"-T*8S(VN%)0X#SFK$=;9BTX'QQJ"5&D+U M5[R37)T2A9/A+9. //0%;=>/Z]N'M8I61. TY9!B8S1+T!;V0"M 'U<@,8RH2X!QBQ/; T;WZ:=&O&RAVP'\/%)AT!2;O8=0PR732Y],9 MG'_&IFFG8GJQ35BB#2-*$J$7NS7KZLS>PZUA$K_7K3.X69];]M'$*8"G9A + M%+&*RN87[G:[67]M1MR;_86Z YJ1_8^FN4!N,$\)%2B'1%$ZHYGZLKP9RLU" MLM+,M1V3:DJ:,%/W&'"=H,X3IF9;N] %NILQ_ M02P,$% @ =H)A5,Z5 ME2.5! HA !D !X;"]W;W)K&ULO5AK;^)& M%/TK5[2J$HG&;V.V!(D 24@(1=B[457UP\0>P(KM86<&2/Y]QX]X(1Z,U:J5 MHN#'.9=S7S-WZ.T)?65KC#F\Q5'"KEMKSC=?%(7Y:QPC=D4V.!%OEH3&B(M; MNE+8AF(49*0X4G15M948A4FKW\N>S6F_1[8\"A,\I\"V<8SH^PV.R/ZZI;4^ M'BS"U9JG#Y1^;X-6V,7\ZV9.Q9U26@G"&""'E-;R;!=4M-%>$(^SPU@<3'#@]Q%*66A([OA=%6^9TI\?#ZP_IM MYKQPY@4Q/"31^&XRA/E@X>/"HHHXSP!PC^S!T,O%[KZY[S+ZI+GO,OI# M<]]E],=_E_?I/PZ=(IJK[#"][# ]LV>>L#>GQ,)'VR!,5C!@#(N_ #ST)NM"HR)3[SJ.?2@S[S<9T+*L M"G L 79,K5L!WDJ II@_*L ["5 W[$X%>"\!&IJF5X 3"5 SU:K&!QE0LYP* M\+$*U#1-M:O>3'.D?8!T'-6T3Q:&61:&65L8XAIQO I]F"/*$TS9.MR &/7@ M@80)AY$HG(ALQ!#& 24!N"C"##SLKQ,2D=4[N"3:IL,5@S^?$7%&]^@P6.1,Y%+C'=B1<,!BN*<<9KD$.G%./\CTO.HU-)8M$HGSNE M"C3,FMAV2W>Z9]S)@Y:VR3MX%"4,9:>*MBC0PLL+3B[A"-@&CW 4R=;0;D7G MYQ6LBC D#C^>-30]:^@H(IKZ8Y!4:V-R*JO3$+V$45CK?F'ZJ D&PO=V]R:W-H965TR56GO'D[W8)(!?'5B MUG9**^V/O[$3 BT)QU%I7R!.YK._;V8\8_?60CZI)8 F+PE/5;^QU'KUU7%4 MM(2$J@NQ@A2_S(5,J,:A7#AJ)8'&%I1PI^FZ@9-0EC8&/?ON3@YZ(M.\QN;%/5LLM7GA#'HKNH IZ,?5G<214\X2LP12Q41*),S[ MC2OOZXWG&X"U^(/!6NT\$R-E)L23&8SC?L,UC(!#I,T4%/^>(03.S4S(XVSWUCQ*&9&%82"_\EBO>PWN@T2PYQF7-^+]7#*_I)U M8>LV2)0I+9("C P2EN;_]*5PQ [ :]< F@6@>2R@50!:QP+:!:!]+, O /ZQ M@* !-;WN;.LIT=4TT%/BC61QAIG,P\V7!:-#F:IR:RIEOB5(4X/)D(#:9,O M9/@X'4^NIU,2_K@=CB=7#^,?$WP]H5)2$WSR>02:,J[.\.WC=$0^?SHCGPA+ MR<-29(JFL>HY&AF9>9VH6'V8K]ZL67T$T05QO7/2=)MN!3P\ MZJAX^.AWL5 M\.N/P6].)N]@$,M(-LM(-NU\[9KY[N@K[GBMB!;D*OJ9,0EDF"FT4@K4.9E@ MF1)S$E*UW'R/S\F#T)17:<\7\^UBICP]#UJNW^XYS[L*]XV:7;_KEE9OA+1* M(:V#0L9IA#528<;%D#^=F31;"!&O&>*1*7P*9C6O(/43 GNF,&^=]D\(:IEIBN\XHK^<:=O>B^\9Q>?IW*_9(G:#+ M4M#E"8*NE6:)W0LV])@F> 8R21*"Q)Z3DNMDQ<4K0&6+N=P7TZ[CZ;G;ON@> M9/IM4V[H7(/\?]6EF/IM9M92VFG5WBF%$<]1=C<335\(9W3&.%;$2E^-BA5V MG?7%:]52V_8>[W#S^0TU>U10"-YP[]1RW[8;[W"_.;#)"IKWP//L%$I7N37T MJOI)+;-MN_ ^TB_(+R09RQDO$04I@SK+A'-!EOVV6\4]K, MALR'=G/H572>]Z5I5&'DOS>Z/L;HYC^6RQWD[)ROS7WKELH%2Q7A,$>4>]%! MN,RO,/E BY4]I9K/9&X$3^%2$9TG"5,/ M)R#DYGC@#1XWOO)U;.R&,Y]E; U78&ZR2X4KI[(2\012S65*%*R.!POOXY). MK$(A\8W#1N\\$QO*K93?[>(L.AZX%A$("(TUP?#?'9R"$-82XOA1&AU4/JWB M[O.C]<]%\!C,+=-P*L6?/#+Q\6 R(!&L6"[,5[GY'*(4N_I)-*>L. M2)AK(Y-2&1$D/-W^9_=E(G84O%&' BT5Z,\*08>"7RKXSU4(2H6@R,PVE"(/ M2V;8?*;DAB@KC=;L0Y',0AO#YZFM^Y51^):CGIE?2 ,D(!_(RY->Z+QJSK[A;V@P]YO4D8;+D1;9K>:PT+3\L3= MW!N.Q\',N=L-MT4J\*C_5&K9E*)T6@L]P1Y4V(->[*=(-$;Q>W*6AE)E4A4M M]?@_NE)SK!R,.QU4#3YG6URV^.&I6M^*X"P;;,?\#04><33-0F9CJW( MN^'[J>L>MB5SZVFTDX )G4[:$S"J\(U>7+Q1PY_G37RWW>&XA ME2(FS5P$00>8:05FV@MF"2M0ENH4W$&:0YO?:3,+XV&[6\^MB=GM=?PE VQT MVW4"<+ 14=-L*SVZS>!]V@%B9SIXSXO>L/N]"+P&@L"?=B"@-0+ZC%;<<6W; MTLZ85@BT 8'Z7?3CU=SI]9/G%D.6JS"VE<@4#[$IA9 ALX>75B1^6T_X00>4 MF@J]UW A^0_WR:62(6B-PU<#0\S%][/$]A4RPR.;>0YU>C5W>K]"GARG[XJG MW, '@<,^PHV?^+0U6TW6]$=^UR=4TZ;7SYMES(CB&L(XE4*N'TAQM-6[*7OQ M?/%J/O7Z"?5IDNP8:4U#DTZ'.&Y&\)RR1RO!_BV^,(!MR&9&#O["E6P?O'F<3\H":NN]@6%,S[:?FT^)< M#FI[O$5T.N;9V[04K:F9]E/S:ZM:FG]2U>FH8UK2FJ]I/U^_;5'W.//<_56M M69[VL_R%Q%HE&> /HL5: 5BJ?*.BUO1.^^G]U44-&D6=!!VG3UI3/-U#\6]; MTWYG_OZ2U@. ]@^ :\4B2)CZKHL96"S)!4O@C>I:\S_]%?Y_05W'S;JZ776M M!P/=,QC>MJ[]SOJ^56?G @-Y=5UU-U3E3 M:YYJ/#2O4-4]&F/.U/;R9[LP,BNN0VZE01(O'F/ OE!6 -^OI#2/"^N@NH*; M_P]02P,$% @ =H)A5*WC12%% @ 5@0 !D !X;"]W;W)K&UL?51=;]HP%/TK5U$?6FDC(;3;6H5(?*P:4H&JE.YAVH-) M;HA5QTYM!ZBT'[]KDT9,6OM"?+^.S[GWFF2O]+,I$2T<*B'-,"BMK6_"T&0E M5LST5(V2(H72%;-DZFUH:HTL]T65".,H^A)6C,L@3;SO7J>):JS@$N\UF*:J MF'X=HU#[8= /WAP/?%M:YPC3I&9;7*%=U_>:K+!#R7F%TG E06,Q#$;]F_' MY?N$)XY[)D2QO_"OLV- L@:8U75 M%A.#BLOCEQW:/IP4Q/UW"N*V(/:\CQ=YEE-F69IHM0?ML@G-';Q47TWDN'1# M65E-44YU-ETHBW )GV&\7LT6WUVFXQAR8S.&.LPT7W')*H7A3M7Y;(CR@8);LM<&B$92ZHZ0E132<3]$R M+LP%G &7,.="T)A,$EJ2YTLC61?\2LE$JH[2OXI37P:X[5!O5O^ ,36E&K^0%F M,E.Z5MKK?4OX@,>@XS'XD(>?P,Y-P T@8Z;\7XN.&-<>PSW$77K5NT["W>G% MXCC%A\-JVJ_.1ME:0_]L:2'C]HE4+Q0M#VM MX9:Q^RM)_P)02P,$% @ =H)A5$/-X-Z\ @ C 8 !D !X;"]W;W)K M&ULC57;DIDDQ@:E4*4W@[GJ+_F"U:RT+(K'/DV<:J;CMW#H0X9+DB9KQS5!_#F@<":B7 74KM&!F90V( M(IV6X!L0QENCF86MC8W6:B@S77Q40I]2':?'@=P?G8!9T 9S&.>2\(BV7*5YF20 MW;#,WROR^T?R>SZ,.5.QA"&+,/H(X&HQE2)_JZCGGT0<8'@-=>\2_)KO'2#4 M___PV@DZ]:K =8O7.(JG;U=(B?EH+T%;"1;?+XN@FW*AZ)_R;,)9)GB4AX4Y MYXHDAPI:Y&O:?.:2KCN!OK,M=[TK\H#3S8[3!RF-2DKCI)1G015>17S#3-/7 M),D1^!(TZ0R%>K>2\#6GF;[EZA#S C[8(57W;NN'234K4LW3]7T8P1RE@N$V M,_P:8[I \?M$]X(*/3B)WN=,*E&TQ(B>"KX2*.4E?!%<'OS>@[W*Z^[L]6?? MR[N]VVN0NW.Q4Q0K.^\DA#QGJK@1U6XU4KMVDGS:[^E16TS&?S#%G!X3L:), M0H)+#5F[OM&<1#'["D/QS(Z/!5=Z&-EEK'\7*(R#/E]R/4)*PR2H?D"=OU!+ M P04 " !V@F%4$EEGN90# -#0 &0 'AL+W=OL%1QD2+) ME@/G,[X_+HJ'8F94L9&(O_.%7@^8B M5L4OVE98ST'S7&F15,' (.%I^4^?*B$: =@_$D"J ')J0*<*Z!2%ELR*LL94 MTV%?BBV2!@W9S*#0IHB&:GAJ'N.#EG"70YP>W@G-4( ^HJP\ >7P8H_?O/J!W MB*=HNA:Y JSJNQH(FF7<>47F2TF&'"$S9O,+U,$?$?$(MH2/3@_W7H:[($NM M#:FU(44^_TB^%Y6SY\H_HI44REI=F2XHTIGSLQE&881)W]TTB["@@J 3U:@7 M7#LUUTXKUS^94I=P*.9YDL=4LP7L93C7GG=WA0 M*]/K7*9T>TV)DL;G?9D4B5EGG9WT(G!?Q7X"2G'9R=K^(S&VN5K]FP M$ +OE'U5+#"/1-T]5=Q&KVH^%&ZI7/%4H9@M(8=( X/Y20 M;34Q'7'\!#?\#4$L#!!0 ( ':"853 ;$>X80, M 'L* 9 >&PO=V]R:W-H965TB9V52KJYM6\PS7"!QR5:8JC<+Q@LDU9 O;;'B&*4& M5.2VYSB172!"K7[7S#WR?I>M94XH?N0@UD6!^.L0YVS3LUSK;>*)+#.I)^Q^ M=X66>(KEE]4C5R.[9DE)@:D@C +'BYXU<*\3UP!,Q%>"-V+K&;25&6._]&"< M]BQ'*\(YGDM-@=3?"Q[A/-=,2L?OBM2JU]3 [>/$]5P 1Q MCG21X"S!$I% MUWFGVM$>U-J#5NT3=7R-U-?S2N@2!@5;4WD!STRB1C?!H0)EIK/GIHR*MJ." M,#XB-*R%AJU"/Q%*)/YXIS[R%,94(KHDLQS#0 @LQ04\87V25BZX)'^1.;L> M,2[ M+6)'\U6M^:I5\X@)HW:*#N9NI4+S)>FNQ$PU^=?>8W5LW4'-3!]P][\T+T>E7W0.TW9EMTCOB14 M0(X7BM*YC)4B7G8ZY4"RE;G[9TRJ3L(\9JH[Q%P'J/<+IN[_:J 7J/O-_C]0 M2P,$% @ =H)A5.+0;F;$ @ ( < !D !X;"]W;W)K&ULC57;3N,P$/V54;0/(.V26YNRJ*W4"\M6@H(H+,]N,FV\.':Q M'0I_O[83LJ4W\=+X,N?,F9GFI+L6\EGEB!K>"L95S\NU7EWXODIS+(@Z$ROD MYF8A9$&TV9 !?.C($C\@E#N];ON[$[VNZ+4C'*\DZ#*HB#R?8A, MK'M>Z'T-P@O1AT;[P+^ M4%RKC3782N9"/-O-).MY@16$#%-M&8AYO.((&;-$1L9+S>DU*2UP<_W!_LO5 M;FJ9$X4CP9YHIO.>=^Y!A@M2,GTOUK^QKJ=M^5+!E/N%=1T;>)"62HNB!AL% M!>75D[S5?=@ A,D!0%0#HFU ZP @K@&Q*[12YLH:$TWZ72G6(&VT8;,+UQN' M-M50;J%+!,IA1*1\IWP)@T*47(-8P)40V9HR!B=CU(0R=6H0C[,QG'P[A6\6 M])"+4A&>J:ZOC6Z;W4]KC<-*8W1 8QC!C> Z5W#),\P^$_BFX*;JZ*/J8724 M<8SI&<3A=XB"*-PC:/1U>'!$3MP,(79\\0&^X[T_DJ#5)&BY!*T#"8:$$9XB M$ US7%+.[?3,V%8HJDK@G MZM/,*YG^AMD4*)?.@Q6DU@JJ-[ Y;6Q^X-QMZWQH[+]RZ_\TU;?CADCS)U7 M<&$H@[..T20K/ZXV6JR9^(8RMU1N;H/DH]O\!4$L# M!!0 ( ':"850YQ='>C04 #<< 9 >&PO=V]R:W-H965T[<)RN@]_3AKB- ].(L$+FH>9\7^FGA_&GKTP_B2VE$KP,XX2<3;:2KG[ M;%DBV-+8%Y_8CB;JS2/CL2_5+=]88L>IO\ZW;+YS.V MEU&8T%L.Q#Z.??YZ3B/VGXWL5!&-:"#3$+[Z M>*87-(K22$K'/WG043%FZEB^?HO^6Y:\2N;!%_2"13_"M=R>C;P16--'?Q_) M;^SE=YHGE D,6"2RW^ EM[5'(-@+R>+<62F(P^3PZ?_,"U%R@&Z+ \H=4-6! MM#C@W %GB1Z496DM?>G/9YR] )Y:JVCI15:;S%ME$R;IUW@GN7H;*C\Y7S%) M@0O&X.KKU^6/ZR]?P&*U!->K^\7JZOK\RR58W-U=WM\I@^M$^LDF?(@H6 A! MI0 G2RK],!*GZNWWNR4X^7 */H P ?=;MA=^LA8S2RJ-Z4A6D.LY/^A!+7H@ M CW#7)P47"< MQ2,M\19!L(_WD2_I&BQBQF7XKY].Z*92'2(Y6:2T'Y_G8^3:9#JSGLL)-)FA M"70*LR.AI!!*C$)7BB$7/N>O8;))E>X3V:3Q$,0M#8X@PM/FL9UB;,BD M$#HQ"KU.P"UG 56%_48%]7FP!:I'P9(^*YCO%)HE^.N&Q@^4_VV8YUXQG-UXM4^SBEHD[+4:>&D>^R*A)N4HSREI+;,.=Z),;M#4U M[>$3M)%V=BW#*;$GE2^\R^I898GM\-U8DXRZ59&HWNFVW<(DJ,D-S>CNF%C@/W 3)F&\CWO--0O-P!U8#G,P:&?U M$"9E&K#03-BG<$6S:712-9V3&\SWWU^I??OXDLF5>=@M6?DQ[P0AI'B,S0GO#*(]SU#G. MM+I(1_7%[Y'5L4K-9F1F\Q 4Y:&.$.-!5!7:8#6QW1:AFNW(S/:^&*J3?>)5 MUT&HSG5OBEH4:JHC,]5[3*QA!,*:T=C,Z&'-UA$,=38;UEC&9BSWK$E_ &%- M9?R>5.X(UF,]A$L['68LWZIN2_JM?;#F+38CLC=N\CA'N/'LZG("U_44G!8L,IC?N"A6B.DO?D:$%\_\!4$L#!!0 ( ':" M850RXY59B ( + & 9 >&PO=V]R:W-H965TDZI(Y6I5VO#9P0JX[-; ?:_?K93AK1$!Y]D.RY>90&@T%M)F1PXA5*;*]>5RP)*+"_Y!IC>R;DHL=)3L7;E M1@!>65%)7=_S8K?$A#G#S*X]B&'&*T4)@P>!9%666+R/@?+=P.DY'PN/9%TH ML^ .LPU>PQS4\^9!Z)G;9EF1$I@DG"$!^< 9]:[&?1-O WX3V,F],3*5+#A_ M-9/I:N!XQA!06"J3 >O'%JZ!4I-(V_C3Y'1:I!'NCS^R_["UZUH66,(UIR]D MI8J!DSIH!3FNJ'KDNY_0U!.9?$M.I?U%NR;6<]"RDHJ7C5@[* FKG_BM.8<] M@=\[(O ;@6]]UR#KI=HG1K.N (4 MH^_H]OY^\C*]NT.CV01-9T^CV>UT?'>#1O/YS=-Z8\ M1],5,$5R@A<4T)0IS-;$#$=2@I+H? (*$RHOT!DB##T5O)*8K63F*NW>>'"7 MC=-Q[=0_XG0"RTL4]+XAW_-[S_,).C^[^)S%U;6W!^"W!^#;M,&1M%_7_04@ M: &!!81' -JNWU5MK8JLRER=[3 (XS1SMQVLL&6%IUA!%ZM6Q9]88=C-BEI6 M=(H5=K&B0Y87QMVLN&7%IUA1%RL^8/EIZG>SDI:5G&+%7:SDD)7TCK#2EI6> M8B5(7P>D"M M-5<@NM#I 3J*TZ0;W6_1_2_1,]WPK[$0[X2MS:6NF.I"]P_^ MI7[/#_K_L=V]!F1Z^2\LUH1)1"'7.N\RT0E$W1_KB>(;VY,67.D.9X>%_J2 M, %Z/^>Z+S43T^;:C]3P'U!+ P04 " !V@F%4;V<^*3 " 1!0 &0 M 'AL+W=O:CA3+4 M1BHMTR8Q5K6P/;O)36/AV)E]0^'?SW9"U&WMA/82?]US[CDWOI[LE'XR)2+! M2R6DF08E47T=AB8KL6)FH&J4]J10NF)DEWH;FEHCRSVH$F$219=AQ;@,THG? M6^ITHAH27.)2@VFJBNG7&Q1J-PWBX&UCQ; MH31<2=!83(-9?#T?N7@?\)WCSNS-P3G9*/7D%E_R:1 Y02@P(\? [/",._L&MCQU$ 66-(51W8*JBX;$?VTM5A#Q"/C@"2#I"\%S#L $-OM%7F;2T8 ML72BU0ZTB[9L;N)KX]'6#9?N+ZY)VU-N<93>*T(8PP>XNYVM;]=V>;WB$KW7]#Z)A3S3T1*,C1-]J=%636[A# M>ZO.X8ZS#1><7L]A5JE&$JQ0,,(<2,'M"W6-H(H6 ^HJT/E;-->^+2N)9_3 M.(ZL]><#8D>]V-%_BYTW6J.D0U)&?TL97USU4MK_=R#H8W+YA]YP[\*ZQ^(K MTULN#0@L+"P:C"U>MPW8+DC5_@YO%-F.\-/2OEFH78 ]+Y2]Q]W"M47_"J:_ M %!+ P04 " !V@F%4G_5'$/P" !P" &0 'AL+W=O2XLY J8P:G:NGKE0*6.*=,^+33B?R,\=P;#=S:K1H-Y-H(GL.M(GJ= M94R]C$'([=#K>KN%.[Y,C5WP1X,56\(4S,/J5N',KU 2GD&NN M3V)K[PQ^<]CJO3&QF2QWV'&AXQ(&6#O2S#D'I$+A$"V8NK4MFV&B@Y)8H:XUH M=N"T<=Z8#<_M5YP:A;L<_W0;@VAR>?=.PUT@DK1P.$%1_ *(1N >A50 MSP'UC@#=K$ QP_,E$>Z3P#.6KH8ZR0N@T '9NMV,NG&$R6SV9:@SHG%E=, Q MK#B&C1RGJ53FS(#*2I)X*,B&*YNP%]8S MCRKF42/S>VF8^%C9Z)UH-(K?TJLQ"OI!/;]^Q:_?R._174"0$+;!8[ $O#+M MI?QZ')SH:ZPA161U4NYN'HIM35I8IR_ %%9OZP^^:\5OYA 6 "0F65&R6+P) M>ZFK^DDS4E0B]79(M%>#="!47 D5_Y]0"==SN03N#QY((; M#K476'.\L$W#DSH%/G3KG=2EZ^]=WAFHI>MIFK@4BDNP6JW:YH7K%F_6Q]A. MB^[W"E/TXFNFECS7F/T"(3OM/AY55?2W8F+DRK6(F338<-PPQ5\"4-8 ]Q<2 MVT0YL0&JGXS1/U!+ P04 " !V@F%4W??4V+L" "_!P &0 'AL+W=O MBHVOJP%D+45E

W8P][GC2>Z*92YX4]&-=G M1+/1=ZYO,3"E+SE_-Y&$]]@*3"!BLE+$@^O(&=\"8<=(Y M?G>F7L\TPMWQI_M76[PN9DDDW''VBZY5,?8R#ZTA)PU33WS[#;J"8N.WXDS: M7[3MG@T\M&JDXF4GU@E*6K57\MZ]B!U!B \(PDX0VMPMR*:<$D4F(\&W2)BG MM9L9V%*M6H>CE?DJ"R7T*M4Z-?G.%: 47:+9_"]Y(4JWER%"##%%97:("_H# (\J.!-8H. M&.E8H:NJ5A5;E?GWOTUP%L8C_\W!BGI6=(HU<+%:5;++BN*AFQ7WK/@4*W*Q MXGU6D&(W*^E9R2E6[&(E#E:6NEEISTI/L1(7*W6PXH&;E?6L[!0K1?IOCU0! MNBOF"H0+G>VCD^C YQOVZ.%1]#-7A*&\T=L53&N@95,B9O=I33YTYU3.O3C< MBY+A*')'P<'?-A(<#3,#*:_10Z7K!ZG0>7CA[ /!'OP2XS [0-]I8O@H?:ZA MNE[T1E@#IG$=?2NHJ=8@$.^;6[O,=IO;P)T?[VWY-,#)?_']G79LCK9'(C:T MDAJ3:UEPE6J]:$^+=J)X;3OTDBO=[^VPT"_ %0 M2P,$% @ =H)A5)\>X01V @ #P8 !D !X;"]W;W)K&UL?95-<]HP$(;_RHZGAV0FC8T)D&0,,WRUY8##!-*00_GTEV7%I"^: M=+NLZ\6[Q(=A'Q3&:*&#\YR-?0RK8M'WU=)AIRH6U%@ M;DYV0G*BC2GWOBHDDM0%<>:'0=#W.:&Y-XK)\C$ M8>AUO,^-9[K/M-WP1U%!]KA&_5*LI+'\AI)2CKFB(@>)NZ$W[CQ.!M;?.?RD M>% G:[ WV0KQ9HU%.O0"*P@9)MH2B'F\XQ09LR CXU?-])J4-O!T_4G_YNYN M[K(E"J>"O=)49T/OWH,4=Z1D^EDY*.NPTE >"D@K -"I[M*Y%3.B":C2(H#2.MM:';AKNJBC3B:VQ]EK:4Y MI29.CV*A$>[A*TR?ELO%9CF/-VL8QS-CQYM%_'T>3Q?SM3F/B93$5A"N9J@) M9>HZ\K518#E^4F>;5-G""]DZ(2Q%KC,%\SS%]&^ ;Z0W^L-/_9.PE3C#Y!:Z MG1L(@[#SLI[!U9?K%FRW*4O78;L7L*W5:.'?-?P[Q[^[P-^@Y"!VL)(B+1,- MK[:ZN3Z>*VD[Z2& E!Q5BZ9>HZG72EJ5,LG,"PY/6T;WQ#;-#6R$)NR^C^X? ?B+__8R(?B.BWUZ83*+*!$NA($?3_!H*E%2DYR2TD\R[QMV[ MUE*:0:-JT,H:)XDL,07"19GK[=*%*06&+5K\UN,^W& M59/_<:]&Y9+(/&PO=V]R M:W-H965TO/>LE00L82JOMBP%-^LA$RHQD>YMM1&,AKFH"2V'-OVK(3RM#>= MY'L+.9V(3,<\90L)*DL2*I_/62RVISW2^[YQR]>1-AO6=+*A:[9D^GZSD/AD M55)"GK!4<9&"9*O3WAEY?TE\ \B_^,S95NVLP1SE08A'\W 5GO9LPXC%+-!& M!,6_)S9C<6PD(8^OI=!>I=, =]??I5_FA\?#/%#%9B+^BX,G!9&'[.X#P/[!!S;L1O@LY?@:1_L82M\W@V_IL_@^*WHBV[TG 7( MG>1PT@"_/!S^DW8+_5HYUZF^1/K*<&.H.*SJ"3SAV6/I7)YT+M"7RF<<9. MX"SXFG')PA-DI31<,QV)L,GV@SU20]<9-',:5IR&W9PBAM8F?L$);MDFDT&$ MI0K0>&M)$_C[FB4/3/[3X0^W4N;^D@&6>>[4%H C3)TBH8Z;0K>0[NT88.1[ MMFTWF\"K6'F_P&K''6=/3&)W*=RR8++@FY,,11Q3J6"#NSGA1KZ%7G^'+W'Z MPQ:/C2JZH[>,HOEH+XK&?IL)_8J3?T 4.?;_BJ)QI6SEXA_2T>_;I(5Q7=7) MVY9UTE376P.R+NRDN[+CFFJVY@$LJ-0IDRKB&\!9'#X*GFJ8LR>! M-^Z/;-]MX5BW M+="UX]X)R3_3;@N4YKU-6-@'1W@@5]-A&E#(?:TSDKDP;- M\["_QX7L,;%V9GQSY[NFHXD&+33[V/PB-EXA\&>'5 MDTGS ;Y?"1S]RP=SDZ@NL]/_ %!+ P04 " !V@F%4AB]ON]L' "G*P M&0 'AL+W=O$8 =L0-98 M?N0QM 7:)'T4H4!AW;LKJ=$/E1Z_0X?3:AI\H2<\Q>QA-:'\KI-SF?LACF*?1(#BQ4GK#'ZX\E*"=,1G'V_B MPC40JCP2\DW<7,]/6I:0" =XQ@0+Q'_6>(B#0'#B,\K<^IV.G-X1A "WP'HP_33[>?AV/P?GX9GQQ?0\F'\]NIOS%#:(4"0\# M;T>8(3^(WX$WH /B):(X!GX$'B*?Q6W^D%_?+TD2HV@>'W<8ET_,TIE)6P:6?Y,HB, O3:P+1M6D _UY#=DSQ0C/MBQL^# =@;=OWBE[U0IV8<[5,N=Z:;DFCG[UNQV)0CXGN,! M?(%]ELB=N-617V8+4:EH)EXW%4^ V_H46OSON+,N^F-YE-;G)/&.3Y:90UN)N'I*$/QNBE<]0X/_+QWT';ZI"3#:15USX08UTW5RZ M;K-T8$)]:>PY"0*^3< *T\SP[X0P>:"J6H1L@GY!*@<>]0;50XW Y]1D. :DX][)9,[9?_J5;AAG=OT

L7[)<5K51KD*@VT*HWP@C\1Z@C;/R:I.A.^T=O@$WKVPR0$9U&4 MH&!G1"R$!N-P%9 7C-OB;L:5K))9/WW7.K*L/S0 "V5=5D_JXD4E(*1'\\H M%F]X4;$[4N[X&LO+N8NFKS$\+*2)4.]-9,$V8J>/\)H7/*O43?[ZA$70_5MG M$@7WT!SO?RW,C>5,W4H#R&3+-G=/J( =FB-[I0[9CC(RG$)4: ZIE9/>D&B= M;6"YKXL ME )O[Z8/O,HR<1.%A] <$ _B)F7DLSVWUE$4K$%S7#NXH^A%L[,2@3N(])1N MHZ*FI%O.OUM_#,I94=6XOE.;3]L*S&P]F&EM^25M=PGO66.*GG#A=9KD MDH6T0OYB_K.)KQ2SF/D.CCQ[4/S[T295)!!6D^R:IU!XZY'X?L/WT0L8!QSJ M(VFCZTCD3*()9.QP"C7MO=?#6?576)NSA"T)39,$O3<.[8IJ&'J>5>]G"IEM M V3FI:A6L7.IF!RWH]A6&PX3F*[%=L0\)12^>(=84W$[E-)!6%3MR'%JU%)0 M;>OQD*O"XUOF&.UM/E825435BT1T)M)88E*-RWEWEL).6Q-U2Z& UC8H4W^W MCZV1'Z#' *>Z7G(^K%'#;DE#Q]4IJ.#=UL/[*S8MCTN_,5&U%7+;>Z](Q\\K MGV9$3>V\88,TT&ILZ-D*G6T].A^\63EL$,B@6ZD2 D>?$-POL6CM6J]/.AP% MR4Y#??GK!MRV !2Z)X^\@O8S3Q8!L^IS0(-:]"QTM_??WEXL<"'OK-1'+X3MRAQO"6!FJ-0V]D[:K\N MK(X:!.H:>)6";,<(LK.?][<1UI951O%68;'S?\+B\P9I#+#845CL[!V+F^// M>8,0)O''50CL-I3D!^[=N.4.,AS4?OI3(.^:@_RA6S<-HLD>GWGGQE6X[^JA M=0\1URTWN+,RJ6Z)%'B[!N =\_P"KWV2Q,'+MA'T$,VY$BQ-!2UH')'<*]'TWV67ZX"4W?O8/J*D'_9((U!R'<5DKI[ M_]C[NCSALD&@YO++55#MZL'Q?D/R4U5 9 D_VY%S%82Z^X?07SJA(N7;22DU MN]%32.KID52<&?'G:>F4Q3(H#S\!'H6W6S4VL::G8,_;>VW[.\^\2&FKOXYF M*G8*!PK%$=9/B#[YW"P!7G :ZZC'0Q[-3H5F-XRLTC.&CX0Q$J:72XPX8H@! M_/V"$+:]$<<6\[.YI_\!4$L#!!0 ( ':"853=6HW1! 0 !40 9 M>&PO=V]R:W-H965T("EXC'J>7SD*IY(/GI=,%1C1U18*Q?C(3,J)*#^7<2Q.)-#1&$?<" MW^]Z$66Q,^B;N8D<],52<1;C1$*ZC"(J-T/D8GWI$&<[\<#F"Y5->(-^0N?X MB.J?9"+UR"M10A9AG#(1@\39I7-%/HP"/S,P*YX8KM.=>\BD/ OQD@UNPDO' MSQ@AQZG*(*B^K'"$G&=(FL?W M0IWYD9[MYOT3\:\5K,,TUQ)/@7%JK%I=-S M(,0977+U(-9_8R&HD^%-!4_-+ZR+M;X#TV6J1%08:P81B_,K?2TZ3S.WI>WBB M?$G-)[A*]%I.TW M\+Z8C84AT!5*'2@PHTS"2CL5(4&9.P[$#$3AV;FD<;8^7$H6ST$MS#HF0CAA M,82"'?6XR>47ZSN+!3OKEC??/X-=%)0+N$LQD:+VQ0 M^^ 43K[J:YT#AG9 8@"@!9'9>A:*W9)BUXKX)+B.$<[4IHZ-W;;=4GBW KTP-*7LYG4'X3I':3#48&D"NL8V8%\EQ ;H5Y)J'?8APO9BH48AW54 M[!!^@V\N2BH7_SL,=? EV[TKLV6_)0B'%_\)PJY[3NJ#D/A5_O;M8:BI!+[. MX$>'&]FI$>1W!UP#HC7B\ISU*PC[.H-*9_ +4=M@W&J[0>==K9+C#?<%5+6% MV(O+$1'?@$3<=JM>S-%V^UJJ\D+L]>6@9-& 49,M"A5'V^VKJ$H5L9>6/Y!G M"D:[B:;M]EIEHBD\T+!J7V]5]XB]>!6G@C''%<;%0> FGNI)?5H_/#55)8[8 M2]/QJ6G4@-C.$:!39!;01]*0;JP9IBJ Q%Z^K!EFU&#<]MT+^[:LJA^QE[_# M$\6H F,!7+6.6=2#E;]K97 MIJ/[:7ZH>]Z\0ZU@\H;YELHYTZ(XSC2DKSDX>5+8#I1(3!OW+)1N"LWM0O?M M*+,%^OE,Z%:N&&0O*/\)&/P 4$L#!!0 ( ':"853)_5-6[ ( #0( 9 M >&PO=V]R:W-H965TLTIDVTG4VIYZ[HRR2#'\H8O@>F=.1S6;MN,[VX4)663*++B=UA(O8 KJ>3D6 M>N96*"G)@4G"&1(P;SM=_[;?-/$VX!N!C=P9(Z-DQOF+F=RG;<I(D[@[WJ+?6>U:RPQ+Z'/ZG:0J:SL-!Z4PQRNJ)GSS M!4H]L<%+.)7V%VW*6,]!R4HJGI?)FD%.6/'$KZ4/.PE^[41"4"8$^PG1B82P M3 BMT(*9E37 "G=:@F^0,-$:S0RL-S9;JR',O,6I$GJ7Z#S5>>0*D.^A3V@X M&C]\_3$IP-T>7&%+A!AZ"GC*XE9*ENNTH3-L6Y2DNL5Y((3Y/P C3A3 MF41#ED+Z%L#52BNYP59N+SB+.(#D!H7^-0J\P#]"J/_^=.\,G;!R/[1XT0F\ MJ>+)RR=S#5.4\%Q_FK(P&E[-&(YZ5D#&%M)\I&OM4S/4:M:[0HY%1;6PBGK# M-ZKX1F?YFE=M+L$44Y#HYPCR&8A?9XR(*^#XXXTH(&L[$H-X1V'APV%0&,71 M<1MJ%=O:6;83D(!%DB%]K=$ UKH6+G5E4VA8L'V/,_7JK/K'.U,_$!W'?KSG MS&%0U/"\X\XT*K:-\VQU/29L<8T^ P.!J76HF^K"1:02V)3LK4GONC_-ZMSF MQ[O4//A$HD:\?W^.! 5><\\E=Z< YR 6MB])S63%5%&G=U#4E4?2H8J+XTI;Y&5>Z:=AAIMLZ"!.@]^=< ME_IR8@ZH_BAT_@%02P,$% @ =H)A5"<"E03;! 'Q4 !D !X;"]W M;W)K&ULK5A=<]HZ$/TK&J8/R4R*+6$;R!!F J'W M=J;YF*9IIX^*+4 3VZ*2@.3?7\DVML&6(+=Y";:\NSIG5]H3:;1E_$4L"9'@ M-8E3<=592KFZ=!P1+DF"19>M2*J^S!E/L%2O?.&(%2]TL91ZP!F/5GA!'HE\6CUP M]>:442*:D%10E@).YE>=:W@Y18%VR"Q^4K(5M6>@J3PS]J)?OD97'5<4SO6GW?1OV3D%9EG+,B4Q;]H))=7G4$'1&2. MU['\SK;_DH*0K^.%+!;97[ M;-T."-="LJ1P5@@2FN:_^+5(1,T!^08'5#B@ M P?H&1QZA4,O(YHCRVC=8(G'(\ZV@&MK%4T_9+G)O!4;FNHR/DJNOE+E)\=W M3!( 7? 9S&X?OMW_GLW 9'8W^_+U!WCX=GWWJ#X\2A:^@/N53KL USKO5+Z! MLQLB,8W%N3)Y>KP!9Y_.P2?@ +'$G A 4_"44BDNU*!Z_K%D:X'32(PA^"=VW0O^' MXU22Z!A&OS'Y(;RF!?*,Z((276!%-WLE/*3B.+Z@,?MG!%N2V&;G!4:<_1)G MWXISJNL<'X?9;TX/W2;*%C._;P0Y*$$.CB1S1?EQC(/FY%X38HO5/I,]B,,2 MXO#TC42RWU-WT;"Y_E#+ FB:'6RV/=S0K=J[>SKR;29J*M5X0[@2:4"*=0Q6 MG(;$U",B%L>8"[ B/&?:2K0 ,JA1@&YWZ!\0;3<+/ /1FH[!4QK&49*G,YH6 M,T)8QQIT^\B %558T6GMXP/13HHY]] .NL/#]+=8J?Q[@8%3I6&P=U*K^5!* MO1:P?M0UL0;-,K58J3*YIC)5L@KMNOJ^ M?M#2ZDYDZ3=W.>KV!XB&:*0)(?EM2Q*<)OPG9)1-)<3(+L1[JPXO%IPLL#KC4X6=IH*&8(/C M-6D%G0?VZ_^$HL' L TJ$45V$;4NGO,R=V+GJ"\ M$QW_!U!+ P04 " !V@F%4@8P=7F8# #G"P &0 'AL+W=O$_%S AG?CBQLO0X\T&6JS( S'J[($N:@'E8\\8%(@G"EO9:",CY9GS%].Y34:6:QA!!K$R+HC^;> :LLQX MTCS^JYQ:=4QCV&R_>O],O MYIDLOFA;85T+Q6NI>%X9:P8Y9>6?_*@2T3# P0$#KS+PV@:] P9^9> 70DMF MA:P;HLAX*/@6"8/6WDRCR$UAK=509I9QKH2>I=I.C>^Y H1=] E-[V9?OOX] MG:+)]'[Z^?8;FGVYNI_KB7O.-B 5).A!_P2-37.N>/R"'AE5$EV9I:#J)[JX M 45H)C]HJP/8BX?YHY[_YP[R9Q#_:N ?R$$R)0+DZX\R]"WE:TE8(H>.TBH- M5R>N%$U*1=X!1=A#=YRI5*(I2R#9=>#H]-0Y\EYS-/&.>KR!V$8^_H@\U\,= MA*[/-W>/T/'K)?,+?[V#2U:MQT1^Z$E;Z"PI_YEQOQCCL MA4-GTQ31 8JB-] .U5Y-M7>4ZI^",+,#3O#K[84>A&UZ^YAHX':SZ]?L^D?9 M/96[^@2Y_E[@3T$T:+'K $7!@>0%-;W@*#U]32V GL$PV ^. [_%\ 1HAV%8 M,PQ_\TX,.S99Z+6H=H":VW6':E13CVUAG3C?]OH'E#7>6WS> MJ7X/<;B#=&COW06=.+^9A%UQWILX[W\[957H4\?L)*R4YC1*IAS$LJ@D)8KY MFJFR,JA'ZVKUJJC16N,34\46I=B;F[($OB-B29E$&2RT2]<.]2,ARJJR["B^ M*@JS9ZYTF5&ULM5AM;]LV M$/XKA+$-+9!&(B4[=N<8\$N"94C2P$[; <,^T/+9YBJ)+D7%R; ?OZ.D2'8E M,VZPYD.LE[OC\QQY]U#L;Z7ZDJP!-'F,PC@Y;ZVUWKQWG"180\234[F!&-\L MI8JXQENU]ZBK><'4[%::_/ &?0W? 4ST!\W=PKOG#+*0D00)T+&1,'RO#6D[R?,-PZ9 MQ2AGLKM;U 0:IMX@0R3[#_9%K9NBP1I MHF54."."2,3Y+W\L$K'C0#L''%CAP+YU\ \X>(6#=ZR#7SADJ79R*ED>)ESS M05_)+5'&&J.9BRR9F3?2%[&9]YE6^%:@GQ[<2@V$4O*.7-V./]Q=A-6)-EU]^WW"/GE^3\'T@.ZQNK M-V[BYM<04[^)6=W.L]!JE[3:5EH7RR5D;6L',)ER+*@I!#(.1"@R7B>$:W() M"Z09DIGF.M52/7WK=$+N0 40ZR:B=B",GKKNSTTU\/U^>YGHE)GH6 --8 E* MP2(C,TP2T#AOGWB89OS),$1YX7& '.^EYF$3PTYMBMJTW>W4Y[)NZ--NNW=P M-L]*#F??S^$6M 5S'K"SN_S.ZH#K5HQU#\+MEG"[5K@?8X6+;!6+?PK((XAA M*0SHG85U!S$/M8"$\'B!+S0H;!1D& 0JA86%6K<&NK%EU,VZEL+JE=QZ/X[; MQ2/NB1+L-E-X )7PL%&M>C7@[[J].K^ZF><=I$?=2G3=UQ)$>31-<<1#4S"- M0NO6EYU_YGMU](V67L,\3@K+O4[J=6C[,->=#09]'5>BU]@7/\LTQ-F+-K@# M)%5'?>Z*C0F@]8IR+R76JYA<2YR7>U 1N19\CLW=K+U&?*R.KV/# M5VT2J'V7\'\4/1'?0\5[J0_L,ZEV!-2^);!FNMZ*R2R=_XU+ QL6N4S#L$E< M&O'[]0I@/1N#2ORI73S'/!2X6XD%)]-?>+3Y=9+!'2-N0^//&XCFH/ZRJ"NM MY)7^<'TM1NCL"6RGJ:?3)H6UYJR26/J"QA;[U)Q'JM=2"?UT5*XJ7:1V8:PF M@8SQ&^8)YVC+%6K=,))I\^Z*UF6,46M'J92,VJ7L!<;DW[P^L6")T:LX!3(# M]2 "%+"KZ>SM,;EAE>XPN^X46VTL?K,5W\M/8ED[K*XCM;6SCZA2!V97AY?S MLU-GEPH7^5HD>9L;281]5'ZJ_L_L_?^U^:DW?.I16WZJCL_L'=]\+D#6QZ]E M@(OD]U2)9"'R0Y-CN%<=F=D[\BOJAM6_JUCSNG!V3B@B4*OLI"&ULG97=;J,P$(5? MQ4*]:*5M 1-(4I%(S<]J>]%NU:3;O75A$JR"G;6=)GW[M0UE:2#1JCY!:',&<=V[T&,8[Y5.67P()#<%@41[Q/(^6[D^,['QB-=9\ILN.-X M0]:P /6T>1!ZY=8N*2V 2=RPN1,.7Y,TU5-G(& M#DIA1;:Y>N2['U#E$QJ_A.?2_J)=%>LY*-E*Q8M*K D*RLHKV5=U: C\Z(@ M5P)\*.@=$025(+")EF0VK1E19!P+OD/"1&LWZX ^3ZZ1+?WTY]W<[2\^3U?F"5+> %H2?9HOM??C 1T/@$&*ZHNT/D,%*&Y MO-"!3XL9.C^[0&>(,K3,^%82ELK859K.G.$F%<$#I-CIJ 6)M!XU$ M"=\R53:@>K>>93>VA1_L3_2,*T?2/YMR0-X1L:9,HAQ6VM*[ZFLF40Z=&ULC9;;;MLX M$(9?A1!ZT0)-)$JR9!>V@=A)L;U(&\3)[M[2TM@B(I%>DK+3??HE*456K$/V MQB:IF9_?\#"<^8F+%YD!*/1:Y$PNG$RIPS?7E4D&!9'7_ !,?]EQ41"ENV+O MRH, DEJG(G=]SXO<@E#F+.=V[$$LY[Q4.67P() LBX*(WRO(^6GA8.=MX)'N M,V4&W.7\0/:P ?5\>!"ZYS8J*2V 2,9(L@A44:"Z+\CK"'/C9+F^*<6=9HYC6.[_:;^W0:O@]D2"6N> M_T53E2V;O^\VILL27@!Z(J_H$1+.$II38E?^ M\RTH0G/Y15L];V[1YT]?T"=$&7K*>"D)2^7<51K-3. F-<:JPO ',+"/[CE3 MF41W+(7TO8"K8VH"\]\"6_FCBK>07*, ?T6^Y^,>H/7_=_=&<()FG0.K%PSH MM5=W1"YLY$(K%P[(?8<4!,F15$25BHO?2.F-.@A^I.:"]6U )3BQ@N9R'Y=7 MP32,Y^ZQO2I]5O$L:*S>T4X:VLDH[493PL>$E4C4FML/9A=\79O8&Z"+&KKH M SJ>O"!]VG5JE-41AU?3AC[(J -P%_] MBKM3^E$<78#U6 7A=-I/-FW(IN.'D0N=+9G9X*^(@>K#FW8FQM$DN*#K&OEA M.+"[LP9N-@JWS@C;@TE/1Y*7U?:27+]>A"6]&SSK0$R]S@9WC?R9%X3]J-@[ M)V-O%/:9Z:D--=C2UFU? F7O6=P78NU(8))-,#@GQG\#P]^3DXCT:]KA?>GWP_B@:G/ M21L'HU/_4AF(WN4.>B*]/,X]1E<8#YQG?$[]>#SW/W&E,S^MWF=S3$:R%>[F M\P#'^!*T:Z57KY-7W5:948#8V^K+'(V2J>IA;D:;"N_&UC47XRM3^=GRY2Q3 ME8WW1.PIDRB'G9;TKF/-)*I*K.HH?K#%S)8K71K99J:K5Q#&0'_?<5W0U!TS M05,/+_\#4$L#!!0 ( ':"851N )CI^ , *L- 9 >&PO=V]R:W-H M965T;J5KNUJV M[;TUB0%KDYC:!G:__8U-&MC$2;DW$).9X3?CS/R=R9&+9[FE5*&7LJCDU-DJ MM;MU79EM:4GD#=_1"NZLN2B)@J78N'(G*,F-4UFXON?%;DE8YI@Y_(4'74^<.W\YQHAV,Q0]&C_+B&NE45IP_Z\5]/G4\340+FBD=@L#7@A(P/&K#NHT_ZD=+Z]_1__+) _)K(BDU,Q"4K#I]DY>Z$!<...QQ\&L'_UJ'H'8(3*(G M,I/6@B@RFPA^1$);0S1]86ICO"$;5NEM7"H!=QGXJ=E7KBC"&(W0_=?YMR^? MT=/=OY^7L%S0-16"YNB)O* [*:F2Z/V"*L(*^0'N?U\NT/MW'] [Q"KTM.5[ M2:I<3EP%4#JTF]4 GTX ?@_ @F8W*, ?D>_YV.(^O][=>^ON0BF:>OA-/7P3 M+^B-5Z>M(&UBTKX="!LT80,3-NPK,S0DM)X@BE4;5' I44:$>$70B$I+W+,K$GA81ZYWN8;:N"ZL[*V1H>2%U[ M>'H8MW=8W.$)@MAO05N,P@3;H9,&.AF$_H?"!+4B)=U"PHZVD"Q&<3RV(Z4- M4CJ(M%0\>Q[IR9ZCC)<@=Y)HP;!!IA;(L UI,?)]SPXY;B#'@Y!/7)%"JTU[ MUM@HQQV */'\N(79M0K3V.MI(>R=Y<'[PPY+>8L.I-B3D^P6(/RDRJAUTGL= MB%&$H[3-:K,+<1KU;#V^$#,\2&N9WA]1I6?O^NH<<+?<8=B> !:K. G#'OZS M^.#_H3X%(RM6,,7:'?8V^%F"\+ &/0BM0.K53''Z:\_,3#?UL18BZ#[X2=JN M0]=H%/M]^WC6'SPL0-_.4JDG#!+Z,#;BZ]$>%OV=@KLZ,K*,':M9[^#!9[W! MPX)S7RE2;'DW";B+TYO!::'XSARN5US!4=U<;N%MB@IM /?7' [8]4*?UYOWL]E_4$L# M!!0 ( ':"850IX*,%X@( H( 9 >&PO=V]R:W-H965T7%[?S2GCSF1DQ^[D9"1*G3$.=Y*H,L^I?)U" M)C9CQW?>!N[9.M5FP)V,"KJ&!>C'XDYBSVU4$I8#5TQP(F$U=B[]B]G0V%N# M[PPVJM4F)I*E$$^FGM&+1:;LEVQJ6\\A<:FTR&MG M),@9K_[TI=Z'EH/?W^,0U [!MD.TQR&L'4(;:$5FPYI332Y=&]\+HF[L?H/=_PAV(1E^ M#73G&^CO$FTQ[UH,_&[B04,\.$C\E18*#*W25)?XV,6*9"QGV#/879B#'8BS MR-\F[33RNEF'#>OP8[<:D\,_KO2PXTH/HNVKT675OO@5O=M*JSG(M:TVBL2B MY+I*1,UH4] N;1[?&I]BH:OJTE^9JDK>4(GO5)$,5BCIG0^025:5I^IH4=CD MO10:2X%MIEBL01H#G%\)3.!UQRS0E/_)'U!+ P04 " !V@F%4O2KK2I@" M ![!@ &0 'AL+W=O0RO-A::<_1V2-Y M/=P*^:)*1 V[BG$U\DJMU]>^K[(2*Z(NQ!JY62F$K(@VH5SY:BV1Y Y4,3\* M@L2O".5>.G1S"YD.Q48SRG$A06VJBLB_$V1B._)"[VWBGJY*;2?\=+@F*URB M?EPOI(G\EB6G%7)%!0>)Q<@;A]?3Q.:[A">*6]49@ZWD68@7&]SD(R^P@I!A MIBT#,:]7G")CELC(^--P>NV6%M@=O[%_=[6;6IZ)PJE@OVBNRY%WZ4&.!=DP M?2^V/["IIV_Y,L&4>\*VR0T\R#9*BZH!&P45Y?6;[!H?.H P.0*(&D#T$= [ M H@;0.P*K96YLF9$DW0HQ1:DS39L=N"\<6A3#>7V%)=:FE5J<#J]$QHA#.$; MW-Q-?][.X6'\>[XTX1-A&^*<'C-SU(1G"** &18H)>;P0'8P5@JU@K,9:D*9 M.C>PQ^4,SKZ@'!Y*L5&$YVKH:Z/5[NAGC:Y)K2LZHBN,X%9P72J8\QSS M]P2^*;*M-'JK=!*=9)QA=@%Q^!6B( H/")I^'AZ.+S["U[7[!%VO MI>LYNMX1N@EA[HB(A@FN*.>4K^QY+5!2D1_RO^;K.S[[K;^FO?"R?S7T7[NF M[&>%0>\R:;/>B>VW8OLGQ4Y+(E?F#FD!\YWI1PH/":PYDL[65X-H\$'??E(< MQH/XL+ZDU9=\UDQS^T[;F.P9U _['8-JF?M9[\VN9?J=[[A"8Y%M;PHRL>&Z MONCM;-M!QZYQ?)B?F,Y:-\+_-'5;OC7.4ZZ 86$H@XN!T23K5E<'6JQ=MW@6 MVO0>-RS-WP&E33#KA3 =HPGL!NW_)OT'4$L#!!0 ( ':"8529*7%)X0, M )L/ 9 >&PO=V]R:W-H965T$D-P:]HF_!!CVZ%VF2DP5#?)]EF/T>DI0>^H9M'#M>D\U6J YS MT-OA#5D2\;9;,-DR:Y4XR4C.$YHC1M9]X]%^>(D4O@!\2\B!GSPCE4A%/GX_J3T7N,I=WS,F(IM^3 M6&S[1F2@F*SQ/A6O]# E53Z^TEO1E!>_Z%!A+0.M]ES0K"++"+(D+__QKVH> M3@A2!R8X%<'1"=X5@EL1W+8$KR)X;0E^1?#;$H**$+0EA!4A;$N(*D+4EM"M M"%V=$%PSSCHZ9[4=PZ[-+HNNK)*BQ,98X$&/T0-B"B_UU$-1IP5?5E:2JQ6U M%$R^321/#+Y009#MH'OT9?(5_?7WTG#Z^3F3G"*>K?8J+ZJ=K-,$L M3_(-1PO"T'*+&4&W8R)PDO([B7Y;CM'MS1VZ02;BZBU'28[>\D3P3R<=7[=T MSW$>R\Z;LW;/%#(E%9BYJL(?EN$[5\)WT6>:BRU'DSPF,<"?-_-EYM<%3#F7 M]80ZQPD=.HV*8[+J(-?^A!S+L8& 1LWT)=E)NG65/FZFS_=Y(WW23/^,66/P M3^USMP#Z<_O<(?JT?>X0?=8^=X@^_W^^O_SGJ3LK0[=>UVZAYUY;UQ>KN4'4 MJT6]0M2[)BJ_\"GEX#HMF7[!5)_QC\%]:%DRE8_3X@=0CF>%YZ@Q@/*\R#M' M3: 1_:ZF]02@7-?SNN>P9RBPT-6&G$)B@>^B<] <&M#V(@WV DV% MY09N#3LSTJ^-]!N-'&*>K-"A.&^0^!Y_$":/3\WJ20 HS_,C.(>@SB%HS&&BT'JR.K57S"$19@;;,8"VMFB<@2FUQ9\L, M1'4UU#,;"6KJY(.K"7 %F&N>G*$SPC;%-8^C%=WG MHOSLUKWU3?*QN$!I_4/[868#_7-Y\RS/[/_*E]=6>?+8)#E'*5G+H:Q.*/=+ M5EX%RX:@N^($_TZ%O!$4CUMY>R9, >3[-96G^*JA!JCOXX-_ %!+ P04 M" !V@F%4UTZ[H-(" Q" &0 'AL+W=OOZ-_M]I1RY(J MF(KL-TMT.G1Z#DE@1/6D M+[4/6P5^YTA!4!<$NP6M(P5A71!:H14S*^N::CH:2+$ATF0CFAE8;VPUJF'< M_(N1EOB689T>W0D-Q _(!;F;/9"?]U%$YK,%B6[&BQD&QURSBX1EI3&;1!"7 MDFD&BGR[!DU9ILXP2:548JA^,$X>4E$JRA,U<#5R-"NY<" MZU21&4\@^0C@HKA&8?"N*TC M>!\=55N.HG&5A6>';*M0.Q;5',WGD>]W4<_SMI0#22T_;)(^$&XUA%LG"4>& MTX4Y*@F9TU<\P9J,I:1\#69\3NX+>R#_W$*^!/GWA$?M9LGVEWC4WI??]78L MVL\)P^"P0YV&;NPB>L3S\0E?NLU"W2_QI;NG MN=_I[?AR("?P#_O2:^CV3M*=Y44F7@%J5^:EC%/<1F2>T4]MEWZS3O]+;.D? MV H[KNRG^!UOQQ5WZ_;-0:YM4U(D%B77U3751)N^-[;7_4Y\@OVP:E__8:IF M>DOEFG%%,E@AI'?9Q5TLJP953;0H[!V_%!H[AAVFV--!F@1\OQ)XS]<3LT#S ME3!Z U!+ P04 " !V@F%4^]E@WRL" #V! &0 'AL+W=OV4Q.0KQ88Y/-O*$5!!12;1&P65YA"91:("/C5X?I]90V\')_1K]W MN9M<3EC!4M"?)-/ES/ONH0QR7%.=B.81NGRUON'9'YXW"S19G>_3[;SI\U^9[QV M6$IL"XD^K4!C0M7GR-=&B(7STXYTT9*&5TB#$&T%UZ5":YY!]B^ ;S+HTPC/ M:2S"FX@K2 =H%'Q!X3 ,;N"-^K*,'-[H"MX'BG =RSC!W+^%KQ:W8"B42. M]A78LO("':$P/:_5>U5MT:8.S4[;:VQR?7U'P*07,/F@@ 0J(34^4;BI8/)? M!?Y%+S*0A9LXA5)1<]VV97_:#_6\[>6_[NV+L,6R(%PA"KD)'0Z^&7;93EEK M:%&YSCX);>;$;4OS,(&T#N8^%Z:[.\,2]$]=_ =02P,$% @ =H)A5"SW M\<+W @ &ULK59=;]HP M%/TK5J1)F[21.'RU%2!!H"T/?(BVV\.T!Q,N)&MB,]N45NJ/GVU"0JN21%M> MB.WXGGO.,;ZYG3WCCR( D.@YCJCH6H&4VRO;%GX ,1$UM@6JWJP9CXE44[ZQ MQ98#69F@.+)=QVG9,0FIU>N8M3GO==A.1B&%.4=B%\>$OPP@8ONNA:WCPB+< M!%(OV+W.EFS@#N3#=L[5S$Y15F$,5(2,(@[KKM7'5QYNZ0"SXWL(>W$R1EK* MDK%'/1FONI:C&4$$OM001#V>P(,HTDB*QY\$U$ISZL#3\1']VHA78I9$@,>B M'^%*!EWKPD(K6)-=)!=L?PN)H*;&\UDDS"_:)WL="_D[(5F[[@,:9@'H24#="#\R,K"&1I-?A;(^XWJW0],!X8Z*5FI#J M8[R37+T-59SL39D$A.OH&_(>[NYGD]$"]:=#=#.:W2SZ\]NQA\;3Z]EBTK\? MSZ9JUP*>@.X S8'[0*4Z:;1\01/RFW'D&;K !?H\!$G"2'S1N,DJ\AC5(9R8 M\UN$XA']G$"\!/ZK8TNE13.R_83WX,#;/<,;NVC"J P$&M$5K-X"V,J$U GW MZ,3 S44<@E]#=?P5N8Z+/R#DE0]WLT\ M[9^Q\$W*1IJRD9OR[0%Q=4 ?V9"/X=9KCO,IATPS)=.L0/^PC/Y6FK+U__H' M^1BX7:"_G9)I5Z!_5$;_19KRH@+]^1C8*=!_F9*YS 7J^S[;42E4Q?$A?"++ M"/[]!F G*X=.!7>@ 2W"DS )^495V+#H)0-;I;6K>"O4 ""FT4V9,40YU?# MLC9XI6S("B*NHB(6@&!<9$-6$W%^42QK0ZFRB+.ZB*LHC 4@[N4Y&^R3]D6Q MWYBN3B C]?#]3E?3SK%O^J5WZP/=49JV*(,YM*,3PC(>)9%O3)"V95!::8:"Z8N!Z@WJ_9JI12B8Z0=IG]_X"4$L#!!0 ( ':" M850A =LOG 0 *\5 9 >&PO=V]R:W-H965TZLH\6)# C>^H5L2 M\CLK&@4NXZ?16HFW$7&7*13X"H;04 +7"QOM5GIM$K5;=,=\+R23",2[('"C M7_?$I_N[!FH<+TR]]88E%Y1V:^NNR8RPY^TDXF=*'F7I!22,/1J"B*SN&C:Z M'>(42!4_/+*/3XY!,I172M^2$V=YUX!)1L0G"Y:$@W.Q#T1VJ)"VQKLO< M=BNB>Q E>AXO.4CK-.5Y97EALJ1F+.)W/=Y]E\_-2; GO4 M!8^]\>/4GO2=#G!&#^/IDSUWQB.NFI)W$NY(#%Y_@4="UY&[W7@+8//E#+YV M"7,]/_[&=<^S+OCZY1OX KP0S#=T%[OA,FXIC.>!"JN&658]"E0J0KBLZ@M42(-G>3DB%=*MLFIPJ4((0>,L_>&E MS+*@5DQKR4"71G^#OXYL7W)-P ML>&?/\5-237I>1;Z1ZMIH->;G4N99':,/"]#FE=Y2B(^):(,Y3$0A#<0_B9: MLA\ 2\,P\V&8_[7)_.;SR)GWNF VM^>]F20K*\_*^K#IUH6;.E1-[][,TVI^@N?R&)I>9?D5#E]Q','BPPK^#YYW^L[(EN5S\J&'/NQVAI;6 MN(;/W\Q#D4PUS8HUCG"1&OX$QZ\$06J5Y== XYKG14]&\J;\.9X/[(D]DN53 M]!8D;RY2SS7!>QTV+SR_E&FF@2LL+_H-DC>&/R28\.NX.'$T:WZ:;.*V6,!NGAAKA+$B4"?G]%*3N> M) _(]VC;_P!02P,$% @ =H)A5-_XD@]^ @ /@8 !D !X;"]W;W)K M&ULK57+3N,P%/V5JX@%2$#>X:$V4F@+5)H^U,>P M&,W"36Z;B"3.V&X+?S]V$J( I6+!IO&U[SD]YZ2^[>PI>^8QHH"7+,UY5XN% M*&YUG8;*F+"-"EFRC\X(AB4I0ENJ687AZ1I)<\SOEWI3Y';H5 M:9+CE '?9AEAKW>8TGU7,[6WC5FRB87:T/U.038X1[$LIDQ6>L,2)1GF/*$Y M,%QWM<"\[7FJOVSXG>">M]:@G*PH?5;%,.IJAA*$*89",1#YV&$/TU0121G_ M:DZM^4H%;*_?V.]+[]++BG#LT?0IB43? ML*][#0W"+1)Q E_3 6":<,%]);SQ60TF$$P[L/#8/(P M"Z:/PQX,Q_>3V2A8#"=CV?6+YIN+5"8?0< Y"@ZK5WA NF&DB),0 OE3@M,^ M"I*D_$P"EO,^G)Z0HSADJ^)Q2QYUIW:^8UP9 M=D??M=4?Z')O3*?I>B?2;D3:1T4NQ\/%H _S1; 8S(^8=AH^YX=,5SQ>RXY] M8[K7'TQ_[G)LS[,/FW8;D>Y1D3/D N@:1(SP1%D:P9\19BMD?X\DX#7DW@\E MX'UZH:;KN!\"^-QD6:[YP;_>NMUJLHX(VR0YAQ37$F9<7DD\JZ9550A:E!=^ M184<'^4RE@,>F6J0YVLJ+WU=J!G2_&7X_P%02P,$% @ =H)A5*V>#*NK M @ ZP8 !D !X;"]W;W)K&ULC55M;]HP$/XK MIV@?6JEK0GB;*D#BK1M2855IMP_3/ICD(%83F]D.,&D_?FD&%#X0^W+W MW'-W]I/.5JIGG2 :V&6IT%TO,69]X_LZ2C!C^EJN4=";I509,[15*U^O%;+8 M!66I'P9!R\\8%UZOXVSWJM>1N4FYP'L%.L\RIGX/,)7;KE?S7@P/?)48:_![ MG35;X1S-T_I>TH=!<"E"X['K]VLVP;?V=PS>.6[VW!EO)0LIGNYG$ M72^PA##%R%@$1H\-#C%-+1#1^%5B>E5*&[B_?D&_=;53+0NF<2C3[SPV2=?[ MY$&,2Y:GYD%NOV!93]/B13+5[A^VI6_@091K([,RF!AD7!1/MBO[L!<0-H\$ MA&5 >&Y O0RHNT(+9JZL$3.LUU%R"\IZ$YI=N-ZX:*J&"SO%N5'TEE.*HO.[ZAM#;8C\H4 M@R)%>"1%+82I%";1,!8QQF\!?.);D0Y?2 _"DX@CC*ZA7KN", AK3_,17'RX MY :S ]R&YR,%1Y'>D*Q7G:T[Z,81:#IE=(8$C'=1PL0*84A-4'1LX<<4LP6J MG_"G;.Y,"KJ6BADN5C 1D/7$LO! 4@X !D !X;"]W;W)K&ULM5=1;YM($/XK(U]U:J74L)C83LZQE-B77J0FBF*G]U#U88T' MLRJPOMW%3J3[\3<+%)P&$Z?M/22&9;[9F6^'CYG15JJO.D(T\)#$J3[K1,:L M3QU'!Q$F7'?E&E-Z$DJ5<$.W:N7HM4*^S$%)['BNVW<2+M+.>)2OW:KQ2&8F M%BG>*M!9DG#U>(&QW)YU6.?;PIU81<8N../1FJ]PAN9^?:OHSJF\+$6"J18R M!87A6>>W?V&9T+'U M%\A8Y_]A6]JZ'0@R;612@BF"1*3%+W\HB3@$X)4 [SL \_< >B6@=RC +P%^ MSDR12L[#E!L^'BFY!66MR9N]R,G,T92^2.VYSXRBIX)P9GPC#0+SX3U<7MV< MWTRNSC_"U?-?&;7N5#PB<<9'L&YUF@T7"/7F<(EV(.#.PPRI42Z M@@NNA8:W4S1]G4WC[YAV\ 9'"/)*9YNE2CQQ#H=L G* ,T) M%P]RG<(<(JUKR*-2_WY^_Q-Y>&QTU9%+#C'&9?N<,JJN/6J*YEBH]PS=57$LO+C*KLD)S[E??^ M =Z3PGN2F8S'$&9[2KG?P(,_\+^CH<%JZ#*OF85!%>?@1UF ?^$G"V18!3'\ M=60-#R*KP6H_62=5G">M<=[/X(/!\A6D@4,/, M"IPP]O( EIA;2Z_;NO\LDLJ\-Z@24L<-:F/C:"+IX@5'G]F71DEUG[-&;Z2_ MAS:V\\U@_Q=Q/U^%K!9IUJ[2K^"WW=$^?AMDO(W?6L=9NY 3OW.5?V,?7UM\ MM8BS=A4_F)PI:Q!LYI\,V9XT:\5F[9+]0IJ_H%1J>6?M^OX*-OH-A]["AE7N MIRNUC+)V'6TNNXL74/,((>!*/=J.C"2*3-4\??_]MZ+'!'WHW M5=N?W7=GW?I$%B*.Z7U>KY5\$-1@(X3V-#;V-&!)?T9:I[2D:_+(KCS&HUP* MR$ A1'R#L$!,(95 QV?WDPJ"B*!K1@(FYH7LCB90&-^)+Z M3"U6J0A%P"DA#$,:'&S_:?/:":S(5"/HNJ#(&36 >;54/60>G>T&NTWUX^PT MU FJ53Z8: @LF44_5JU6P\]%/B,\6Q^<3J@&GC^A8Z0G^;SDU%L4TQ9]OU>" MQ#3&D+9SNP.J-E4,,,6-D>N\I5](0P-"?AG1T(?*&M#S4%);7][8#:HQ&PO=V]R:W-H965TTH%^A%'";_M[84XW&@: MW^YI[/,^.]!$WMFQ-/:%;*9O&C^DU ]R4AQIAJ[;6NR'26\TS/N>TM&0'444 M)O0I1?P8QW[Z\XY&['3;P[V/CG7XMA=9AS8:'OPW^DS%YO"4RI96J01A3!,> ML@2E='?;&^.;I9OA<\"WD)[XV37*1O+*V/>L,0]N>WJ6$(WH5F0*OOQ[IQ,: M19F03./?4K-7A*F77>1UFO-E985)MJ*>12KOAI(G1BLF*,(6^H*> MIX_3RW?:1B3\C0S

?>Q M0_3%__-]^<=35RM#LUJY9JYG7IK+WUFO+?%(%8_D\&OZ3I,C!9=PP;1R M9O8.?Q\9 ]>UA]K[^;J 4)9EU5$>@'(('M114P!%Y"ZBCKH'4(9I.W74 X R M,3;JJ!F PD17\II#*&RY==2BB<(8Z[:2_K()6.& @"*$)&POJ8M(BN=(E-7:JB["N-*-9#4ZE" >] M7AR6E$LR'LE%>5V:.IBIA30IN>A,@;M]S5+2CS^2P-%-5,92\G#Z_N="F:MW M@;N??#@YZ3V<7>W:3QO@C(1>THL#2,][<*'4#L8"Q(<%V,>.45\>1+V'&2,> M'IJ4_3EIZ,.VN.-1KN2FQA%Q!AN?EBQXI"(E$RKX5'/PRFG)QU%5V0RNH'3H: M-P'^;3;'O4T[>!5O4/%'9;XL[')D,X=V8;>:Y7S9S)=Y)P!C[^/LM*K$ZK/@ MA2R96_S! <D='E\6ML=^YC%QF_!9%O MHMS#XQ<9)4>I,6SW[ZU#PK,C0F<-X"B6DN]P]!.;H,%TP87ALIW->98Q^>*D M8.D-G=H_"I[QV^2ZN?P(YN,P/P(8%@=3@/DX+RS._[2>(;H> MAV':AEYDB/H,41_GY4,FS0>+X_=)[.5?:9)$41QC&9U,O HF6-[B&'[\;)@V M\,#B0*0_RS5>;;Q#]O&!5P'H' MXOOC0$_Y?:((JHIIP]Y@'$D2#(%>]/=H'"/9B>'CKP_VED11DO@1P/P*H@A# MX&W$$4P!:,"0*&KVP9W]*%SO4^'F/V7CWU!+ P04 " !V@F%4EXJ[', M 3 @ "P %]R96QS+RYR96QSG9*Y;L,P#$!_Q=">, ?0(8@S9?$6!/D! M5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+J1C]$%)I6M6X 4BV)8]I MSI%"KM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D5XA-/E_G;@2=&A(E@6FD7)TZ(=I7\= MQ_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0 ( ':" M852;ZKV"I@4 -@R / >&PO=V]R:V)O;VLN>&ULQ9M;;YM(%(#_RLA/ MV8>NS3VMFDK$GB1H,5"#LYNGBMCC!!5#!+CI]M?O@#?JF:WG:%]\>+*Y"'_, MY7QG+O[X6C=?'^OZ*_N^+ZOV:O+<=2\?IM-V\RSV>?M[_2(J>657-_N\DX?- MT[1]:42^;9^%Z/;EU)S-W.D^+ZK)IX]OSTJ:*3RH.['IBKJ2)_L3]X5X;7]> M[P_9MZ(M'HNRZ/Z^F@S?2S%A^Z(J]L4/L;V:S":L?:Y?[^JF^%%775ZFFZ8N MRZN)<;QP+YJNV/QR.NTAL_RQ',JER!7$WGTO&;T+> M?#PZ=/5-47:B6>2=N&WJPTM1/?6/D6\Q!:\QE,/;Y[$0/S3_IQCKW:[8B$6] M.>Q%U1W+L1%E#UBUS\5+.V%5OA=7D[=;F%]M&:\Z64@LJ(Z/DO?V;RI_.M@> MW[J3N* ,FP^%O- $VP'\?)#S.$KC,%CX&5^P:S_THSEGZ1WG60H 3030' V0 M720Y@+002(L0,LWDQY)'$C"^8?-XF0!(&X&T1X-,LW@.(!T$TAD1\HL)(%T$ MTAVONOWT#D!Z"*1W7LA(AF]FL'=LP=/Y*DBR((YZPNMU&D0<]NY+!/*2 -*4 MD"M^SZ,U!U3O$:KW!%26I$JSE:S3W50TA4;^<63 #I",ADU6<\%7VP/QHP?CG=9#TG09B8I8QSJR9 M =.5F+=QO/@S",,!,X@R/[H-KD.(B7G&.+-H!DQ/8H;<3Y5.;&!F,_W$7APO9HX>VF#U 1DPM MQIG=<@S;,PG)ETD8/W#.KGG$;X*,)3+Y@9B87 P2N_1Z"2)9Z9QE_E]J>\2L M8E!HQ>B]$O&,A;$,C3+VR+317T'%&)AC# K)&+UEYFO9'I>2K^\QMSR^7?D) M3"),3#(FA62,WC(WTBS1//!#6>52C.NAET-,3#,FA6:,WC,I#_F\3\P^KZ6S M^2I\D.00$QW,G%DSIW.Q8ZQ,UTN(B6G&I-",+G=4LG 3TXY)H1V0/;*++)<$ M[6\0$!..22$<78;&+B FYAR3PCFZ'$VM;LPY)H5S=#F:BHG)QZ20S\\<[62C MQ,1CDHA'DV$HQ6AAXK%(Q//?#.-4:5J8>"P2\9Q.-20LQ,3$8U&,;W39AEKI MZ#P:B7@TV8:*B8G'HA"/+MM0,3']6!3ZT6K<@IB8?BR2(8\.TX:8F'ZL,2?4 MOC@0$]./13REUD>FO&GR?I5$XD-,S$(6A85TF";$M#$+V1064C$719L_/37B M2=X-,3$+V106TLU8*@')QBQD4UA(FP^_@YB8A6P*"^DPU=)$UW,H+*3%A.'= MQBQD4UA(.[I0,#$+V:,.@J"%;,Q"]JB#(*4T,0O9%!;28BJEB5G(IK"0%A,Z MW<$LY%!82(OI0DS,0@Z%A<#(%RK]8B$@)F8AA\)""F8H\E:P>=UVDA-B8A9R M:-=ZY)=EWAV:?AM)O6,QQ,0LY(RY]J/(TD'W%8RX]B//0DS,0LZ8RS]*>'

IA'?,0LZH,W(PO+N8A5R2&3D=I@ZU,V^GW6^T.93F7Y^(JK//MVQ\SWOY4\ND?4$L#!!0 M ( ':"851S?'@L40( /LL : >&PO7W)E;',O=V]R:V)O;VLN>&UL M+G)E;'/-VDMNHT 4A>&M6"P@N.ZKDE:<44\RC;(!Y)0?BFT0T$JR^[:<@7U0 M#WH2<4:H0%S^"9\0\/A2#LVX;T_#;M\-B\_CX32LJMTX=K_J>ECORK$9[MJN MG,Y'-FU_;,;SLM_67;-^;[:EEN4RZOYV1O7T>#MS\?K5E?^9V&XV^W7YW:[_ M',MI_,?@^J/MWX==*6.U>&WZ;1E75?UYN.X>ZLLFW9TG5XOGMU75/[^EJIX[ M2"!(Y@]2"-+Y@PR";/X@AR"?/R@@*.8/RA"4YP^ZAZ#[^8,>(.AA_J"T1!F7 M!$D3K FT3LAU(O Z(=B)0.R$9"<"LQ.BG0C43LAV(G [(=R)0.Z$="<"NQ/B MG0CT%M1;"/06U%L(]);)PS:!WH)Z"X'>@GH+@=Z">@N!WH)Z"X'>@GH+@=Z" M>@N!WH)Z"X'>BGHK@=Z*>BN!WHIZ*X'>.GE90J"WHMY*H+>BWDJ@MZ+>2J"W MHMY*H+>BWDJ@MZ+>2J"WH=Y&H+>AWD:@MZ'>1J"WH=Y&H+=-7G83Z&VHMQ'H M;:BW$>AMJ+<1Z&VHMQ'H;:BW$>CMJ+<3Z.VHMQ/H[:BW$^CMJ+<3Z.VHMQ/H M[9./E01Z.^KM!'H[ZNT$>COJ[01Z.^KM!'H'ZAT$>@?J'01Z!^H=!'H'ZAT$ M>@?J'01Z!^H=!'K'Y&<3 KT#]0X"O0/U#@*] _4. KTSZIT)],ZH=R;0.Z/> MF4#OC'IG KTSZIT)],ZH=R;0.Z/>^2?U'L:O0QFN/=]KO/Y/4CV>SRW7RU^6 MWSLG]_@%Y_JV8GCZ"U!+ P04 " !V@F%4SA7,7P\" #J*P $P %M# M;VYT96YT7U1Y<&5S72YX;6S-VLUNXC 4!>!70=E6Q/@WTQ&PF9EMAT5?P$TN M)2*)+=MMX>W'"6VE5ATT%2/U;(C ]CTWOM*W8GE[]!1GA[X;XJK8I>2_,Q;K M'?4VEL[3D%>V+O0VY:_AGGE;[^T],;%8&%:[(=&0YFFL4:R7/VEK'[HT^W7( M/\?6#:LB4!>+V8_3QC%K55CON[:V*:^SQZ%YES)_3BCSR6E/W+4^7N4-!?LP M85SY>\#SN=^/%$+;T&QC0[JQ?=[%#AV+Z=A1+,^7^*!'M]VV-36N?NCSD3+Z M0+:).Z+4=^6IZ-7YY)1OF$Z?_.+\J6*!/A_W,I+Q]-SG0A12 M>_X57Q-SZ8O?C\9I-]3\8W:^WB<7]M,\(IL>E]_QVQF_UO]D'P*D#PG2AP+I M0X/T84#ZJ$#Z^ ;2QS5('WR!T@B*J!R%5(YB*D=!E:.HRE%8Y2BN&UL4$L! A0#% @ =H)A5,0C&UL4$L! A0# M% @ =H)A5)E&PO=V]R:W-H965T&UL4$L! A0# M% @ =H)A5!7)R?_B!@ Q1L !@ ("!4 X 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5.ID@H(0 M!@ LQP !@ ("!C!X 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5/'5W[]9(@ 1FX !@ M ("!GC 'AL+W=O % !A#@ &0 M @(&P9P >&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5%P >&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5/?+'-90!P E1( !D M ("!LX< 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ =H)A5.=0_+DD#0 (2@ !D ("!#Z( 'AL M+W=O&PO=V]R:W-H965TZ<74 4 $\/ 9 " M@1*T !X;"]W;W)K&UL4$L! A0#% @ =H)A M5-&.OXK^!P YAH !D ("!F;D 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5(^ 6!,)! B@H M !D ("!RN@ 'AL+W=O!0 &0 @($*[0 M>&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5*6U7#(C P $ < !D M ("!DO, 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ =H)A5 UT=JDA!@ ?14 !D ("!I@(! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5,1@ M<37C! HPX !D ("!RA0! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5#"^<$DT!0 *A0 !D M ("!="$! 'AL+W=O&PO M=V]R:W-H965THJ 0!X;"]W;W)K&UL4$L! A0#% @ =H)A5!Z"J+PG! P\ !D ("! M*2X! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ =H)A5,Z5E2.5! HA !D ("!QC&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5*WC12%% M @ 5@0 !D ("!Z$4! 'AL+W=O&PO=V]R:W-H965TYE , T- 9 " @5=+ 0!X;"]W;W)K&UL4$L! A0#% @ =H)A5,!L1[AA P >PH !D M ("!(D\! 'AL+W=O&PO=V]R M:W-H965T&PO=V]R:W-H965T&UL4$L! A0#% @ M=H)A5-WWU-B[ @ OP< !D ("!TF,! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5(8O;[O;!P MIRL !D ("!X&T! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5"<"E03;! 'Q4 !D M ("!4'T! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ =H)A5-+<@*3) @ !0@ !D ("!0HL! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A M5"G@HP7B @ "@@ !D ("!.)8! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5-=.NZ#2 @ ,0@ M !D ("!.* ! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ =H)A5"$!VR^&PO=V]R:W-H965T M&UL4$L! A0# M% @ =H)A5*>/7$LO! 4@X !D ("!.[,! 'AL+W=O M&PO=V]R:W-H965T7!E&UL 64$L%!@ !4 %0 Q< /O* 0 $! end XML 92 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 93 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 94 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.0.1 html 227 498 1 true 86 0 false 5 false false R1.htm 00090 - Document - Document And Entity Information Sheet http://www.pdf.com/role/DocumentDocumentAndEntityInformation Document And Entity Information Cover 1 false false R2.htm 00100 - Statement - CONSOLIDATED BALANCE SHEETS Sheet http://www.pdf.com/role/StatementConsolidatedBalanceSheets CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals) Sheet http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals CONSOLIDATED BALANCE SHEETS (Parentheticals) Statements 3 false false R4.htm 00200 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS Statements 4 false false R5.htm 00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Statements 5 false false R6.htm 00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY (Parentheticals) Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquityParentheticals CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY (Parentheticals) Statements 6 false false R7.htm 00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 7 false false R8.htm 10101 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Sheet http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Notes 8 false false R9.htm 10201 - Disclosure - Note 2 - REVENUE Sheet http://www.pdf.com/role/DisclosureNote2Revenue Note 2 - REVENUE Notes 9 false false R10.htm 10301 - Disclosure - Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Sheet http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Notes 10 false false R11.htm 10401 - Disclosure - Note 4 - BUSINESS COMBINATION Sheet http://www.pdf.com/role/DisclosureNote4BusinessCombination Note 4 - BUSINESS COMBINATION Notes 11 false false R12.htm 10501 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT Sheet http://www.pdf.com/role/DisclosureNote5PropertyAndEquipment Note 5 - PROPERTY AND EQUIPMENT Notes 12 false false R13.htm 10601 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS Sheet http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssets Note 6 - GOODWILL AND INTANGIBLE ASSETS Notes 13 false false R14.htm 10701 - Disclosure - Note 7 - LEASES Sheet http://www.pdf.com/role/DisclosureNote7Leases Note 7 - LEASES Notes 14 false false R15.htm 10801 - Disclosure - Note 8 - COMMITMENTS AND CONTINGENCIES Sheet http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingencies Note 8 - COMMITMENTS AND CONTINGENCIES Notes 15 false false R16.htm 10901 - Disclosure - Note 9 - STOCKHOLDERS EQUITY Sheet http://www.pdf.com/role/DisclosureNote9StockholdersEquity Note 9 - STOCKHOLDERS EQUITY Notes 16 false false R17.htm 11001 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlans Note 10 - EMPLOYEE BENEFIT PLANS Notes 17 false false R18.htm 11101 - Disclosure - Note 11 - INCOME TAXES Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxes Note 11 - INCOME TAXES Notes 18 false false R19.htm 11201 - Disclosure - Note 12 - NET LOSS PER SHARE Sheet http://www.pdf.com/role/DisclosureNote12NetLossPerShare Note 12 - NET LOSS PER SHARE Notes 19 false false R20.htm 11301 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION Sheet http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformation Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION Notes 20 false false R21.htm 11401 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS Sheet http://www.pdf.com/role/DisclosureNote14FinancialInstruments Note 14 - FINANCIAL INSTRUMENTS Notes 21 false false R22.htm 11501 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) Sheet http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnaudited Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) Notes 22 false false R23.htm 20102 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies) Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies) Policies 23 false false R24.htm 30103 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) Sheet http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables) Tables http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies 24 false false R25.htm 30203 - Disclosure - Note 2 - REVENUE (Tables) Sheet http://www.pdf.com/role/DisclosureNote2RevenueTables Note 2 - REVENUE (Tables) Tables http://www.pdf.com/role/DisclosureNote2Revenue 25 false false R26.htm 30403 - Disclosure - Note 4 - BUSINESS COMBINATION (Tables) Sheet http://www.pdf.com/role/DisclosureNote4BusinessCombinationTables Note 4 - BUSINESS COMBINATION (Tables) Tables http://www.pdf.com/role/DisclosureNote4BusinessCombination 26 false false R27.htm 30503 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT (Tables) Sheet http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentTables Note 5 - PROPERTY AND EQUIPMENT (Tables) Tables http://www.pdf.com/role/DisclosureNote5PropertyAndEquipment 27 false false R28.htm 30603 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS (Tables) Sheet http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables Note 6 - GOODWILL AND INTANGIBLE ASSETS (Tables) Tables http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssets 28 false false R29.htm 30703 - Disclosure - Note 7 - LEASES (Tables) Sheet http://www.pdf.com/role/DisclosureNote7LeasesTables Note 7 - LEASES (Tables) Tables http://www.pdf.com/role/DisclosureNote7Leases 29 false false R30.htm 31003 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS (Tables) Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables Note 10 - EMPLOYEE BENEFIT PLANS (Tables) Tables http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlans 30 false false R31.htm 31103 - Disclosure - Note 11 - INCOME TAXES (Tables) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables Note 11 - INCOME TAXES (Tables) Tables http://www.pdf.com/role/DisclosureNote11IncomeTaxes 31 false false R32.htm 31203 - Disclosure - Note 12 - NET LOSS PER SHARE (Tables) Sheet http://www.pdf.com/role/DisclosureNote12NetLossPerShareTables Note 12 - NET LOSS PER SHARE (Tables) Tables http://www.pdf.com/role/DisclosureNote12NetLossPerShare 32 false false R33.htm 31303 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Sheet http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationTables Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Tables http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformation 33 false false R34.htm 31403 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS (Tables) Sheet http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsTables Note 14 - FINANCIAL INSTRUMENTS (Tables) Tables http://www.pdf.com/role/DisclosureNote14FinancialInstruments 34 false false R35.htm 31503 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Tables) Sheet http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedTables Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Tables) Tables http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnaudited 35 false false R36.htm 40101 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details) Details http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables 36 false false R37.htm 40102 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) Sheet http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details) Details 37 false false R38.htm 40103 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details) Sheet http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details) Details 38 false false R39.htm 40201 - Disclosure - Note 2 - REVENUE - Narrative 1 (Details) Sheet http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details Note 2 - REVENUE - Narrative 1 (Details) Details 39 false false R40.htm 40202 - Disclosure - Note 2 - REVENUE - Narrative 2 (Details) Sheet http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details Note 2 - REVENUE - Narrative 2 (Details) Details 40 false false R41.htm 40203 - Disclosure - Note 2 - REVENUE - Disaggregation of Revenue (Details) Sheet http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails Note 2 - REVENUE - Disaggregation of Revenue (Details) Details 41 false false R42.htm 40301 - Disclosure - Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Sheet http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Details http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions 42 false false R43.htm 40401 - Disclosure - Note 4 - BUSINESS COMBINATION - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails Note 4 - BUSINESS COMBINATION - Narrative (Details) Details 43 false false R44.htm 40402 - Disclosure - Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives (Details) Sheet http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives (Details) Details 44 false false R45.htm 40403 - Disclosure - Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives Other (Details) Sheet http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives Other (Details) Details 45 false false R46.htm 40501 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails Note 5 - PROPERTY AND EQUIPMENT - Narrative (Details) Details 46 false false R47.htm 40502 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT - Property and Equipment (Details) Sheet http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails Note 5 - PROPERTY AND EQUIPMENT - Property and Equipment (Details) Details 47 false false R48.htm 40601 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails Note 6 - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details) Details 48 false false R49.htm 40602 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) Sheet http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails Note 6 - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details) Details 49 false false R50.htm 40603 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails Note 6 - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details) Details 50 false false R51.htm 40604 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails Note 6 - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details) Details 51 false false R52.htm 40701 - Disclosure - Note 7 - LEASES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote7LeasesNarrativeDetails Note 7 - LEASES - Narrative (Details) Details 52 false false R53.htm 40702 - Disclosure - Note 7 - LEASES - Lease Cost (Details) Sheet http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails Note 7 - LEASES - Lease Cost (Details) Details 53 false false R54.htm 40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) Sheet http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) Details 54 false false R55.htm 40801 - Disclosure - Note 8 - COMMITMENTS AND CONTINGENCIES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingenciesNarrativeDetails Note 8 - COMMITMENTS AND CONTINGENCIES - Narrative (Details) Details 55 false false R56.htm 40901 - Disclosure - Note 9 - STOCKHOLDERS EQUITY - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails Note 9 - STOCKHOLDERS EQUITY - Narrative (Details) Details 56 false false R57.htm 41001 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails Note 10 - EMPLOYEE BENEFIT PLANS - Narrative (Details) Details 57 false false R58.htm 41002 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options, Valuation Assumptions (Details) Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options, Valuation Assumptions (Details) Details 58 false false R59.htm 41003 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails Note 10 - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Details 59 false false R60.htm 41004 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) Details 60 false false R61.htm 41005 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Sheet http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails Note 10 - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Details 61 false false R62.htm 41101 - Disclosure - Note 11 - INCOME TAXES - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails Note 11 - INCOME TAXES - Narrative (Details) Details 62 false false R63.htm 41102 - Disclosure - Note 11 - INCOME TAXES - Income Tax Expense (Benefit) (Details) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails Note 11 - INCOME TAXES - Income Tax Expense (Benefit) (Details) Details 63 false false R64.htm 41103 - Disclosure - Note 11 - INCOME TAXES - Income Tax Reconciliation (Details) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails Note 11 - INCOME TAXES - Income Tax Reconciliation (Details) Details 64 false false R65.htm 41104 - Disclosure - Note 11 - INCOME TAXES - Deferred Tax Assets (Details) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails Note 11 - INCOME TAXES - Deferred Tax Assets (Details) Details 65 false false R66.htm 41105 - Disclosure - Note 11 - INCOME TAXES - Unrecognized Tax Benefits (Details) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesUnrecognizedTaxBenefitsDetails Note 11 - INCOME TAXES - Unrecognized Tax Benefits (Details) Details 66 false false R67.htm 41106 - Disclosure - Note 11 - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) Sheet http://www.pdf.com/role/DisclosureNote11IncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails Note 11 - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details) Details 67 false false R68.htm 41201 - Disclosure - Note 12 - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) Sheet http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails Note 12 - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details) Details 68 false false R69.htm 41202 - Disclosure - Note 12 - NET LOSS PER SHARE - Anti-dilutive Securities (Details) Sheet http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails Note 12 - NET LOSS PER SHARE - Anti-dilutive Securities (Details) Details 69 false false R70.htm 41301 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Narrative (Details) Sheet http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationNarrativeDetails Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Narrative (Details) Details 70 false false R71.htm 41302 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Sheet http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Details 71 false false R72.htm 41303 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Details 72 false false R73.htm 41304 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Details 73 false false R74.htm 41401 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS - Other (Details) Sheet http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails Note 14 - FINANCIAL INSTRUMENTS - Other (Details) Details 74 false false R75.htm 41402 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) Sheet http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails Note 14 - FINANCIAL INSTRUMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) Details 75 false false R76.htm 41501 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Details) Sheet http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Details) Details http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedTables 76 false false All Reports Book All Reports pdfs-20211231x10k.htm pdfs-20211231.xsd pdfs-20211231_cal.xml pdfs-20211231_def.xml pdfs-20211231_lab.xml pdfs-20211231_pre.xml pdfs-20211231xex21d1.htm pdfs-20211231xex23d1.htm pdfs-20211231xex31d1.htm pdfs-20211231xex31d2.htm pdfs-20211231xex32d1.htm pdfs-20211231xex32d2.htm pdfs-20211231xex4d3.htm http://fasb.org/us-gaap/2021-01-31 http://xbrl.sec.gov/dei/2021q4 true true JSON 97 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "pdfs-20211231x10k.htm": { "axisCustom": 0, "axisStandard": 28, "contextCount": 227, "dts": { "calculationLink": { "local": [ "pdfs-20211231_cal.xml" ] }, "definitionLink": { "local": [ "pdfs-20211231_def.xml" ] }, "inline": { "local": [ "pdfs-20211231x10k.htm" ] }, "labelLink": { "local": [ "pdfs-20211231_lab.xml" ] }, "presentationLink": { "local": [ "pdfs-20211231_pre.xml" ] }, "schema": { "local": [ "pdfs-20211231.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/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/2021/elts/srt-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd", "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd", "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd", "https://xbrl.sec.gov/country/2021/country-2021.xsd", "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd" ] } }, "elementCount": 587, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2021-01-31": 31, "http://www.pdf.com/20211231": 1, "http://xbrl.sec.gov/dei/2021q4": 6, "total": 38 }, "keyCustom": 51, "keyStandard": 447, "memberCustom": 33, "memberStandard": 49, "nsprefix": "pdfs", "nsuri": "http://www.pdf.com/20211231", "report": { "R1": { "firstAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00090 - Document - Document And Entity Information", "role": "http://www.pdf.com/role/DocumentDocumentAndEntityInformation", "shortName": "Document And Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "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": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10301 - Disclosure - Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "role": "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions", "shortName": "Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10401 - Disclosure - Note 4 - BUSINESS COMBINATION", "role": "http://www.pdf.com/role/DisclosureNote4BusinessCombination", "shortName": "Note 4 - BUSINESS COMBINATION", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "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": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10501 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT", "role": "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipment", "shortName": "Note 5 - PROPERTY AND EQUIPMENT", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10601 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS", "role": "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssets", "shortName": "Note 6 - GOODWILL AND INTANGIBLE ASSETS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10701 - Disclosure - Note 7 - LEASES", "role": "http://www.pdf.com/role/DisclosureNote7Leases", "shortName": "Note 7 - LEASES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10801 - Disclosure - Note 8 - COMMITMENTS AND CONTINGENCIES", "role": "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingencies", "shortName": "Note 8 - COMMITMENTS AND CONTINGENCIES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10901 - Disclosure - Note 9 - STOCKHOLDERS EQUITY", "role": "http://www.pdf.com/role/DisclosureNote9StockholdersEquity", "shortName": "Note 9 - STOCKHOLDERS EQUITY", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11001 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlans", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11101 - Disclosure - Note 11 - INCOME TAXES", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxes", "shortName": "Note 11 - INCOME TAXES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11201 - Disclosure - Note 12 - NET LOSS PER SHARE", "role": "http://www.pdf.com/role/DisclosureNote12NetLossPerShare", "shortName": "Note 12 - NET LOSS PER SHARE", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00100 - Statement - CONSOLIDATED BALANCE SHEETS", "role": "http://www.pdf.com/role/StatementConsolidatedBalanceSheets", "shortName": "CONSOLIDATED BALANCE SHEETS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "lang": null, "name": "us-gaap:ShortTermInvestments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11301 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION", "role": "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformation", "shortName": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11401 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS", "role": "http://www.pdf.com/role/DisclosureNote14FinancialInstruments", "shortName": "Note 14 - FINANCIAL INSTRUMENTS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:QuarterlyFinancialInformationTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11501 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)", "role": "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnaudited", "shortName": "Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:QuarterlyFinancialInformationTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "20102 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)", "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "us-gaap:TradeAndOtherAccountsReceivablePolicy", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "pdfs:AllowanceForDoubtfulAccountsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30103 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)", "role": "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables", "shortName": "Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:TradeAndOtherAccountsReceivablePolicy", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "pdfs:AllowanceForDoubtfulAccountsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30203 - Disclosure - Note 2 - REVENUE (Tables)", "role": "http://www.pdf.com/role/DisclosureNote2RevenueTables", "shortName": "Note 2 - REVENUE (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30403 - Disclosure - Note 4 - BUSINESS COMBINATION (Tables)", "role": "http://www.pdf.com/role/DisclosureNote4BusinessCombinationTables", "shortName": "Note 4 - BUSINESS COMBINATION (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30503 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT (Tables)", "role": "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentTables", "shortName": "Note 5 - PROPERTY AND EQUIPMENT (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30603 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS (Tables)", "role": "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables", "shortName": "Note 6 - GOODWILL AND INTANGIBLE ASSETS (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30703 - Disclosure - Note 7 - LEASES (Tables)", "role": "http://www.pdf.com/role/DisclosureNote7LeasesTables", "shortName": "Note 7 - LEASES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00105 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)", "role": "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals", "shortName": "CONSOLIDATED BALANCE SHEETS (Parentheticals)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31003 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS (Tables)", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31103 - Disclosure - Note 11 - INCOME TAXES (Tables)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables", "shortName": "Note 11 - INCOME TAXES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31203 - Disclosure - Note 12 - NET LOSS PER SHARE (Tables)", "role": "http://www.pdf.com/role/DisclosureNote12NetLossPerShareTables", "shortName": "Note 12 - NET LOSS PER SHARE (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31303 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "role": "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationTables", "shortName": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31403 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS (Tables)", "role": "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsTables", "shortName": "Note 14 - FINANCIAL INSTRUMENTS (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:QuarterlyFinancialInformationTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31503 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Tables)", "role": "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedTables", "shortName": "Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:QuarterlyFinancialInformationTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "p", "pdfs:CashCashEquivalentsAndShorttermInvestmentsPolicyPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:GainLossOnInvestments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40101 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "shortName": "Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "pdfs:CashCashEquivalentsAndShorttermInvestmentsPolicyPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:GainLossOnInvestments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:SummaryOfValuationAllowanceTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_B-gbe0jY_keZYpXJK8t67g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ValuationAllowancesAndReservesBalance", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40102 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details)", "role": "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "shortName": "Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Allowance for Doubtful Accounts (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "pdfs:AllowanceForDoubtfulAccountsTableTextBlock", "us-gaap:TradeAndOtherAccountsReceivablePolicy", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2019_us-gaap_ValuationAllowancesAndReservesTypeAxis_us-gaap_AllowanceForCreditLossMember_awbEN0uncEyRjSBQ8M22MQ", "decimals": "-3", "lang": null, "name": "us-gaap:ValuationAllowancesAndReservesBalance", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "pdfs:PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock", "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_owSlIC1KAESujQQ4K_r_dQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40103 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details)", "role": "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "shortName": "Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES - Estimated Useful Lives of Property and Equipment (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "pdfs:PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock", "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_PropertyPlantAndEquipmentByTypeAxis_us-gaap_ComputerEquipmentMember_owSlIC1KAESujQQ4K_r_dQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "INF", "first": true, "lang": null, "name": "pdfs:NumberOfRevenueSources", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_SsqS22ZY8EidqHrxWxKm9A", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40201 - Disclosure - Note 2 - REVENUE - Narrative 1 (Details)", "role": "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details", "shortName": "Note 2 - REVENUE - Narrative 1 (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "INF", "first": true, "lang": null, "name": "pdfs:NumberOfRevenueSources", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_SsqS22ZY8EidqHrxWxKm9A", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00200 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS", "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "lang": null, "name": "us-gaap:ResearchAndDevelopmentExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R40": { "firstAnchor": null, "groupType": "disclosure", "isDefault": "false", "longName": "40202 - Disclosure - Note 2 - REVENUE - Narrative 2 (Details)", "role": "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "shortName": "Note 2 - REVENUE - Narrative 2 (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R41": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "2", "first": true, "lang": null, "name": "pdfs:PercentOfRevenue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_z-Knccl1lEuAy7VvI6WMNQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40203 - Disclosure - Note 2 - REVENUE - Disaggregation of Revenue (Details)", "role": "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails", "shortName": "Note 2 - REVENUE - Disaggregation of Revenue (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "2", "first": true, "lang": null, "name": "pdfs:PercentOfRevenue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_z-Knccl1lEuAy7VvI6WMNQ", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_J5vqeelTzEOI9wsVg7HZ8w", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProceedsFromIssuanceOfCommonStock", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40301 - Disclosure - Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "role": "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "shortName": "Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_7_29_2020_To_7_29_2020_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_pdfs_StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember_sWIiTr2dnUKku-ovbNG3YQ", "decimals": "INF", "lang": null, "name": "us-gaap:StockIssuedDuringPeriodSharesNewIssues", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40401 - Disclosure - Note 4 - BUSINESS COMBINATION - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails", "shortName": "Note 4 - BUSINESS COMBINATION - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_12_1_2020_To_12_1_2020_us-gaap_BusinessAcquisitionAxis_pdfs_CimetrixIncorporatedMember_Ogrg6WR1ik6a8TngN11dHw", "decimals": "-5", "lang": null, "name": "us-gaap:BusinessCombinationConsiderationTransferred1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_B-gbe0jY_keZYpXJK8t67g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40402 - Disclosure - Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives (Details)", "role": "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "shortName": "Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_us-gaap_BusinessAcquisitionAxis_pdfs_CimetrixIncorporatedMember_2havdnzVQ0Sb5e2KtiBvtg", "decimals": "-3", "lang": null, "name": "pdfs:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedTangibleAssetsIncludingCash", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_us-gaap_BusinessAcquisitionAxis_pdfs_CimetrixIncorporatedMember_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_us-gaap_DevelopedTechnologyRightsMember_twm4R-9uvk66UNVlonszOg", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40403 - Disclosure - Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives Other (Details)", "role": "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "shortName": "Note 4 - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed and the Related Useful Lives Other (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R46": { "firstAnchor": { "ancestors": [ "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:DepreciationAndAmortization", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40501 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails", "shortName": "Note 5 - PROPERTY AND EQUIPMENT - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:DepreciationAndAmortization", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40502 - Disclosure - Note 5 - PROPERTY AND EQUIPMENT - Property and Equipment (Details)", "role": "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails", "shortName": "Note 5 - PROPERTY AND EQUIPMENT - Property and Equipment (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40601 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails", "shortName": "Note 6 - GOODWILL AND INTANGIBLE ASSETS - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "lang": "en-US", "name": "us-gaap:FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_B-gbe0jY_keZYpXJK8t67g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40602 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details)", "role": "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails", "shortName": "Note 6 - GOODWILL AND INTANGIBLE ASSETS - Change in Carrying Amount of Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_J5vqeelTzEOI9wsVg7HZ8w", "decimals": "-3", "lang": null, "name": "us-gaap:GoodwillAcquiredDuringPeriod", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_pdfs_CommonStockOutstandingMember_X4dLOYYl9kSnrMpMztG3Mw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00300 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2019_us-gaap_StatementEquityComponentsAxis_pdfs_CommonStockOutstandingMember_X4dLOYYl9kSnrMpMztG3Mw", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40603 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details)", "role": "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails", "shortName": "Note 6 - GOODWILL AND INTANGIBLE ASSETS - Intangible Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40604 - Disclosure - Note 6 - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details)", "role": "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "shortName": "Note 6 - GOODWILL AND INTANGIBLE ASSETS - Annual Amortization of Identifiable Intangible Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-5", "first": true, "lang": null, "name": "pdfs:OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40701 - Disclosure - Note 7 - LEASES - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote7LeasesNarrativeDetails", "shortName": "Note 7 - LEASES - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-5", "first": true, "lang": null, "name": "pdfs:OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40702 - Disclosure - Note 7 - LEASES - Lease Cost (Details)", "role": "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails", "shortName": "Note 7 - LEASES - Lease Cost (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseCost", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details)", "role": "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails", "shortName": "Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "pdfs:TermOfProductWarranty", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40801 - Disclosure - Note 8 - COMMITMENTS AND CONTINGENCIES - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingenciesNarrativeDetails", "shortName": "Note 8 - COMMITMENTS AND CONTINGENCIES - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "pdfs:TermOfProductWarranty", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_J5vqeelTzEOI9wsVg7HZ8w", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProceedsFromIssuanceOfCommonStock", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40901 - Disclosure - Note 9 - STOCKHOLDERS EQUITY - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "shortName": "Note 9 - STOCKHOLDERS EQUITY - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_5_28_2020_To_5_28_2020_us-gaap_ShareRepurchaseProgramAxis_pdfs_The2018StockRepurchaseProgramMember_ot4fPsuRQEi7LXER500vpw", "decimals": "INF", "lang": null, "name": "us-gaap:TreasuryStockSharesAcquired", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "reportCount": 1, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41001 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "INF", "lang": null, "name": "us-gaap:SharePrice", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_55MLcLQR80WyhkAq2DrY8g", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_J5vqeelTzEOI9wsVg7HZ8w", "decimals": "2", "first": true, "lang": null, "name": "pdfs:EmployeeStockPurchasePlanGrantsInPeriodWeightedAverageGrantDateFairValue", "reportCount": 1, "unitRef": "Unit_Divide_USD_shares_55MLcLQR80WyhkAq2DrY8g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41002 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options, Valuation Assumptions (Details)", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options, Valuation Assumptions (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_PlanNameAxis_pdfs_TwentyTwentyOneEmployeeStockPurchasePlanMember_sUxTYmsn9kyneqBLCtyBCQ", "decimals": null, "lang": "en-US", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41003 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_J5vqeelTzEOI9wsVg7HZ8w", "decimals": "-5", "first": true, "lang": null, "name": "pdfs:AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCostsPrivatePlacement", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00305 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY (Parentheticals)", "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquityParentheticals", "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY (Parentheticals)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_J5vqeelTzEOI9wsVg7HZ8w", "decimals": "-5", "first": true, "lang": null, "name": "pdfs:AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCostsPrivatePlacement", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_B-gbe0jY_keZYpXJK8t67g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41004 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details)", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "0", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_tSBQj92kL0iij5OFDcAkyQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41005 - Disclosure - Note 10 - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "role": "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "shortName": "Note 10 - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2019_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_EsdtGXiCrkmgo5G2tUn8ug", "decimals": "-3", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41101 - Disclosure - Note 11 - INCOME TAXES - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails", "shortName": "Note 11 - INCOME TAXES - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41102 - Disclosure - Note 11 - INCOME TAXES - Income Tax Expense (Benefit) (Details)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails", "shortName": "Note 11 - INCOME TAXES - Income Tax Expense (Benefit) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41103 - Disclosure - Note 11 - INCOME TAXES - Income Tax Reconciliation (Details)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails", "shortName": "Note 11 - INCOME TAXES - Income Tax Reconciliation (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41104 - Disclosure - Note 11 - INCOME TAXES - Deferred Tax Assets (Details)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails", "shortName": "Note 11 - INCOME TAXES - Deferred Tax Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_B-gbe0jY_keZYpXJK8t67g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:UnrecognizedTaxBenefits", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41105 - Disclosure - Note 11 - INCOME TAXES - Unrecognized Tax Benefits (Details)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesUnrecognizedTaxBenefitsDetails", "shortName": "Note 11 - INCOME TAXES - Unrecognized Tax Benefits (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "lang": null, "name": "us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R67": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:SummaryOfValuationAllowanceTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2020_B-gbe0jY_keZYpXJK8t67g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ValuationAllowancesAndReservesBalance", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41106 - Disclosure - Note 11 - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details)", "role": "http://www.pdf.com/role/DisclosureNote11IncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "shortName": "Note 11 - INCOME TAXES - Valuation Allowance of Deferred Tax Assets (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R68": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock", "us-gaap:QuarterlyFinancialInformationTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_10_1_2021_To_12_31_2021_l2ZDxgr3f0CEpHS5Qzp_1A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41201 - Disclosure - Note 12 - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details)", "role": "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails", "shortName": "Note 12 - NET LOSS PER SHARE - Calculation of Earnings Per Share (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R69": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41202 - Disclosure - Note 12 - NET LOSS PER SHARE - Anti-dilutive Securities (Details)", "role": "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails", "shortName": "Note 12 - NET LOSS PER SHARE - Anti-dilutive Securities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_oFh2sGF5Z0KDg8XiKpOcXw", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00400 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS", "role": "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows", "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R70": { "firstAnchor": { "ancestors": [ "p", "us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfOperatingSegments", "reportCount": 1, "unitRef": "Unit_Standard_pure_z-Knccl1lEuAy7VvI6WMNQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41301 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Narrative (Details)", "role": "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationNarrativeDetails", "shortName": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Narrative (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R71": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_pdfs_CustomerAMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_dwmTMov7ikigcCHOETxZxQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_z-Knccl1lEuAy7VvI6WMNQ", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41302 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "role": "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "shortName": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2020_To_12_31_2020_srt_MajorCustomersAxis_pdfs_CustomerAMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_dwmTMov7ikigcCHOETxZxQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_z-Knccl1lEuAy7VvI6WMNQ", "xsiNil": "false" } }, "R72": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock", "us-gaap:QuarterlyFinancialInformationTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_10_1_2021_To_12_31_2021_l2ZDxgr3f0CEpHS5Qzp_1A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41303 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "role": "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "shortName": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_GeographicConcentrationRiskMember_dLTaGRqzFUaV4J4b96lSoQ", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R73": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41304 - Disclosure - Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "role": "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "shortName": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NoncurrentAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R74": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_ForeignExchangeContractMember_us-gaap_IncomeStatementLocationAxis_us-gaap_OtherNonoperatingIncomeExpenseMember_Ho4KTrLS5E2i8PnXFvuREg", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DerivativeGainOnDerivative", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41401 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS - Other (Details)", "role": "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails", "shortName": "Note 14 - FINANCIAL INSTRUMENTS - Other (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_ForeignExchangeContractMember_us-gaap_IncomeStatementLocationAxis_us-gaap_OtherNonoperatingIncomeExpenseMember_Ho4KTrLS5E2i8PnXFvuREg", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DerivativeGainOnDerivative", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R75": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "pdfs:CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41402 - Disclosure - Note 14 - FINANCIAL INSTRUMENTS - Fair Value, Assets Measured on a Recurring Basis (Details)", "role": "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails", "shortName": "Note 14 - FINANCIAL INSTRUMENTS - Fair Value, Assets Measured on a Recurring Basis (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "As_Of_12_31_2021_UAnGbiUk8kq4X3rjLb-fNA", "decimals": "-3", "first": true, "lang": null, "name": "pdfs:CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R76": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock", "us-gaap:QuarterlyFinancialInformationTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_10_1_2021_To_12_31_2021_l2ZDxgr3f0CEpHS5Qzp_1A", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41501 - Disclosure - Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Details)", "role": "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails", "shortName": "Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock", "us-gaap:QuarterlyFinancialInformationTextBlock", "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_10_1_2021_To_12_31_2021_l2ZDxgr3f0CEpHS5Qzp_1A", "decimals": "-3", "lang": null, "name": "us-gaap:CostOfRevenue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_gH-A_5QEIE-Lfp9ZDlEhdA", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10101 - Disclosure - Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "role": "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies", "shortName": "Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10201 - Disclosure - Note 2 - REVENUE", "role": "http://www.pdf.com/role/DisclosureNote2Revenue", "shortName": "Note 2 - REVENUE", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "pdfs-20211231x10k.htm", "contextRef": "Duration_1_1_2021_To_12_31_2021_L0sjPHdI80KvnIqhWpzxSg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 86, "tag": { "country_CN": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CHINA" } } }, "localname": "CN", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_JP": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "JAPAN" } } }, "localname": "JP", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_TW": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "TAIWAN, PROVINCE OF CHINA" } } }, "localname": "TW", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "country_US": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "UNITED STATES" } } }, "localname": "US", "nsuri": "http://xbrl.sec.gov/country/2021", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_AuditorFirmId": { "auth_ref": [ "r569", "r570", "r571" ], "lang": { "en-us": { "role": { "documentation": "PCAOB issued Audit Firm Identifier", "label": "Auditor Firm ID" } } }, "localname": "AuditorFirmId", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "nonemptySequenceNumberItemType" }, "dei_AuditorLocation": { "auth_ref": [ "r569", "r570", "r571" ], "lang": { "en-us": { "role": { "label": "Auditor Location" } } }, "localname": "AuditorLocation", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_AuditorName": { "auth_ref": [ "r569", "r570", "r571" ], "lang": { "en-us": { "role": { "label": "Auditor Name" } } }, "localname": "AuditorName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Document and Entity Information" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentAnnualReport": { "auth_ref": [ "r569", "r570", "r571" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an annual report.", "label": "Document Annual Report" } } }, "localname": "DocumentAnnualReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "dateItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r572" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.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" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r573" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityPublicFloat": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.", "label": "Entity Public Float" } } }, "localname": "EntityPublicFloat", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "monetaryItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r567" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "employerIdItemType" }, "dei_EntityVoluntaryFilers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.", "label": "Entity Voluntary Filers" } } }, "localname": "EntityVoluntaryFilers", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityWellKnownSeasonedIssuer": { "auth_ref": [ "r574" ], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.", "label": "Entity Well-known Seasoned Issuer" } } }, "localname": "EntityWellKnownSeasonedIssuer", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_IcfrAuditorAttestationFlag": { "auth_ref": [ "r569", "r570", "r571" ], "lang": { "en-us": { "role": { "label": "ICFR Auditor Attestation Flag" } } }, "localname": "IcfrAuditorAttestationFlag", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r566" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r568" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2021q4", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "pdfs_AccruedCompensationAndRelatedBenefitsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to accrued compensation and related benefits.", "label": "Accrued Compensation and Related Benefits [Member]" } } }, "localname": "AccruedCompensationAndRelatedBenefitsMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCostsPrivatePlacement": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in additional paid in capital (APIC) resulting from direct costs (legal fees) associated with issuing stock under a private placement.", "label": "Adjustments To Additional Paid In Capital Stock Issued Issuance Costs Private Placement", "terseLabel": "Issuance costs" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCostsPrivatePlacement", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquityParentheticals" ], "xbrltype": "monetaryItemType" }, "pdfs_AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents advances for purchase of fixed assets transferred from prepaid assets to property and equipment.", "label": "Advances For Purchase Of Fixed Assets Transferred From Prepaid Assets To Property And Equipment", "terseLabel": "Advances for purchase of fixed assets transferred from prepaid assets to property and equipment" } } }, "localname": "AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_AdvantestAmericaIncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Advantest America, Inc.", "label": "Advantest America, Inc. [Member]" } } }, "localname": "AdvantestAmericaIncMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details" ], "xbrltype": "domainItemType" }, "pdfs_AllowanceForDoubtfulAccountsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of allowance for doubtful accounts.", "label": "Allowance for Doubtful Accounts [Table Text Block]" } } }, "localname": "AllowanceForDoubtfulAccountsTableTextBlock", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "pdfs_Amendment1ToSoftwareLicenseRelatedServicesAgreementMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to amendment #1 to the software license & related services agreement.", "label": "Amendment #1 to Software License & Related Services Agreement [Member]" } } }, "localname": "Amendment1ToSoftwareLicenseRelatedServicesAgreementMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "domainItemType" }, "pdfs_AmortizationOfAcquiredIntangibleAsset": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of acquired intangible assets. As a noncash expense, this element is added back to net income when calculating cash provided by (used in) operations using the indirect method.", "label": "Amortization Of Acquired Intangible Asset", "terseLabel": "Amortization of acquired intangible assets" } } }, "localname": "AmortizationOfAcquiredIntangibleAsset", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "pdfs_AmortizationOfAcquiredIntangibleAssets": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents amortization of acquired intangible assets.", "label": "pdfs_AmortizationOfAcquiredIntangibleAssets", "terseLabel": "Amortization of acquired intangible assets" } } }, "localname": "AmortizationOfAcquiredIntangibleAssets", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_AmortizationOfOtherAcquiredIntangibleAssetsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing amortization of other acquired intangible assets.", "label": "Amortization Of Other Acquired Intangible Assets [Member]" } } }, "localname": "AmortizationOfOtherAcquiredIntangibleAssetsMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_AnalyticsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to analytics.", "label": "Analytics [Member]" } } }, "localname": "AnalyticsMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "domainItemType" }, "pdfs_BusinessCombinationAccruedEstimatedCashPayoutToCertainEmployees": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the accrued portion of the amount to be paid out to certain employees for their continued employment after the business acquisition.", "label": "pdfs_BusinessCombinationAccruedEstimatedCashPayoutToCertainEmployees", "terseLabel": "Business Combination, Accrued Estimated Cash Payout to Certain Employees" } } }, "localname": "BusinessCombinationAccruedEstimatedCashPayoutToCertainEmployees", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationEstimatedCashPayoutToCertainEmployees": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the amount of cash to be paid out to certain employees for their continued employment.", "label": "pdfs_BusinessCombinationEstimatedCashPayoutToCertainEmployees", "terseLabel": "Business Combination, Estimated Cash Payout to Certain Employees" } } }, "localname": "BusinessCombinationEstimatedCashPayoutToCertainEmployees", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationHoldbackAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the portion of the purchase price that is not paid at closing and withheld to satisfy adjustments and claims for indemnity arising out of breaches of certain representations, warranties and covenants, and certain other enumerated items in the merger agreement. The amount, as adjusted, is expected to be paid to the participating equity holders on approximately the twelve-month anniversary of the Acquisition Date.", "label": "pdfs_BusinessCombinationHoldbackAmount", "terseLabel": "Business Combination, Holdback Amount" } } }, "localname": "BusinessCombinationHoldbackAmount", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndAccruedExpenses": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred for goods and services received including accrued compensation that are used in an entity's business, assumed at the acquisition date.", "label": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndAccruedExpenses", "terseLabel": "Accounts payable and accrued expenses" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccountsPayableAndAccruedExpenses", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of operating lease liabilities assumed at the acquisition date.", "label": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities", "terseLabel": "Operating lease liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesOperatingLeaseLiabilities", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilitiesPurchasePriceAdjustment": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of purchase price adjustment 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 Purchase Price Adjustment", "terseLabel": "Increase (decrease) in deferred tax liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilitiesPurchasePriceAdjustment", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedTangibleAssetsIncludingCash": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 2.0, "parentTag": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of tangible assets including cash recognized as of the acquisition date.", "label": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedTangibleAssetsIncludingCash", "terseLabel": "Fair value of tangible assets (including cash of $5,900)" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedTangibleAssetsIncludingCash", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of assets including goodwill recognized as of the acquisition date.", "label": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill", "totalLabel": "Total assets acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_CaliforniaRDTaxCreditsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents California R&D tax credits.", "label": "California R&D Tax Credits [Member]" } } }, "localname": "CaliforniaRDTaxCreditsMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_CapitalizedComputerSoftwareUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The useful life of capitalized internally developed computer software.", "label": "pdfs_CapitalizedComputerSoftwareUsefulLife", "terseLabel": "Capitalized Computer Software, Useful Life (Year)" } } }, "localname": "CapitalizedComputerSoftwareUsefulLife", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "pdfs_CashCashEquivalentsAndShorttermInvestmentsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cash, cash equivalents, and short-term investments.", "label": "Cash, Cash Equivalents, and Short-term Investments, Policy [Policy Text Block]" } } }, "localname": "CashCashEquivalentsAndShorttermInvestmentsPolicyPolicyTextBlock", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of cash, cash equivalents and short term investments measured at fair value.", "label": "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "totalLabel": "Total" } } }, "localname": "CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_CimetrixIncorporatedMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Cimetrix Incorporated.", "label": "Cimetrix Incorporated [Member]" } } }, "localname": "CimetrixIncorporatedMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_CommercialAgreementWithAdvantestMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the commercial agreement with Advantest.", "label": "Commercial Agreement With Advantest [Member]" } } }, "localname": "CommercialAgreementWithAdvantestMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "domainItemType" }, "pdfs_CommonStockOutstandingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock Outstanding [Member]" } } }, "localname": "CommonStockOutstandingMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "pdfs_ContractWithCustomerAssetUnbilledReceivablesNotBillableAmountExpectedToBeCollectedAfterNextTwelveMonths": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of right to consideration in exchange for good or service transferred to customer under long-term contracts that have not been billed and were not billable that are expected to be collected after the next fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "pdfs_ContractWithCustomerAssetUnbilledReceivablesNotBillableAmountExpectedToBeCollectedAfterNextTwelveMonths", "terseLabel": "Contract with Customer, Asset, Unbilled Receivables, Not Billable, Amount Expected to be Collected after Next Twelve Months" } } }, "localname": "ContractWithCustomerAssetUnbilledReceivablesNotBillableAmountExpectedToBeCollectedAfterNextTwelveMonths", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_ContractWithCustomerLiabilityBillingsInExcessOfRevenueRecognized": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.", "label": "Billings in excess of recognized revenues" } } }, "localname": "ContractWithCustomerLiabilityBillingsInExcessOfRevenueRecognized", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "pdfs_CustomerAMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer A.", "label": "Customer A [Member]" } } }, "localname": "CustomerAMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "xbrltype": "domainItemType" }, "pdfs_CustomerBMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer B.", "label": "Customer B [Member]" } } }, "localname": "CustomerBMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "xbrltype": "domainItemType" }, "pdfs_CustomerCMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer C.", "label": "Customer C [Member]" } } }, "localname": "CustomerCMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "xbrltype": "domainItemType" }, "pdfs_CustomerDMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer D.", "label": "Customer D [Member]" } } }, "localname": "CustomerDMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "xbrltype": "domainItemType" }, "pdfs_CustomerEMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer E.", "label": "Customer E [Member]" } } }, "localname": "CustomerEMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "xbrltype": "domainItemType" }, "pdfs_DFITestEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to DFI test equipment.", "label": "DFI Test Equipment [Member]" } } }, "localname": "DFITestEquipmentMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_DeferredTaxAssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred tax assets:" } } }, "localname": "DeferredTaxAssetsAbstract", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "stringItemType" }, "pdfs_DeferredTaxAssetsLeases": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 6.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "mount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from leases.", "label": "pdfs_DeferredTaxAssetsLeases", "terseLabel": "Leases" } } }, "localname": "DeferredTaxAssetsLeases", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_DeferredTaxLiabilitiesAssetsPropertyPlantAndEquipment": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability or assets attributable to taxable temporary differences from property, plant, and equipment.", "label": "Deferred Tax Liabilities Assets Property Plant And Equipment", "negatedLabel": "Property and equipment, net" } } }, "localname": "DeferredTaxLiabilitiesAssetsPropertyPlantAndEquipment", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_DeferredTaxLiabilitiesOperatingLeaseRightofuseAssets": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from operating lease right-of-use assets.", "label": "pdfs_DeferredTaxLiabilitiesOperatingLeaseRightofuseAssets", "negatedTerseLabel": "Operating lease right-of-use assets" } } }, "localname": "DeferredTaxLiabilitiesOperatingLeaseRightofuseAssets", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_EffectiveIncomeTaxRateReconciliationBusinessCombinationCostsAmount": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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 business combination costs.", "label": "pdfs_EffectiveIncomeTaxRateReconciliationBusinessCombinationCostsAmount", "terseLabel": "Business combination costs" } } }, "localname": "EffectiveIncomeTaxRateReconciliationBusinessCombinationCostsAmount", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_EffectiveIncomeTaxRateReconciliationUnrealizedTaxBenefitReserveChanges": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 5.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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 unrealized tax benefit reserve changes.", "label": "Effective Income Tax Rate Reconciliation Unrealized Tax Benefit Reserve Changes", "terseLabel": "Unrealized tax benefit reserve changes" } } }, "localname": "EffectiveIncomeTaxRateReconciliationUnrealizedTaxBenefitReserveChanges", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_EmployeeStockPurchasePlanGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The weighted average grant-date fair value of shares granted under an employee stock purchase plan during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "pdfs_EmployeeStockPurchasePlanGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "Weighted average fair value per share of options granted during the period (in dollars per share)" } } }, "localname": "EmployeeStockPurchasePlanGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "perShareItemType" }, "pdfs_EmployeeStockPurchasePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Enables employees to purchase their company's common stock, often at a discount from the market price.", "label": "Employee Stock Purchase Plan [Member]" } } }, "localname": "EmployeeStockPurchasePlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails" ], "xbrltype": "domainItemType" }, "pdfs_EmployeeStockPurchasePlanWeightedAveragePurchasePriceOfSharesPurchased": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Employee stock purchase plan weighted average purchase price of shares purchased.", "label": "pdfs_EmployeeStockPurchasePlanWeightedAveragePurchasePriceOfSharesPurchased", "terseLabel": "Employee Stock Purchase Plan Weighted Average Purchase Price of Shares Purchased (in dollars per share)" } } }, "localname": "EmployeeStockPurchasePlanWeightedAveragePurchasePriceOfSharesPurchased", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "perShareItemType" }, "pdfs_ForeignIncomeTaxWithholding": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails": { "order": 4.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Foreign income tax withholding.", "label": "pdfs_ForeignIncomeTaxWithholding", "terseLabel": "Withholding" } } }, "localname": "ForeignIncomeTaxWithholding", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_GainLossOnDispositionAndWriteDownOfAssets": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of and amount of write-downs in carrying value of property and equipment assets, excluding oil and gas property and timber property.", "label": "Gain Loss On Disposition And Write Down Of Assets", "negatedLabel": "Loss on disposal and write-down in carrying value of property and equipment" } } }, "localname": "GainLossOnDispositionAndWriteDownOfAssets", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_GoodwillAfterPurchaseAccountingAdjustments": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of goodwill after purchase price adjustment.", "label": "Goodwill After Purchase Accounting Adjustments", "terseLabel": "Goodwill after purchase price adjustment" } } }, "localname": "GoodwillAfterPurchaseAccountingAdjustments", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_IDSPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "IDS plan member.", "label": "IDS Plan [Member]" } } }, "localname": "IDSPlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_IncreaseDecreaseContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in billings in excess 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": "pdfs_IncreaseDecreaseContractWithCustomerLiabilityRevenueRecognized", "verboseLabel": "Billings in excess of recognized revenues" } } }, "localname": "IncreaseDecreaseContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_IncreaseDecreaseInOperatingLeaseLiabilities": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the period in operating lease liabilities.", "label": "Operating lease liabilities" } } }, "localname": "IncreaseDecreaseInOperatingLeaseLiabilities", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_IncreaseDecreaseInOperatingLeaseRightOfUseAssets": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 16.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in operating lease right-of-use assets.", "label": "pdfs_IncreaseDecreaseInOperatingLeaseRightOfUseAssets", "negatedLabel": "Operating lease right-of-use assets" } } }, "localname": "IncreaseDecreaseInOperatingLeaseRightOfUseAssets", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_IntangibleAssetsGross": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "order": 2.0, "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill", "weight": 1.0 }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The gross amount of intangible assets.", "label": "pdfs_IntangibleAssetsGross", "totalLabel": "Gross Carrying Amount, Total" } } }, "localname": "IntangibleAssetsGross", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_IntegratedYieldRampMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Integrated yield ramp.", "label": "Integrated Yield Ramp [Member]" } } }, "localname": "IntegratedYieldRampMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "domainItemType" }, "pdfs_LaboratoryAndTestEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to laboratory and test equipment.", "label": "Laboratory and Test Equipment [Member]" } } }, "localname": "LaboratoryAndTestEquipmentMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "pdfs_NumberOfESPPSharesAvailableForFutureIssuance": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of ESPP shares available for future issuance.", "label": "pdfs_NumberOfESPPSharesAvailableForFutureIssuance", "terseLabel": "Number Of ESPP Shares Available For Future Issuance (in shares)" } } }, "localname": "NumberOfESPPSharesAvailableForFutureIssuance", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "sharesItemType" }, "pdfs_NumberOfMajorCustomers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.", "label": "pdfs_NumberOfMajorCustomers", "terseLabel": "Number of Major Customers" } } }, "localname": "NumberOfMajorCustomers", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "integerItemType" }, "pdfs_NumberOfRevenueSources": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to number of sources where the company is deriving revenue.", "label": "Number of Revenue Sources", "terseLabel": "Number of revenue sources" } } }, "localname": "NumberOfRevenueSources", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "integerItemType" }, "pdfs_OneCustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information about one major customer", "label": "One Customer [Member]" } } }, "localname": "OneCustomerMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of the operating lease liability related to an option to extend the lease term that is reasonably certain to be exercised.", "label": "pdfs_OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "terseLabel": "Operating Lease, Liability, Amount Related to Extension of Lease Term" } } }, "localname": "OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_OutsideOfThe20112001OrIDSPlansMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the outside of the 2011, 2001 or IDS Plan.", "label": "Outside of the 2011, 2001 or IDS Plans [Member]" } } }, "localname": "OutsideOfThe20112001OrIDSPlansMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_PercentOfRevenue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The percent of revenue.", "label": "Percent of revenues" } } }, "localname": "PercentOfRevenue", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails" ], "xbrltype": "percentItemType" }, "pdfs_PrepaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the prepayment for 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": "Prepayments To Acquire Property Plant And Equipment", "negatedLabel": "Prepayment for the purchase of property and equipment" } } }, "localname": "PrepaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "pdfs_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the estimated useful lives of property plant and equipment.", "label": "Property Plant and Equipment Estimated Useful Lives [Table Text Block]" } } }, "localname": "PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "pdfs_RestOfTheWorldMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the rest of the world.", "label": "Rest of the World [Member]" } } }, "localname": "RestOfTheWorldMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "xbrltype": "domainItemType" }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPurchasePeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to number of purchase period in the offering of employee stock purchase plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Purchase Period", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Purchase Period" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPurchasePeriod", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "integerItemType" }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award is offered, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Offering Period", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Offering Period" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "durationItemType" }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The reduction rate in the number of shares reserved under the option plan attributable to awards other than options or stock appreciation rights.", "label": "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "terseLabel": "Share Based Compensation Arrangement By Share Based Payment Award Shares Reserved Decrease Rate (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "sharesItemType" }, "pdfs_SharesPreviouslyIssuedUnderThe2001PlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Shares previously issued under the 2001 plan member.", "label": "Shares Previously Issued Under the 2001 Plan [Member]" } } }, "localname": "SharesPreviouslyIssuedUnderThe2001PlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_ShorttermAndVariableLeaseCost": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails": { "order": 1.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 and amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Short-term lease and variable lease expense (1)" } } }, "localname": "ShorttermAndVariableLeaseCost", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_SoftwareLicenseAndRelatedServicesAgreementMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to software license and related services.", "label": "Software License and Related Services Agreement [Member]" } } }, "localname": "SoftwareLicenseAndRelatedServicesAgreementMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details" ], "xbrltype": "domainItemType" }, "pdfs_StockIssuedDuringPeriodValuePrivatePlacement": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in a private placement.", "label": "Stock Issued During Period Value Private Placement", "terseLabel": "Issuance of common stock, net of issuance of $0.1 million" } } }, "localname": "StockIssuedDuringPeriodValuePrivatePlacement", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "pdfs_StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to strategic partnership for joint development and sales technology solutions.", "label": "Strategic Partnership for Joint Development and Sales Technology Solutions [Member]" } } }, "localname": "StrategicPartnershipForJointDevelopmentAndSalesTechnologySolutionsMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_TermOfProductWarranty": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to product warranty period following initial delivery.", "label": "Term of Product Warranty", "terseLabel": "Term of Product Warranty" } } }, "localname": "TermOfProductWarranty", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingenciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "pdfs_TestEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Test equipment member.", "label": "Test Equipment [Member]" } } }, "localname": "TestEquipmentMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "pdfs_The2010PurchasePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2010 purchase plan.", "label": "The 2010 Purchase Plan [Member]" } } }, "localname": "The2010PurchasePlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "domainItemType" }, "pdfs_The2018StockRepurchaseProgramMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information related to the 2018 stock repurchase program.", "label": "The 2018 Stock Repurchase Program [Member]" } } }, "localname": "The2018StockRepurchaseProgramMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_The2020StockRepurchaseProgramMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2020 Stock Repurchase Program.", "label": "The 2020 Stock Repurchase Program [Member]" } } }, "localname": "The2020StockRepurchaseProgramMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_ThresholdPaymentPeriodOfMajorityOfPurchaseObligation": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Threshold payment period for majority of purchase obligation.", "label": "Threshold Payment Period Of Majority Of Purchase Obligation", "terseLabel": "Threshold payment period" } } }, "localname": "ThresholdPaymentPeriodOfMajorityOfPurchaseObligation", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingenciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "pdfs_TwentyElevenStockIncentivePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Twenty eleven stock incentive plan member.", "label": "Twenty Eleven Stock Incentive Plan [Member]" } } }, "localname": "TwentyElevenStockIncentivePlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "domainItemType" }, "pdfs_TwentyTwentyOneEmployeeStockPurchasePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Twenty twenty-one employee stock purchase plan.", "label": "Twenty Twenty-One Employee Stock Purchase Plan [Member]" } } }, "localname": "TwentyTwentyOneEmployeeStockPurchasePlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "domainItemType" }, "pdfs_TwoCustomersMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information about two major customers.", "label": "Two Customers [Member]" } } }, "localname": "TwoCustomersMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_TwoThousandOneStockIncentivePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2001 Stock Incentive Plan.", "label": "Two Thousand One Stock Incentive Plan [Member]" } } }, "localname": "TwoThousandOneStockIncentivePlanMember", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "domainItemType" }, "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssetSubjectToFullValuationAllowance": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Unrecognized tax benefits in deferred tax asset subject to full valuation allowance.", "label": "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssetSubjectToFullValuationAllowance", "terseLabel": "Unrecognized Tax Benefits In Deferred Tax Asset Subject To Full Valuation Allowance" } } }, "localname": "UnrecognizedTaxBenefitsInDeferredTaxAssetSubjectToFullValuationAllowance", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_UnrecognizedTaxBenefitsInLongTermLiabilities": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Unrecognized tax benefits in long term liabilities.", "label": "pdfs_UnrecognizedTaxBenefitsInLongTermLiabilities", "terseLabel": "Unrecognized Tax Benefits In Long Term Liabilities" } } }, "localname": "UnrecognizedTaxBenefitsInLongTermLiabilities", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return which have been recorded as part of the long-term liabilities in the balance sheet.", "label": "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities", "terseLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued in Long Term Liabilities" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpenseReversal": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal) for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.", "label": "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpenseReversal", "terseLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense (Reversal)" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpenseReversal", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "pdfs_WriteDownInValueOfLongLivedAssetHeldForUse": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate amount of write-downs recognized during the period for property and equipment wherein carrying values may not be fully recoverable or long lived assets held for use (including those held for disposal by means other than sale).", "label": "Write Down In Value Of Long Lived Asset, Held For Use", "terseLabel": "Write-down in value of property and equipment" } } }, "localname": "WriteDownInValueOfLongLivedAssetHeldForUse", "nsuri": "http://www.pdf.com/20211231", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r169", "r267", "r273", "r539" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details" ], "xbrltype": "stringItemType" }, "srt_MaximumMember": { "auth_ref": [ "r241", "r246", "r290", "r292", "r477", "r478", "r479", "r480", "r481", "r482", "r483", "r536", "r540", "r563", "r564" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r241", "r246", "r290", "r292", "r477", "r478", "r479", "r480", "r481", "r482", "r483", "r536", "r540", "r563", "r564" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r169", "r267", "r273", "r539" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r165", "r267", "r271", "r486", "r535", "r537" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r165", "r267", "r271", "r486", "r535", "r537" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r241", "r246", "r279", "r290", "r292", "r477", "r478", "r479", "r480", "r481", "r482", "r483", "r536", "r540", "r563", "r564" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r241", "r246", "r279", "r290", "r292", "r477", "r478", "r479", "r480", "r481", "r482", "r483", "r536", "r540", "r563", "r564" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [ "r166", "r167", "r267", "r272", "r538", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r166", "r167", "r267", "r272", "r538", "r548", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "stringItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r31", "r473" ], "calculation": { "http://www.pdf.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" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableMember": { "auth_ref": [ "r549" ], "lang": { "en-us": { "role": { "documentation": "Due from customers or clients for goods or services that have been delivered or sold.", "label": "Accounts Receivable [Member]" } } }, "localname": "AccountsReceivableMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r4", "r15", "r171", "r172" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 3.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, net of allowance for doubtful accounts of $890 and $963 in 2021 and 2020, respectively", "terseLabel": "Accounts receivable, net of allowance for doubtful accounts of $890 and $963 in 2021 and 2020, respectively" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesNoncurrent": { "auth_ref": [ "r10", "r505", "r523" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 1.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": "Long-term income taxes payable" } } }, "localname": "AccruedIncomeTaxesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r33" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 3.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 and other current liabilities" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r28", "r217" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails": { "order": 1.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": "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "negatedLabel": "Less: accumulated depreciation and amortization" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r18", "r44", "r45", "r46", "r525", "r545", "r546" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r43", "r46", "r54", "r55", "r56", "r101", "r102", "r103", "r410", "r541", "r542", "r575" ], "lang": { "en-us": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "AOCI Attributable to Parent [Member]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "auth_ref": [ "r200" ], "lang": { "en-us": { "role": { "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Amortization Period (Year)" } } }, "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_AdditionalPaidInCapital": { "auth_ref": [ "r16", "r334", "r473" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.", "label": "Additional paid-in-capital" } } }, "localname": "AdditionalPaidInCapital", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r101", "r102", "r103", "r331", "r332", "r333", "r432" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-in Capital [Member]" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net loss to net cash provided by operating activities:" } } }, "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "negatedTerseLabel": "Purchases of treasury stock in connection with tax withholdings on restricted stock grants" } } }, "localname": "AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.", "label": "Stock-based compensation expense" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllocatedShareBasedCompensationExpense": { "auth_ref": [ "r295", "r326", "r336" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.", "label": "Stock-based compensation expenses" } } }, "localname": "AllocatedShareBasedCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForCreditLossMember": { "auth_ref": [ "r94", "r95", "r96", "r99", "r100" ], "lang": { "en-us": { "role": { "documentation": "Allowance for credit loss from right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "SEC Schedule, 12-09, Allowance, Credit Loss [Member]" } } }, "localname": "AllowanceForCreditLossMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r22", "r177", "r187" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "Accounts receivable, allowance for doubtful accounts" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r78", "r198", "r207" ], "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": "us-gaap_AmortizationOfIntangibleAssets", "terseLabel": "Amortization of Intangible Assets, Total" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r121" ], "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": "Anti-dilutive securities (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "auth_ref": [ "r121" ], "lang": { "en-us": { "role": { "documentation": "Information by type of antidilutive security.", "label": "Antidilutive Securities [Axis]" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "auth_ref": [ "r121" ], "lang": { "en-us": { "role": { "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.", "label": "Antidilutive Securities, Name [Domain]" } } }, "localname": "AntidilutiveSecuritiesNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]" } } }, "localname": "ArrangementsAndNonarrangementTransactionsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r86", "r151", "r155", "r161", "r185", "r228", "r229", "r230", "r232", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r405", "r411", "r442", "r471", "r473", "r504", "r522" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "us-gaap_Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r5", "r6", "r40", "r86", "r185", "r228", "r229", "r230", "r232", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r405", "r411", "r442", "r471", "r473" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "us-gaap_AssetsCurrent", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current assets:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AvailableForSaleSecuritiesDebtSecurities": { "auth_ref": [ "r181", "r184", "r188", "r510" ], "calculation": { "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails": { "order": 1.0, "parentTag": "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "us-gaap_AvailableForSaleSecuritiesDebtSecurities", "verboseLabel": "Short-term investments" } } }, "localname": "AvailableForSaleSecuritiesDebtSecurities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r296", "r329" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by location on balance sheet (statement of financial position).", "label": "Balance Sheet Location [Axis]" } } }, "localname": "BalanceSheetLocationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationDomain": { "auth_ref": [ "r422", "r426" ], "lang": { "en-us": { "role": { "documentation": "Location in the balance sheet (statement of financial position).", "label": "Balance Sheet Location [Domain]" } } }, "localname": "BalanceSheetLocationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "domainItemType" }, "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]" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r289", "r291" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r289", "r291", "r389", "r390" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount": { "auth_ref": [ "r392" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "For receivables acquired in a business combination, excluding certain loans and debt securities acquired in a transfer (as defined), this element represents the gross contractual amounts receivable, by major class of receivable, such as loans, direct finance leases (as defined), and any other class of receivables.", "label": "us-gaap_BusinessCombinationAcquiredReceivablesGrossContractualAmount", "terseLabel": "Business Combination, Acquired Receivables, Gross Contractual Amount" } } }, "localname": "BusinessCombinationAcquiredReceivablesGrossContractualAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquisitionRelatedCosts": { "auth_ref": [ "r388" ], "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": "us-gaap_BusinessCombinationAcquisitionRelatedCosts", "terseLabel": "Business Combination, Acquisition Related Costs" } } }, "localname": "BusinessCombinationAcquisitionRelatedCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferred1": { "auth_ref": [ "r398", "r399", "r400" ], "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": "us-gaap_BusinessCombinationConsiderationTransferred1", "terseLabel": "Business Combination, Consideration Transferred, Total" } } }, "localname": "BusinessCombinationConsiderationTransferred1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "auth_ref": [ "r401" ], "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": "Note 4 - BUSINESS COMBINATION" } } }, "localname": "BusinessCombinationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombination" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": { "auth_ref": [ "r393" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. 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.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "terseLabel": "Fair value of cash" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": { "auth_ref": [ "r393" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 3.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "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": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue", "terseLabel": "Deferred revenue" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "auth_ref": [ "r393" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 4.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "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": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "terseLabel": "Deferred tax liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets": { "auth_ref": [ "r393" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 3.0, "parentTag": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets, excluding financial assets and goodwill, that lack physical substance, having a projected indefinite period of benefit, acquired at the acquisition date.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets", "terseLabel": "Fair value of indefinite-lived intangible assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIndefiniteLivedIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "auth_ref": [ "r391", "r393" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 4.0, "parentTag": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "terseLabel": "Fair value of finite-lived intangible assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": { "auth_ref": [ "r393" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities assumed at the acquisition date.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "totalLabel": "Total liabilities assumed" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r393" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "totalLabel": "Total purchase price allocation" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "BUSINESS COMBINATION" } } }, "localname": "BusinessCombinationsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationsPolicy": { "auth_ref": [ "r386" ], "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]" } } }, "localname": "BusinessCombinationsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CaliforniaFranchiseTaxBoardMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax department of the government of the state of California.", "label": "California Franchise Tax Board [Member]" } } }, "localname": "CaliforniaFranchiseTaxBoardMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "auth_ref": [ "r82", "r83", "r84" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred.", "label": "Property and equipment received and accrued in accounts payable and accrued and other liabilities" } } }, "localname": "CapitalExpendituresIncurredButNotYetPaid", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CapitalizedContractCostAmortization": { "auth_ref": [ "r190" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "us-gaap_CapitalizedContractCostAmortization", "terseLabel": "Capitalized Contract Cost, Amortization", "verboseLabel": "Amortization of costs capitalized to obtain revenue contracts" } } }, "localname": "CapitalizedContractCostAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CapitalizedContractCostImpairmentLoss": { "auth_ref": [ "r190" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of impairment loss for asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "us-gaap_CapitalizedContractCostImpairmentLoss", "terseLabel": "Capitalized Contract Cost, Impairment Loss" } } }, "localname": "CapitalizedContractCostImpairmentLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_CapitalizedContractCostNet": { "auth_ref": [ "r189" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "us-gaap_CapitalizedContractCostNet", "terseLabel": "Capitalized Contract Cost, Net, Total" } } }, "localname": "CapitalizedContractCostNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r3", "r25", "r80" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 1.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", "periodEndLabel": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value portion 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.", "label": "us-gaap_CashAndCashEquivalentsFairValueDisclosure", "verboseLabel": "Money market mutual funds" } } }, "localname": "CashAndCashEquivalentsFairValueDisclosure", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Reconciliation of cash, cash equivalents, and restricted cash to the balance sheets:", "terseLabel": "Reconciliation of cash, cash equivalents, and restricted cash to the balance sheets:" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r74", "r80", "r85" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "periodEndLabel": "Cash, cash equivalents, and restricted cash at end of year", "periodStartLabel": "Cash, cash equivalents, and restricted cash at beginning of year", "verboseLabel": "Total cash, cash equivalents and restricted cash" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r74", "r443" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "totalLabel": "Net decrease in cash, cash equivalents, and restricted cash" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r36", "r225", "r511", "r529" ], "calculation": { "http://www.pdf.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 (Note 13)", "terseLabel": "Commitments and contingencies (Note 8)" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "COMMITMENTS AND CONTINGENCIES" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r222", "r223", "r224", "r227", "r550" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Note 8 - COMMITMENTS AND CONTINGENCIES" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": { "auth_ref": [ "r37" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares reserved for future issuance.", "label": "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance", "terseLabel": "Common Stock, Capital Shares Reserved for Future Issuance (in shares)" } } }, "localname": "CommonStockCapitalSharesReservedForFutureIssuance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r14" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common stock, par value (in dollars per share)" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r14" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common stock, shares authorized (in shares)" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r14" ], "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 (in shares)" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r14", "r247" ], "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 (in shares)" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r14", "r473" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 3.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, $0.00015 par value, 70,000 shares authorized; shares issued 47,248 and 46,400, respectively; shares outstanding 37,274 and 36,850, respectively", "terseLabel": "Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 47,414 and 46,400, respectively; shares outstanding 37,411 and 36,850, respectively" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": { "auth_ref": [ "r277", "r278", "r293", "r337" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.", "label": "Compensation and Employee Benefit Plans [Text Block]", "terseLabel": "Note 10 - EMPLOYEE BENEFIT PLANS" } } }, "localname": "CompensationAndEmployeeBenefitPlansTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlans" ], "xbrltype": "textBlockItemType" }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "EMPLOYEE BENEFIT PLANS" } } }, "localname": "CompensationAndRetirementDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r49", "r51", "r52", "r59", "r514", "r531" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "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)", "totalLabel": "Comprehensive loss" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComputerEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.", "label": "Computer Equipment [Member]" } } }, "localname": "ComputerEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r138", "r139", "r169", "r440", "r441", "r549" ], "lang": { "en-us": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r138", "r139", "r169", "r440", "r441", "r547", "r549" ], "lang": { "en-us": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r138", "r139", "r169", "r440", "r441", "r547", "r549" ], "lang": { "en-us": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskCreditRisk": { "auth_ref": [ "r133", "r519" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for credit risk.", "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]" } } }, "localname": "ConcentrationRiskCreditRisk", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r138", "r139", "r169", "r440", "r441" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.", "label": "Concentration risk", "terseLabel": "Concentration Risk, Percentage", "verboseLabel": "Concentration risk" } } }, "localname": "ConcentrationRiskPercentage1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r138", "r139", "r169", "r440", "r441", "r549" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.", "label": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_ConstructionInProgressGross": { "auth_ref": [ "r216" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "us-gaap_ConstructionInProgressGross", "terseLabel": "Construction in Progress, Gross" } } }, "localname": "ConstructionInProgressGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ConstructionInProgressMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "Construction in Progress [Member]" } } }, "localname": "ConstructionInProgressMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "auth_ref": [ "r252", "r254", "r268" ], "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, classified as current.", "label": "us-gaap_ContractWithCustomerAssetNetCurrent", "terseLabel": "Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total" } } }, "localname": "ContractWithCustomerAssetNetCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r252", "r253", "r268" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "us-gaap_ContractWithCustomerLiability", "terseLabel": "Contract with Customer, Liability, Total" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r252", "r253", "r268" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Deferred revenues - current portion" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "auth_ref": [ "r252", "r253", "r268" ], "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": "us-gaap_ContractWithCustomerLiabilityNoncurrent", "terseLabel": "Contract with Customer, Liability, Noncurrent" } } }, "localname": "ContractWithCustomerLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r269" ], "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": "us-gaap_ContractWithCustomerLiabilityRevenueRecognized", "terseLabel": "Contract with Customer, Liability, Revenue Recognized" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod": { "auth_ref": [ "r261" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price.", "label": "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "terseLabel": "Contract with Customer, Performance Obligation Satisfied in Previous Period" } } }, "localname": "ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfRevenue": { "auth_ref": [ "r62", "r86", "r185", "r228", "r229", "r230", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r442" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 5.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.", "label": "Costs of revenues" } } }, "localname": "CostOfRevenue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing cost of sales.", "label": "Cost of Sales [Member]" } } }, "localname": "CostOfSalesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CostOfSalesPolicyTextBlock": { "auth_ref": [ "r276" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cost of product sold and service rendered.", "label": "Cost of Goods and Service [Policy Text Block]" } } }, "localname": "CostOfSalesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CostsAndExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Costs and Expenses:" } } }, "localname": "CostsAndExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "stringItemType" }, "us-gaap_CostsAndExpensesRelatedParty": { "auth_ref": [ "r62" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Costs of sales and operating expenses for the period incurred from transactions with related parties.", "label": "us-gaap_CostsAndExpensesRelatedParty", "terseLabel": "Costs and Expenses, Related Party" } } }, "localname": "CostsAndExpensesRelatedParty", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentFederalTaxExpenseBenefit": { "auth_ref": [ "r87", "r368", "r376" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "us-gaap_CurrentFederalTaxExpenseBenefit", "terseLabel": "Current" } } }, "localname": "CurrentFederalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentForeignTaxExpenseBenefit": { "auth_ref": [ "r87", "r368" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails": { "order": 3.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "us-gaap_CurrentForeignTaxExpenseBenefit", "terseLabel": "Current" } } }, "localname": "CurrentForeignTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r136", "r169" ], "lang": { "en-us": { "role": { "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.", "label": "Customer Concentration Risk [Member]" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerRelationshipsMember": { "auth_ref": [ "r396" ], "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]" } } }, "localname": "CustomerRelationshipsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": { "auth_ref": [ "r87", "r369", "r376" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails": { "order": 5.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "us-gaap_DeferredFederalIncomeTaxExpenseBenefit", "terseLabel": "Deferred" } } }, "localname": "DeferredFederalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": { "auth_ref": [ "r87", "r369", "r376" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails": { "order": 2.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "us-gaap_DeferredForeignIncomeTaxExpenseBenefit", "terseLabel": "Deferred" } } }, "localname": "DeferredForeignIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r344", "r345" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "us-gaap_DeferredIncomeTaxAssetsNet", "terseLabel": "Deferred tax assets, net" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r78", "r87", "r369", "r376", "r377", "r378" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "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": "us-gaap_DeferredIncomeTaxExpenseBenefit", "verboseLabel": "Deferred taxes" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilities": { "auth_ref": [ "r11", "r12", "r359", "r506", "r520" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet", "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": "Deferred tax liabilities" } } }, "localname": "DeferredIncomeTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetDomain": { "auth_ref": [ "r361" ], "lang": { "en-us": { "role": { "documentation": "Identification of the deferred tax asset for which a valuation reserve exists.", "label": "Deferred Tax Asset [Domain]" } } }, "localname": "DeferredTaxAssetDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DeferredTaxAssetsGross": { "auth_ref": [ "r360" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "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 tax assets" } } }, "localname": "DeferredTaxAssetsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsLiabilitiesNet": { "auth_ref": [ "r362" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "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, without jurisdictional netting.", "label": "us-gaap_DeferredTaxAssetsLiabilitiesNet", "terseLabel": "Deferred Tax Assets, Net, Total", "totalLabel": "Net deferred tax assets" } } }, "localname": "DeferredTaxAssetsLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNet": { "auth_ref": [ "r362" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "us-gaap_DeferredTaxAssetsNet", "totalLabel": "Deferred tax assets, net of valuation allowance" } } }, "localname": "DeferredTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": { "auth_ref": [ "r366", "r367" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "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 operating loss carryforwards.", "label": "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards", "terseLabel": "Net operating loss carry forward" } } }, "localname": "DeferredTaxAssetsOperatingLossCarryforwards", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign": { "auth_ref": [ "r365", "r366", "r367" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "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 foreign tax credit carryforwards.", "label": "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign", "terseLabel": "Foreign tax credit carry forward" } } }, "localname": "DeferredTaxAssetsTaxCreditCarryforwardsForeign", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": { "auth_ref": [ "r365", "r366", "r367" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "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 research tax credit carryforwards.", "label": "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch", "terseLabel": "Research and development and other credit carry forward" } } }, "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": { "auth_ref": [ "r366", "r367" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 5.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.", "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "terseLabel": "Stock-based compensation" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves": { "auth_ref": [ "r366", "r367" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from reserves, classified as other.", "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves", "terseLabel": "Accruals deductible in different periods" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r361" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "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", "negatedTerseLabel": "Less: valuation allowance", "terseLabel": "Deferred Tax Assets, Valuation Allowance, Total" } } }, "localname": "DeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred tax liabilities" } } }, "localname": "DeferredTaxLiabilitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssets": { "auth_ref": [ "r366", "r367" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails": { "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 including goodwill.", "label": "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssets", "negatedLabel": "Intangible assets" } } }, "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesDeferredTaxAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of discretionary contributions made by an employer to a defined contribution plan.", "label": "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount", "terseLabel": "Defined Contribution Plan, Employer Discretionary Contribution Amount" } } }, "localname": "DefinedContributionPlanEmployerDiscretionaryContributionAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan.", "label": "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "terseLabel": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent" } } }, "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DepreciationAndAmortization": { "auth_ref": [ "r78", "r215" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.", "label": "us-gaap_DepreciationAndAmortization", "terseLabel": "Depreciation, Depletion and Amortization, Nonproduction, Total" } } }, "localname": "DepreciationAndAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r78", "r149" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation and amortization" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeContractTypeDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Financial instrument or 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.", "label": "Derivative Contract [Domain]" } } }, "localname": "DerivativeContractTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DerivativeGainOnDerivative": { "auth_ref": [ "r424" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in the fair value of derivatives recognized in the income statement.", "label": "Derivative, Gain on Derivative" } } }, "localname": "DerivativeGainOnDerivative", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeInstrumentRiskAxis": { "auth_ref": [ "r41", "r423", "r425", "r427", "r430" ], "lang": { "en-us": { "role": { "documentation": "Information by type of derivative contract.", "label": "Derivative Instrument [Axis]" } } }, "localname": "DerivativeInstrumentRiskAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeLossOnDerivative": { "auth_ref": [ "r424" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in the fair value of derivatives recognized in the income statement.", "label": "Derivative, Loss on Derivative" } } }, "localname": "DerivativeLossOnDerivative", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeNumberOfInstrumentsHeld": { "auth_ref": [ "r417", "r419" ], "lang": { "en-us": { "role": { "documentation": "The number of derivative instruments of a particular group held by the entity.", "label": "us-gaap_DerivativeNumberOfInstrumentsHeld", "terseLabel": "Derivative, Number of Instruments Held" } } }, "localname": "DerivativeNumberOfInstrumentsHeld", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "integerItemType" }, "us-gaap_DerivativesPolicyTextBlock": { "auth_ref": [ "r93", "r416", "r418", "r420", "r421", "r431" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities.", "label": "Derivatives, Policy [Policy Text Block]" } } }, "localname": "DerivativesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_DevelopedTechnologyRightsMember": { "auth_ref": [ "r397" ], "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]" } } }, "localname": "DevelopedTechnologyRightsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r267" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DomesticCountryMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.", "label": "Domestic Tax Authority [Member]" } } }, "localname": "DomesticCountryMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "NET LOSS PER SHARE" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r60", "r106", "r107", "r108", "r109", "r110", "r114", "r116", "r118", "r119", "r120", "r124", "r125", "r433", "r434", "r515", "r532" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Basic (in dollars per share)", "verboseLabel": "Basic (in dollars per share)" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r60", "r106", "r107", "r108", "r109", "r110", "r116", "r118", "r119", "r120", "r124", "r125", "r433", "r434", "r515", "r532" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Diluted (in dollars per share)", "verboseLabel": "Diluted (in dollars per share)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerSharePolicyTextBlock": { "auth_ref": [ "r121", "r122" ], "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]" } } }, "localname": "EarningsPerSharePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r121", "r122", "r123", "r126" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]", "terseLabel": "Note 12 - NET LOSS PER SHARE" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r443" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.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 changes on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r89", "r347", "r380" ], "lang": { "en-us": { "role": { "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).", "label": "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "terseLabel": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent" } } }, "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r33" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued compensation and related benefits" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount": { "auth_ref": [ "r327" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost capitalized for award under share-based payment arrangement.", "label": "Stock-based compensation capitalized as software development costs", "terseLabel": "Share-based Payment Arrangement, Amount Capitalized" } } }, "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsCapitalizedAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r328" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r328" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [ "r324" ], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.", "label": "Share-based Payment Arrangement, Option [Member]" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r0", "r54", "r55", "r56", "r101", "r102", "r103", "r105", "r111", "r113", "r130", "r186", "r247", "r248", "r331", "r332", "r333", "r372", "r373", "r432", "r444", "r445", "r446", "r447", "r448", "r449", "r541", "r542", "r543", "r575" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "auth_ref": [ "r435", "r436" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).", "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": { "auth_ref": [ "r437" ], "lang": { "en-us": { "role": { "documentation": "Class of asset.", "label": "Asset Class [Domain]" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueByAssetClassAxis": { "auth_ref": [ "r435", "r439" ], "lang": { "en-us": { "role": { "documentation": "Information by class of asset.", "label": "Asset Class [Axis]" } } }, "localname": "FairValueByAssetClassAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r242", "r243", "r244", "r280", "r281", "r282", "r283", "r284", "r285", "r286", "r288", "r436", "r474", "r475", "r476" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value Hierarchy and NAV [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "FINANCIAL INSTRUMENTS" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r438" ], "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]", "verboseLabel": "Note 14 - FINANCIAL INSTRUMENTS" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstruments" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel1Member": { "auth_ref": [ "r242", "r280", "r281", "r286", "r288", "r436", "r474" ], "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]" } } }, "localname": "FairValueInputsLevel1Member", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r242", "r243", "r244", "r280", "r281", "r282", "r283", "r284", "r285", "r286", "r288", "r474", "r475", "r476" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy and NAV [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Finite-lived intangible assets, amortization period (Year)", "terseLabel": "Finite-Lived Intangible Asset, Useful Life (Year)" } } }, "localname": "FiniteLivedIntangibleAssetUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails" ], "xbrltype": "durationItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r206" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "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": "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization", "negatedLabel": "Accumulated Amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": { "auth_ref": [], "calculation": { "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "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": "2027 and thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r208" ], "calculation": { "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": 3.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "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": "2022" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life.", "label": "Finite-lived Intangible Assets Amortization Expense [Table Text Block]" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "auth_ref": [ "r208" ], "calculation": { "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "terseLabel": "2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r208" ], "calculation": { "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": 6.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "terseLabel": "2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r208" ], "calculation": { "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": 5.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "terseLabel": "2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r208" ], "calculation": { "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": 4.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "terseLabel": "2023" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r199", "r202", "r206", "r210", "r487", "r488" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r206", "r488" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "order": 1.0, "parentTag": "pdfs_IntangibleAssetsGross", "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": "Gross Carrying Amount" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r199", "r205" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r206", "r487" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "order": 1.0, "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill", "weight": 1.0 }, "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "us-gaap_FiniteLivedIntangibleAssetsNet", "totalLabel": "Net Carrying Amount", "verboseLabel": "Net Carrying Amount" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": { "auth_ref": [ "r487" ], "lang": { "en-us": { "role": { "documentation": "Remaining amortization period of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "terseLabel": "Finite-Lived Intangible Assets, Remaining Amortization Period (Year)" } } }, "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": { "auth_ref": [ "r450" ], "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]" } } }, "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ForeignExchangeContractMember": { "auth_ref": [ "r41", "r280", "r429" ], "lang": { "en-us": { "role": { "documentation": "Derivative instrument whose primary underlying risk is tied to foreign exchange rates.", "label": "Foreign Exchange Contract [Member]" } } }, "localname": "ForeignExchangeContractMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ForwardContractsMember": { "auth_ref": [ "r428" ], "lang": { "en-us": { "role": { "documentation": "Contracts negotiated between two parties to purchase and sell a specific quantity of a financial instrument, foreign currency, or commodity at a price specified at origination of the contract, with delivery and settlement at a specified future date.", "label": "Forward Contracts [Member]" } } }, "localname": "ForwardContractsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FurnitureAndFixturesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Furniture and Fixtures [Member]" } } }, "localname": "FurnitureAndFixturesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GainLossOnInvestments": { "auth_ref": [ "r64", "r78", "r183" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of realized and unrealized gain (loss) on investment.", "label": "us-gaap_GainLossOnInvestments", "terseLabel": "Gain (Loss) on Investments, Total" } } }, "localname": "GainLossOnInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeographicConcentrationRiskMember": { "auth_ref": [ "r137", "r549" ], "lang": { "en-us": { "role": { "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa).", "label": "Geographic Concentration Risk [Member]" } } }, "localname": "GeographicConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r191", "r192", "r473", "r503" ], "calculation": { "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails": { "order": 1.0, "parentTag": "pdfs_BusinessCombinationRecognizedIdentifiableAssetsAcquiredIncludingGoodwill", "weight": 1.0 }, "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 4.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 at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAcquiredDuringPeriod": { "auth_ref": [ "r193" ], "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": "Addition" } } }, "localname": "GoodwillAcquiredDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "GOODWILL AND INTANGIBLE ASSETS" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r214" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for goodwill and intangible assets.", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "Note 6 - GOODWILL AND INTANGIBLE ASSETS" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssets" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": { "auth_ref": [ "r195" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.", "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]" } } }, "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy": { "auth_ref": [ "r203" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined.", "label": "Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]" } } }, "localname": "GoodwillAndIntangibleAssetsIntangibleAssetsPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillPurchaseAccountingAdjustments": { "auth_ref": [ "r194", "r387" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting 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_GoodwillPurchaseAccountingAdjustments", "terseLabel": "Measurement period acquisition adjustment (1)", "verboseLabel": "Increase (decrease) in goodwill due to the acquisition purchase price adjustment" } } }, "localname": "GoodwillPurchaseAccountingAdjustments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsChangeInCarryingAmountOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ImpairmentOfIntangibleAssetsFinitelived": { "auth_ref": [ "r78", "r211" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of a finite-lived intangible asset to fair value.", "label": "us-gaap_ImpairmentOfIntangibleAssetsFinitelived", "terseLabel": "Impairment of Intangible Assets, Finite-lived" } } }, "localname": "ImpairmentOfIntangibleAssetsFinitelived", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ImpairmentOfInvestments": { "auth_ref": [ "r182" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount by which the fair value of an investment is less than the amortized cost basis or carrying amount of that investment at the balance sheet date and the decline in fair value is deemed to be other than temporary, before considering whether or not such amount is recognized in earnings or other comprehensive income.", "label": "us-gaap_ImpairmentOfInvestments", "terseLabel": "Other than Temporary Impairment Losses, Investments, Total" } } }, "localname": "ImpairmentOfInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InProcessResearchAndDevelopmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "In process investigation of new knowledge useful in developing new product or service or new process or technique or improvement to existing product or process, and translation of knowledge into plan or design for new product or process or for improvement to existing product or process.", "label": "In Process Research and Development [Member]" } } }, "localname": "InProcessResearchAndDevelopmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": { "auth_ref": [ "r88", "r379" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.", "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "terseLabel": "Income (Loss) from Continuing Operations before Income Taxes, Domestic" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r57", "r151", "r154", "r157", "r160", "r163", "r501", "r512", "r516", "r533" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 1.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": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "totalLabel": "Loss before income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": { "auth_ref": [ "r88", "r379" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.", "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign", "terseLabel": "Income (Loss) from Continuing Operations before Income Taxes, Foreign" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r219", "r221" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r221" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxAuthorityAxis": { "auth_ref": [ "r350" ], "lang": { "en-us": { "role": { "documentation": "Information by tax jurisdiction.", "label": "Income Tax Authority [Axis]" } } }, "localname": "IncomeTaxAuthorityAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxAuthorityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.", "label": "Income Tax Authority [Domain]" } } }, "localname": "IncomeTaxAuthorityDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxAuthorityNameAxis": { "auth_ref": [ "r350" ], "lang": { "en-us": { "role": { "documentation": "Information by name of taxing authority.", "label": "Income Tax Authority, Name [Axis]" } } }, "localname": "IncomeTaxAuthorityNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxAuthorityNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes.", "label": "Income Tax Authority, Name [Domain]" } } }, "localname": "IncomeTaxAuthorityNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "INCOME TAXES" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r89", "r348", "r357", "r364", "r374", "r381", "r383", "r384", "r385" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]", "terseLabel": "Note 11 - INCOME TAXES" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r90", "r112", "r113", "r150", "r346", "r375", "r382", "r534" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income tax expense (benefit)", "totalLabel": "Total income tax expense", "verboseLabel": "Income tax expense" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxExpenseBenefitDetails", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxPolicyTextBlock": { "auth_ref": [ "r53", "r342", "r343", "r357", "r358", "r363", "r370" ], "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]" } } }, "localname": "IncomeTaxPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 2.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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": "Change in valuation allowance" } } }, "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate": { "auth_ref": [ "r341", "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 8.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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": "Tax law changes" } } }, "localname": "IncomeTaxReconciliationChangeInEnactedTaxRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 3.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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": "Foreign tax, net" } } }, "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 7.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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": "Federal statutory tax provision" } } }, "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 4.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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 compensation expense" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 9.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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 tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority noncontrolling interest income (loss), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, increase (decrease) in enacted tax rate, prior year income taxes, increase (decrease) in deferred tax asset valuation allowance, and other adjustments.", "label": "us-gaap_IncomeTaxReconciliationOtherReconcilingItems", "terseLabel": "Other" } } }, "localname": "IncomeTaxReconciliationOtherReconcilingItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 10.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "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 state and local income tax expense (benefit).", "label": "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes", "terseLabel": "State tax provision" } } }, "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationTaxCredits": { "auth_ref": [ "r347" ], "calculation": { "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails": { "order": 6.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": -1.0 } }, "crdr": "credit", "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 tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.", "label": "us-gaap_IncomeTaxReconciliationTaxCredits", "negatedTerseLabel": "Tax credits" } } }, "localname": "IncomeTaxReconciliationTaxCredits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesIncomeTaxReconciliationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaid": { "auth_ref": [ "r75", "r81" ], "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.", "label": "Cash paid during the period for taxes" } } }, "localname": "IncomeTaxesPaid", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.", "label": "us-gaap_IncreaseDecreaseInAccountsPayable", "terseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "us-gaap_IncreaseDecreaseInAccountsReceivable", "negatedLabel": "Accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.", "label": "Accrued and other liabilities" } } }, "localname": "IncreaseDecreaseInAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "auth_ref": [ "r77", "r484" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "us-gaap_IncreaseDecreaseInContractWithCustomerLiability", "terseLabel": "Deferred revenues" } } }, "localname": "IncreaseDecreaseInContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits.", "label": "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities", "terseLabel": "Accrued compensation and related benefits" } } }, "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 17.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in noncurrent assets classified as other.", "label": "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets", "negatedLabel": "Other non-current assets" } } }, "localname": "IncreaseDecreaseInOtherNoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities:" } } }, "localname": "IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 15.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "negatedLabel": "Prepaid expenses and other current assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r201", "r209" ], "lang": { "en-us": { "role": { "documentation": "Information by type or class of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.", "label": "Indefinite-lived Intangible Assets [Axis]" } } }, "localname": "IndefiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill": { "auth_ref": [ "r209" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "order": 2.0, "parentTag": "pdfs_IntangibleAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.", "label": "us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill", "terseLabel": "In-process R&D" } } }, "localname": "IndefiniteLivedIntangibleAssetsExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r201", "r209" ], "lang": { "en-us": { "role": { "documentation": "The major class of indefinite-lived intangible asset (for example, trade names, etc. but not all-inclusive), excluding goodwill. 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 the company.", "label": "Indefinite-lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "IndefiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "auth_ref": [ "r197", "r204" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.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", "totalLabel": "Net Carrying Amount, Total", "verboseLabel": "Net Carrying Amount, Total" } } }, "localname": "IntangibleAssetsNetExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "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": "Internal Revenue Service (IRS) [Member]" } } }, "localname": "InternalRevenueServiceIRSMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r460", "r462" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "us-gaap_LeaseCost", "totalLabel": "Total lease expense" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r460" ], "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]" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r216" ], "lang": { "en-us": { "role": { "documentation": "Additions or improvements to assets held under a lease arrangement.", "label": "Leasehold Improvements [Member]" } } }, "localname": "LeaseholdImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LeasesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "LEASES" } } }, "localname": "LeasesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_LegalCostsPolicyTextBlock": { "auth_ref": [ "r226" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for legal costs incurred to protect or defend the entity's assets and rights, or to obtain assets, including monetary damages, or to obtain rights.", "label": "Legal Costs, Policy [Policy Text Block]" } } }, "localname": "LegalCostsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeLeasesPolicyTextBlock": { "auth_ref": [ "r454" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.", "label": "Lessee, Leases [Policy Text Block]" } } }, "localname": "LesseeLeasesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r461" ], "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]" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "totalLabel": "Total future minimum lease payments" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "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 due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "terseLabel": "2027 and thereafter" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "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 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": "2022" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in 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": "2026" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "order": 6.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in 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": "2025", "terseLabel": "2025" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "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 third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "terseLabel": "2024" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "terseLabel": "2023" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r461" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "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": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: Interest (2)" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeasesTextBlock": { "auth_ref": [ "r463" ], "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": "Note 7 - LEASES" } } }, "localname": "LesseeOperatingLeasesTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7Leases" ], "xbrltype": "textBlockItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r32", "r86", "r156", "r185", "r228", "r229", "r230", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r406", "r411", "r412", "r442", "r471", "r472" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "us-gaap_Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r21", "r86", "r185", "r442", "r473", "r507", "r527" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "us-gaap_LiabilitiesAndStockholdersEquity", "totalLabel": "Total liabilities and stockholders' equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r34", "r86", "r185", "r228", "r229", "r230", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r406", "r411", "r412", "r442", "r471", "r472", "r473" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "us-gaap_LiabilitiesCurrent", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current liabilities:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LossContingencyAccrualAtCarryingValue": { "auth_ref": [ "r225" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of loss contingency liability.", "label": "Loss Contingency Accrual", "verboseLabel": "Accrued amount" } } }, "localname": "LossContingencyAccrualAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MoneyMarketFundsMember": { "auth_ref": [ "r280" ], "lang": { "en-us": { "role": { "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities.", "label": "Money Market Funds [Member]" } } }, "localname": "MoneyMarketFundsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r74" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "totalLabel": "Net cash provided by (used in) financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash flows from financing activities:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r74" ], "calculation": { "http://www.pdf.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": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash flows from investing activities:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r74", "r76", "r79" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "totalLabel": "Net cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash flows from operating activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r1", "r47", "r50", "r56", "r58", "r79", "r86", "r104", "r106", "r107", "r108", "r109", "r112", "r113", "r117", "r151", "r154", "r157", "r160", "r163", "r185", "r228", "r229", "r230", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r434", "r442", "r513", "r530" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "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": "us-gaap_NetIncomeLoss", "terseLabel": "Net loss", "totalLabel": "Net loss", "verboseLabel": "Net loss" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "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]" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NonUsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Countries excluding the United States of America (US).", "label": "Non-US [Member]" } } }, "localname": "NonUsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental disclosure of noncash information:" } } }, "localname": "NoncashInvestingAndFinancingItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r395" ], "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]" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NoncurrentAssets": { "auth_ref": [ "r167" ], "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": "us-gaap_NoncurrentAssets", "terseLabel": "Long-lived assets, net" } } }, "localname": "NoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r65" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 3.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "us-gaap_NonoperatingIncomeExpense", "negatedLabel": "Interest and other expense (income), net" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_NumberOfOperatingSegments": { "auth_ref": [ "r144" ], "lang": { "en-us": { "role": { "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.", "label": "us-gaap_NumberOfOperatingSegments", "terseLabel": "Number of Operating Segments" } } }, "localname": "NumberOfOperatingSegments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationNarrativeDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_NumberOfReportableSegments": { "auth_ref": [ "r144" ], "lang": { "en-us": { "role": { "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.", "label": "us-gaap_NumberOfReportableSegments", "terseLabel": "Number of Reportable Segments" } } }, "localname": "NumberOfReportableSegments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_NumberOfReportingUnits": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of reporting units tested for impairment of goodwill. A reporting unit is an operating segment or one level below an operating segment.", "label": "us-gaap_NumberOfReportingUnits", "terseLabel": "Number of Reporting Units" } } }, "localname": "NumberOfReportingUnits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r455", "r462" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails": { "order": 2.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 expense" } } }, "localname": "OperatingLeaseCost", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r452" ], "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "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": "Present value of future minimum lease payments under operating lease liabilities (3)" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r452" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 4.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 liabilities - current portion", "verboseLabel": "Operating Lease, Liability, Current" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r452" ], "calculation": { "http://www.pdf.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": "Non-current operating lease liabilities" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r453", "r456" ], "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": "Cash paid for amounts included in the measurement of operating lease liabilities" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r451" ], "calculation": { "http://www.pdf.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 assets, net" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r459", "r462" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Weighted average discount rate for operating lease liabilities" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r458", "r462" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Weighted average remaining lease term under operating ROU leases (in years) (Year)" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote7LeasesLeaseCostDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OperatingLossCarryforwards": { "auth_ref": [ "r365" ], "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": "us-gaap_OperatingLossCarryforwards", "terseLabel": "Operating Loss Carryforwards, Total" } } }, "localname": "OperatingLossCarryforwards", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "auth_ref": [ "r2", "r415" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure.", "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]", "terseLabel": "Note 1 - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r30" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other non-current assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r403", "r404", "r409" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "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, attributable to parent entity.", "label": "Foreign currency translation adjustments, net of tax" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other comprehensive income (loss):" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "stringItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r48", "r51", "r403", "r404", "r409" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "totalLabel": "Total other comprehensive income (loss)" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": { "auth_ref": [ "r42", "r44" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 2.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax and before adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.", "label": "Change in unrealized losses related to available-for-sale debt securities, net of tax" } } }, "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r35" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "us-gaap_OtherLiabilitiesNoncurrent", "terseLabel": "Other non-current liabilities" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNoncashIncomeExpense": { "auth_ref": [ "r79" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.", "label": "Other Noncash Income (Expense)", "negatedLabel": "Other" } } }, "localname": "OtherNoncashIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNoncurrentAssetsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing other noncurrent assets.", "label": "Other Noncurrent Assets [Member]" } } }, "localname": "OtherNoncurrentAssetsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_OtherNonoperatingIncomeExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing other nonoperating income (expense).", "label": "Other Nonoperating Income (Expense) [Member]" } } }, "localname": "OtherNonoperatingIncomeExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PatentsMember": { "auth_ref": [ "r397" ], "lang": { "en-us": { "role": { "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law.", "label": "Patents [Member]" } } }, "localname": "PatentsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "auth_ref": [ "r71" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow to reacquire common stock during the period.", "label": "us-gaap_PaymentsForRepurchaseOfCommonStock", "negatedLabel": "Repurchases of common stock" } } }, "localname": "PaymentsForRepurchaseOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfStockIssuanceCosts": { "auth_ref": [ "r72" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security.", "label": "us-gaap_PaymentsOfStockIssuanceCosts", "terseLabel": "Payments of Stock Issuance Costs" } } }, "localname": "PaymentsOfStockIssuanceCosts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r71" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "negatedLabel": "Payments for taxes related to net share settlement of equity awards" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r67" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired", "negatedLabel": "Payment for business acquisition, net of cash acquired", "terseLabel": "Payments to Acquire Businesses, Net of Cash Acquired, Total" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r68" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment", "negatedLabel": "Purchases of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireShortTermInvestments": { "auth_ref": [ "r69" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for securities or other assets acquired, which qualify for treatment as an investing activity and are to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term.", "label": "us-gaap_PaymentsToAcquireShortTermInvestments", "negatedLabel": "Purchases of short-term investments" } } }, "localname": "PaymentsToAcquireShortTermInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r296", "r329" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r13", "r245" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred stock, par value (in dollars per share)" } } }, "localname": "PreferredStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r13" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.", "label": "Preferred stock, shares authorized (in shares)" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesIssued": { "auth_ref": [ "r13", "r245" ], "lang": { "en-us": { "role": { "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.", "label": "Preferred stock, shares issued (in shares)" } } }, "localname": "PreferredStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesOutstanding": { "auth_ref": [ "r13" ], "lang": { "en-us": { "role": { "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.", "label": "Preferred stock, shares outstanding (in shares)" } } }, "localname": "PreferredStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r13", "r473" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "auth_ref": [ "r5", "r23", "r24" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.", "label": "Prepaid expenses and other current assets" } } }, "localname": "PrepaidExpenseAndOtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing prepaid expenses and other current assets.", "label": "Prepaid Expenses and Other Current Assets [Member]" } } }, "localname": "PrepaidExpensesAndOtherCurrentAssetsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "auth_ref": [ "r70" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.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": "us-gaap_ProceedsFromIssuanceOfCommonStock", "terseLabel": "Proceeds from Issuance of Common Stock", "verboseLabel": "Proceeds from issuance of common stock, net of issuance costs paid" } } }, "localname": "ProceedsFromIssuanceOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments": { "auth_ref": [ "r66", "r69" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term.", "label": "Proceeds from maturities of short-term investments", "terseLabel": "Proceeds from maturities of short-term investments" } } }, "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r70", "r330" ], "calculation": { "http://www.pdf.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 exercise of option under share-based payment arrangement.", "label": "Proceeds from exercise of stock options" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockPlans": { "auth_ref": [ "r70" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the amount received from the stock plan during the period.", "label": "Proceeds from employee stock purchase plan" } } }, "localname": "ProceedsFromStockPlans", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProfitLoss": { "auth_ref": [ "r1", "r47", "r50", "r56", "r73", "r86", "r104", "r112", "r113", "r151", "r154", "r157", "r160", "r163", "r185", "r228", "r229", "r230", "r233", "r234", "r235", "r236", "r237", "r239", "r240", "r403", "r407", "r408", "r413", "r414", "r434", "r442", "r516" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 18.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "verboseLabel": "Net loss" } } }, "localname": "ProfitLoss", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "PROPERTY AND EQUIPMENT" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r28", "r218" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Long-Lived Tangible Asset [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r220", "r551", "r552", "r553" ], "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": "Note 5 - PROPERTY AND EQUIPMENT" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipment" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r27", "r216" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails": { "order": 2.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 and equipment, gross" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r7", "r8", "r218", "r473", "r518", "r528" ], "calculation": { "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.pdf.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 and equipment, net", "totalLabel": "Total" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails", "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "auth_ref": [ "r26", "r218", "r551", "r552" ], "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]" } } }, "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r7", "r218" ], "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]" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r7", "r216" ], "lang": { "en-us": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Long-Lived Tangible Asset [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "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": "Property, plant and equipment, useful life (Year)" } } }, "localname": "PropertyPlantAndEquipmentUsefulLife", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails" ], "xbrltype": "durationItemType" }, "us-gaap_PurchaseObligation": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier.", "label": "us-gaap_PurchaseObligation", "terseLabel": "Purchase Obligation, Total" } } }, "localname": "PurchaseObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote8CommitmentsAndContingenciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_QuarterlyFinancialInformationDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)" } } }, "localname": "QuarterlyFinancialInformationDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_QuarterlyFinancialInformationTextBlock": { "auth_ref": [ "r128", "r129" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.", "label": "Quarterly Financial Information [Text Block]", "terseLabel": "Note 15 - SELECTED QUARTERLY FINANCIAL DATA (UNAUDITED)" } } }, "localname": "QuarterlyFinancialInformationTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnaudited" ], "xbrltype": "textBlockItemType" }, "us-gaap_RelatedPartyDomain": { "auth_ref": [ "r287", "r466", "r467" ], "lang": { "en-us": { "role": { "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Domain]" } } }, "localname": "RelatedPartyDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RelatedPartyTransactionDueFromToRelatedParty": { "auth_ref": [ "r91", "r231", "r233", "r234", "r238", "r239", "r240", "r467" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Receivables to be collected from (obligations owed to) related parties, net as of the balance sheet date where one party can exercise control or significant influence over another party; including affiliates, owners or officers and their immediate families, pension trusts, and so forth.", "label": "us-gaap_RelatedPartyTransactionDueFromToRelatedParty", "terseLabel": "Related Party Transaction, Due from (to) Related Party, Total" } } }, "localname": "RelatedPartyTransactionDueFromToRelatedParty", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RelatedPartyTransactionsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS" } } }, "localname": "RelatedPartyTransactionsAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "auth_ref": [ "r287", "r466", "r468", "r489", "r490", "r491", "r492", "r493", "r494", "r495", "r496", "r497", "r498", "r499", "r500" ], "lang": { "en-us": { "role": { "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Axis]" } } }, "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "auth_ref": [ "r464", "r465", "r467", "r469", "r470" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.", "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "Note 3 - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS" } } }, "localname": "RelatedPartyTransactionsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions" ], "xbrltype": "textBlockItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r339", "r485", "r565" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 6.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "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" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included.", "label": "Research and Development Expense [Member]" } } }, "localname": "ResearchAndDevelopmentExpenseMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ResearchAndDevelopmentExpensePolicy": { "auth_ref": [ "r339" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for costs it has 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.", "label": "Research and Development Expense, Policy [Policy Text Block]" } } }, "localname": "ResearchAndDevelopmentExpensePolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": { "auth_ref": [ "r29", "r212", "r213", "r565" ], "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]" } } }, "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RestrictedCash": { "auth_ref": [ "r85", "r502", "r524" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash restricted as to withdrawal or usage. 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.", "label": "us-gaap_RestrictedCash", "terseLabel": "Restricted Cash, Total", "verboseLabel": "Restricted cash" } } }, "localname": "RestrictedCash", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "Restricted Stock Units (RSUs) [Member]" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r17", "r248", "r334", "r473", "r526", "r544", "r546" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Accumulated deficit" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r0", "r101", "r102", "r103", "r105", "r111", "r113", "r186", "r331", "r332", "r333", "r372", "r373", "r432", "r541", "r543" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "REVENUE" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "auth_ref": [ "r147", "r148", "r153", "r158", "r159", "r165", "r166", "r169", "r266", "r267", "r486" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 4.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.", "label": "Revenues", "terseLabel": "Revenue from Contract with Customer, Including Assessed Tax" } } }, "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedDetails", "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r255", "r256", "r257", "r258", "r259", "r260", "r264", "r265", "r270", "r275" ], "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": "Revenue from Contract with Customer [Text Block]", "terseLabel": "Note 2 - REVENUE" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2Revenue" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueRemainingPerformanceObligation": { "auth_ref": [ "r262" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.", "label": "us-gaap_RevenueRemainingPerformanceObligation", "terseLabel": "Revenue, Remaining Performance Obligation, Amount" } } }, "localname": "RevenueRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "auth_ref": [ "r263" ], "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": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year)" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details" ], "xbrltype": "durationItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "auth_ref": [ "r263" ], "lang": { "en-us": { "role": { "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details" ], "xbrltype": "stringItemType" }, "us-gaap_RevenuesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Revenues:" } } }, "localname": "RevenuesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "stringItemType" }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "auth_ref": [ "r457", "r462" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.", "label": "Operating lease ROU assets obtained (in thousands)", "terseLabel": "Operating lease liabilities arising from obtaining right-of-use assets" } } }, "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RisksAndUncertaintiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CUSTOMER AND GEOGRAPHIC INFORMATION" } } }, "localname": "RisksAndUncertaintiesAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_SalesRevenueNetMember": { "auth_ref": [ "r138", "r169" ], "lang": { "en-us": { "role": { "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.", "label": "Revenue Benchmark [Member]" } } }, "localname": "SalesRevenueNetMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "auth_ref": [ "r121" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities.", "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]" } } }, "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "auth_ref": [ "r389", "r390" ], "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]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "auth_ref": [ "r370" ], "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]" } } }, "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [ "r362" ], "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]" } } }, "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r120" ], "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]" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "auth_ref": [ "r347" ], "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]" } } }, "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "auth_ref": [ "r295", "r325", "r336" ], "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]" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": { "auth_ref": [ "r167" ], "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]" } } }, "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r199", "r205" ], "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]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r195", "r196" ], "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]" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock": { "auth_ref": [ "r127" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.", "label": "Quarterly Financial Information [Table Text Block]" } } }, "localname": "ScheduleOfQuarterlyFinancialInformationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer.", "label": "Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]" } } }, "localname": "ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": { "auth_ref": [ "r61", "r166" ], "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]" } } }, "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "auth_ref": [ "r303" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.", "label": "Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]" } } }, "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r303", "r314", "r317" ], "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]" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "auth_ref": [ "r319" ], "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]" } } }, "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": { "auth_ref": [ "r356", "r371" ], "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]" } } }, "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "auth_ref": [ "r205" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.", "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]" } } }, "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r143", "r145", "r146", "r151", "r152", "r157", "r161", "r162", "r163", "r164", "r165", "r168", "r169", "r170" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.", "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "Note 13 - CUSTOMER AND GEOGRAPHIC INFORMATION" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r63" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss": { "order": 7.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, general and administrative" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling, general and administrative expense.", "label": "Selling, General and Administrative Expenses [Member]" } } }, "localname": "SellingGeneralAndAdministrativeExpensesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock": { "auth_ref": [ "r338" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for inclusion of significant items in the selling, general and administrative (or similar) expense report caption.", "label": "Selling, General and Administrative Expenses, Policy [Policy Text Block]" } } }, "localname": "SellingGeneralAndAdministrativeExpensesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r77" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "us-gaap_ShareBasedCompensation", "verboseLabel": "Stock-based compensation expense" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "auth_ref": [ "r297" ], "lang": { "en-us": { "role": { "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "auth_ref": [ "r308" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "negatedTerseLabel": "Forfeited (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "auth_ref": [ "r313" ], "lang": { "en-us": { "role": { "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "verboseLabel": "Forfeited, weighted average grant date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r311" ], "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "terseLabel": "Granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r311" ], "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "Granted, weighted average grant date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "auth_ref": [ "r310" ], "lang": { "en-us": { "role": { "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "periodEndLabel": "Nonvested, Balance (in shares)", "periodStartLabel": "Nonvested, Balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [ "r310" ], "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": "Nonvested, weighted average grant date fair value (in dollars per share)", "periodStartLabel": "Nonvested, weighted average grant date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r312" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "negatedTerseLabel": "Vested (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r312" ], "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "Vested, weighted average grant date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r322" ], "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "terseLabel": "Expected dividend" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r321" ], "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "terseLabel": "Volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r323" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "terseLabel": "Risk-free interest rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate": { "auth_ref": [ "r329" ], "lang": { "en-us": { "role": { "documentation": "The highest percentage of annual salary that an employee is permitted to utilize with respect to the plan.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r299" ], "lang": { "en-us": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r329" ], "lang": { "en-us": { "role": { "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r306" ], "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 (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r306" ], "lang": { "en-us": { "role": { "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.", "label": "Exercisable, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "auth_ref": [ "r316" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": { "auth_ref": [ "r309" ], "lang": { "en-us": { "role": { "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "negatedLabel": "Expired (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "auth_ref": [ "r308" ], "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": "Canceled (in shares)", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Granted (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r315" ], "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "Weighted average fair value of purchase rights granted during the period (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r329" ], "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": "Outstanding, aggregate intrinsic value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r305", "r329" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "periodEndLabel": "Outstanding, ending balance (in shares)", "periodStartLabel": "Outstanding, beginning balance (in shares)", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r304" ], "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": "Outstanding, weighted average exercise price, ending balance (in dollars per share)", "periodStartLabel": "Outstanding, weighted average exercise price, beginning balance (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": { "auth_ref": [ "r317" ], "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 and expected to vest, aggregate intrinsic value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "auth_ref": [ "r318" ], "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 and expected to vest (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r318" ], "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 and expected to vest, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r294", "r300" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "Exercised, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.", "label": "Expired, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.", "label": "Canceled, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Granted, weighted average exercise price (in dollars per share)", "terseLabel": "Granted, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r296", "r301" ], "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]" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SharePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Price of a single share of a number of saleable stocks of a company.", "label": "us-gaap_SharePrice", "terseLabel": "Share Price (in dollars per share)" } } }, "localname": "SharePrice", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareRepurchaseProgramAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by share repurchase program.", "label": "Share Repurchase Program [Axis]" } } }, "localname": "ShareRepurchaseProgramAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareRepurchaseProgramDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the share repurchase program.", "label": "Share Repurchase Program [Domain]" } } }, "localname": "ShareRepurchaseProgramDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "auth_ref": [ "r298" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r320", "r335" ], "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": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "terseLabel": "Expected life (in years) (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": { "auth_ref": [ "r329" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.", "label": "Exercisable, aggregate intrinsic value" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r329" ], "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 term (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r318" ], "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": "Outstanding, weighted average remaining contractual (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r318" ], "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 and expected to vest, weighted average remaining contractual term (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": { "auth_ref": [ "r302" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Purchase price of common stock expressed as a percentage of its fair value.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock": { "auth_ref": [ "r251", "r337" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for shareholders' equity and share-based payment arrangement. Includes, but is not limited to, disclosure of policy and terms of share-based payment arrangement, deferred compensation arrangement, and employee stock purchase plan (ESPP).", "label": "Shareholders' Equity and Share-based Payments [Text Block]", "terseLabel": "Note 9 - STOCKHOLDERS EQUITY" } } }, "localname": "ShareholdersEquityAndShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquity" ], "xbrltype": "textBlockItemType" }, "us-gaap_SharesIssuedPricePerShare": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Per share or per unit amount of equity securities issued.", "label": "us-gaap_SharesIssuedPricePerShare", "terseLabel": "Shares Issued, Price Per Share (in dollars per share)" } } }, "localname": "SharesIssuedPricePerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.", "label": "us-gaap_SharesOutstanding", "periodEndLabel": "Balances (in shares)", "periodStartLabel": "Balances (in shares)" } } }, "localname": "SharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_ShortTermInvestments": { "auth_ref": [ "r9", "r508", "r509", "r521" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.", "label": "Short-term investments" } } }, "localname": "ShortTermInvestments", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_SoftwareAndSoftwareDevelopmentCostsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Purchased software applications and internally developed software for sale, licensing or long-term internal use.", "label": "Software and Software Development Costs [Member]" } } }, "localname": "SoftwareAndSoftwareDevelopmentCostsMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SoftwareDevelopmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Internally developed software for sale, licensing or long-term internal use.", "label": "Software Development [Member]" } } }, "localname": "SoftwareDevelopmentMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_StateAndLocalJurisdictionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity.", "label": "State and Local Jurisdiction [Member]" } } }, "localname": "StateAndLocalJurisdictionMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "domainItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r0", "r39", "r54", "r55", "r56", "r101", "r102", "r103", "r105", "r111", "r113", "r130", "r186", "r247", "r248", "r331", "r332", "r333", "r372", "r373", "r432", "r444", "r445", "r446", "r447", "r448", "r449", "r541", "r542", "r543", "r575" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "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/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED BALANCE SHEETS" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r101", "r102", "r103", "r130", "r486" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsValuationAssumptionsDetails", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote12NetLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsOtherDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesEstimatedUsefulLivesOfPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative1Details", "http://www.pdf.com/role/DisclosureNote2RevenueNarrative2Details", "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesOtherDetails", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationNarrativeDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentNarrativeDetails", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsNarrativeDetails", "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "auth_ref": [ "r13", "r14", "r247", "r248" ], "lang": { "en-us": { "role": { "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan.", "label": "Issuance of common stock in connection with employee stock purchase plan (in shares)", "terseLabel": "Stock Issued During Period, Shares, Employee Stock Purchase Plans (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "auth_ref": [ "r13", "r14", "r247", "r248" ], "lang": { "en-us": { "role": { "documentation": "Number of new stock issued during the period.", "label": "us-gaap_StockIssuedDuringPeriodSharesNewIssues", "terseLabel": "Stock Issued During Period, Shares, New Issues (in shares)", "verboseLabel": "Issuance of common stock, net of issuance of $0.1 million (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesNewIssues", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote3StrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "auth_ref": [ "r247", "r248" ], "lang": { "en-us": { "role": { "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards.", "label": "Vesting of restricted stock units (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r13", "r14", "r247", "r248", "r307" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Issuance of common stock in connection with exercise of options (in shares)", "negatedLabel": "Exercised (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "auth_ref": [ "r13", "r14", "r247", "r248" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.", "label": "Issuance of common stock in connection with employee stock purchase plan" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "auth_ref": [ "r39", "r247", "r248" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value of stock issued as a result of the exercise of stock options.", "label": "Issuance of common stock in connection with exercise of options" } } }, "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of stock repurchase plan authorized.", "label": "us-gaap_StockRepurchaseProgramAuthorizedAmount1", "terseLabel": "Stock Repurchase Program, Authorized Amount" } } }, "localname": "StockRepurchaseProgramAuthorizedAmount1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockRepurchaseProgramPeriodInForce1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Period which shares may be purchased under a stock repurchase plan authorized by an entity's Board of Directors, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "us-gaap_StockRepurchaseProgramPeriodInForce1", "terseLabel": "Stock Repurchase Program, Period in Force (Year)" } } }, "localname": "StockRepurchaseProgramPeriodInForce1", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "durationItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r14", "r19", "r20", "r86", "r179", "r185", "r442", "r473" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "us-gaap_StockholdersEquity", "periodEndLabel": "Balances", "periodStartLabel": "Balances", "totalLabel": "Total stockholders' equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityNoteAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "STOCKHOLDERS EQUITY" } } }, "localname": "StockholdersEquityNoteAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' equity:" } } }, "localname": "StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_SummaryOfValuationAllowanceTextBlock": { "auth_ref": [ "r361" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of valuation allowances to reduce deferred tax assets to net realizable value, including identification of the deferred tax asset more likely than not will not be fully realized and the corresponding amount of the valuation allowance.", "label": "Summary of Valuation Allowance [Table Text Block]" } } }, "localname": "SummaryOfValuationAllowanceTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental disclosure of cash flow information:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_TableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "localname": "TableTextBlock", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote10EmployeeBenefitPlansTables", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesTables", "http://www.pdf.com/role/DisclosureNote12NetLossPerShareTables", "http://www.pdf.com/role/DisclosureNote13CustomerAndGeographicInformationTables", "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsTables", "http://www.pdf.com/role/DisclosureNote15SelectedQuarterlyFinancialDataUnauditedTables", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesTables", "http://www.pdf.com/role/DisclosureNote2RevenueTables", "http://www.pdf.com/role/DisclosureNote4BusinessCombinationTables", "http://www.pdf.com/role/DisclosureNote5PropertyAndEquipmentTables", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsTables", "http://www.pdf.com/role/DisclosureNote7LeasesTables" ], "xbrltype": "stringItemType" }, "us-gaap_TaxCreditCarryforwardAmount": { "auth_ref": [ "r365" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.", "label": "us-gaap_TaxCreditCarryforwardAmount", "terseLabel": "Tax Credit Carryforward, Amount" } } }, "localname": "TaxCreditCarryforwardAmount", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "auth_ref": [ "r267", "r274" ], "lang": { "en-us": { "role": { "documentation": "Information by timing of transfer of good or service to customer.", "label": "Timing of Transfer of Good or Service [Axis]" } } }, "localname": "TimingOfTransferOfGoodOrServiceAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails" ], "xbrltype": "stringItemType" }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "auth_ref": [ "r267", "r274" ], "lang": { "en-us": { "role": { "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time.", "label": "Timing of Transfer of Good or Service [Domain]" } } }, "localname": "TimingOfTransferOfGoodOrServiceDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "auth_ref": [ "r173", "r174", "r175", "r176", "r178", "r180" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for accounts receivable.", "label": "Accounts Receivable [Policy Text Block]" } } }, "localname": "TradeAndOtherAccountsReceivablePolicy", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_TrademarksAndTradeNamesMember": { "auth_ref": [ "r394" ], "lang": { "en-us": { "role": { "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style, or rights either acquired through registration of a business name to gain or protect exclusive use thereof.", "label": "Trademarks and Trade Names [Member]" } } }, "localname": "TrademarksAndTradeNamesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote4BusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedAndRelatedUsefulLivesDetails", "http://www.pdf.com/role/DisclosureNote6GoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TransferredAtPointInTimeMember": { "auth_ref": [ "r274" ], "lang": { "en-us": { "role": { "documentation": "Contract with customer in which good or service is transferred at point in time.", "label": "Transferred at Point in Time [Member]" } } }, "localname": "TransferredAtPointInTimeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TransferredOverTimeMember": { "auth_ref": [ "r274" ], "lang": { "en-us": { "role": { "documentation": "Contract with customer in which good or service is transferred over time.", "label": "Transferred over Time [Member]" } } }, "localname": "TransferredOverTimeMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote2RevenueDisaggregationOfRevenueDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockAcquiredAverageCostPerShare": { "auth_ref": [ "r249" ], "lang": { "en-us": { "role": { "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased.", "label": "us-gaap_TreasuryStockAcquiredAverageCostPerShare", "terseLabel": "Treasury Stock Acquired, Average Cost Per Share (in dollars per share)" } } }, "localname": "TreasuryStockAcquiredAverageCostPerShare", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_TreasuryStockMember": { "auth_ref": [ "r38", "r249" ], "lang": { "en-us": { "role": { "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Treasury Stock [Member]" } } }, "localname": "TreasuryStockMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockShares": { "auth_ref": [ "r38", "r249" ], "lang": { "en-us": { "role": { "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.", "label": "Treasury stock, shares (in shares)" } } }, "localname": "TreasuryStockShares", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheetsParentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockSharesAcquired": { "auth_ref": [ "r14", "r247", "r248" ], "lang": { "en-us": { "role": { "documentation": "Number of shares that have been repurchased during the period and are being held in treasury.", "label": "Repurchase of common stock (in shares)", "terseLabel": "Treasury Stock, Shares, Acquired (in shares)" } } }, "localname": "TreasuryStockSharesAcquired", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockValue": { "auth_ref": [ "r38", "r249", "r250" ], "calculation": { "http://www.pdf.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.", "label": "us-gaap_TreasuryStockValue", "negatedLabel": "Treasury stock at cost, 10,003 and 9,550 shares, respectively" } } }, "localname": "TreasuryStockValue", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_TreasuryStockValueAcquiredCostMethod": { "auth_ref": [ "r247", "r248", "r249" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method.", "label": "us-gaap_TreasuryStockValueAcquiredCostMethod", "negatedLabel": "Repurchase of common stock", "terseLabel": "Treasury Stock, Value, Acquired, Cost Method" } } }, "localname": "TreasuryStockValueAcquiredCostMethod", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_TypeOfArrangementAxis": { "auth_ref": [ "r402" ], "lang": { "en-us": { "role": { "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]" } } }, "localname": "TypeOfArrangementAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote9StockholdersEquityNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember": { "auth_ref": [ "r517" ], "lang": { "en-us": { "role": { "documentation": "This category includes information about debt issued by US Government Corporations and Agencies. Investments in such US Government Corporations may include debt securities issued by the Government National Mortgage Association (Ginnie Mae) and by the Federal National Mortgage Association (Fannie Mae) and the Federal Home Loan Mortgage Corporation (Freddie Mac).", "label": "US Government Corporations and Agencies Securities [Member]" } } }, "localname": "USGovernmentCorporationsAndAgenciesSecuritiesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_USTreasurySecuritiesMember": { "auth_ref": [ "r92", "r280", "r288", "r517" ], "lang": { "en-us": { "role": { "documentation": "This category includes information about debt securities issued by the United States Department of the Treasury and backed by the United States government. Such securities primarily consist of treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years).", "label": "US Treasury Securities [Member]" } } }, "localname": "USTreasurySecuritiesMember", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote14FinancialInstrumentsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "xbrltype": "domainItemType" }, "us-gaap_UnbilledReceivablesCurrent": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.", "label": "us-gaap_UnbilledReceivablesCurrent", "terseLabel": "Unbilled Receivables, Current" } } }, "localname": "UnbilledReceivablesCurrent", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefits": { "auth_ref": [ "r340", "r351" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of unrecognized tax benefits.", "label": "us-gaap_UnrecognizedTaxBenefits", "periodEndLabel": "Gross unrecognized tax benefits, Ending Balance", "periodStartLabel": "Gross unrecognized tax benefits, Beginning Balance", "terseLabel": "Unrecognized Tax Benefits, Ending Balance" } } }, "localname": "UnrecognizedTaxBenefits", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails", "http://www.pdf.com/role/DisclosureNote11IncomeTaxesUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "auth_ref": [ "r349" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.", "label": "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "terseLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": { "auth_ref": [ "r353" ], "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": "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "terseLabel": "Increases in tax positions for current year" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": { "auth_ref": [ "r352" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.", "label": "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions", "terseLabel": "Increases in tax positions for prior years" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": { "auth_ref": [ "r354" ], "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", "negatedTerseLabel": "Lapse in statute of limitations" } } }, "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": { "auth_ref": [ "r355" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.", "label": "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "terseLabel": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate" } } }, "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r131", "r132", "r134", "r135", "r140", "r141", "r142" ], "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]" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ValuationAllowanceByDeferredTaxAssetAxis": { "auth_ref": [ "r361" ], "lang": { "en-us": { "role": { "documentation": "Information by type of deferred tax consequences attributable to deductible temporary differences.", "label": "Valuation Allowance by Deferred Tax Asset [Axis]" } } }, "localname": "ValuationAllowanceByDeferredTaxAssetAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesNarrativeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ValuationAllowancesAndReservesBalance": { "auth_ref": [ "r94", "r100" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of valuation and qualifying accounts and reserves.", "label": "us-gaap_ValuationAllowancesAndReservesBalance", "periodEndLabel": "Balance at End of Period", "periodStartLabel": "Balance at Beginning of Period" } } }, "localname": "ValuationAllowancesAndReservesBalance", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": { "auth_ref": [ "r97" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.", "label": "Charged to Expense" } } }, "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts": { "auth_ref": [ "r98" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to accounts other than cost and expense.", "label": "Charged Against Revenue" } } }, "localname": "ValuationAllowancesAndReservesChargedToOtherAccounts", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote11IncomeTaxesValuationAllowanceOfDeferredTaxAssetsDetails", "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesDeductions": { "auth_ref": [ "r99" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in valuation and qualifying accounts and reserves.", "label": "us-gaap_ValuationAllowancesAndReservesDeductions", "negatedLabel": "Deductions/ Write-offs of Accounts Receivable" } } }, "localname": "ValuationAllowancesAndReservesDeductions", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ValuationAllowancesAndReservesDomain": { "auth_ref": [ "r94", "r95", "r96", "r99", "r100" ], "lang": { "en-us": { "role": { "documentation": "Valuation and qualifying accounts and reserves.", "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]" } } }, "localname": "ValuationAllowancesAndReservesDomain", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ValuationAllowancesAndReservesTypeAxis": { "auth_ref": [ "r94", "r95", "r96", "r99", "r100" ], "lang": { "en-us": { "role": { "documentation": "Information by valuation and qualifying accounts and reserves.", "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]" } } }, "localname": "ValuationAllowancesAndReservesTypeAxis", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote1DescriptionOfBusinessAndSummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r115", "r120" ], "calculation": { "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "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": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "terseLabel": "Diluted weighted-average shares outstanding (in shares)", "totalLabel": "Diluted weighted-average shares outstanding (in shares)" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r114", "r120" ], "calculation": { "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "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": "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic", "terseLabel": "Basic weighted-average shares outstanding (in shares)" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2021-01-31", "presentation": [ "http://www.pdf.com/role/DisclosureNote12NetLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementConsolidatedStatementsOfComprehensiveLoss" ], "xbrltype": "sharesItemType" } }, "unitCount": 5 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(24))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column E))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(26)(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258" }, "r126": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=124502072&loc=d3e1280-108306" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=124502072&loc=SL124452896-108306" }, "r129": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "270", "URI": "http://asc.fasb.org/topic&trid=2126967" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8672-108599" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8721-108599" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8844-108599" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "34", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8981-108599" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "http://asc.fasb.org/topic&trid=2134510" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e4975-111524" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5212-111524" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5093-111524" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=124260329&loc=d3e26610-111562" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "8A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=124260329&loc=SL6284422-111562" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27405-111563" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(aa)", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=123581744&loc=d3e27161-111563" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=124258926&loc=SL82898722-210454" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123353750&loc=SL49131252-203054" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=123353750&loc=SL49131252-203054" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=120320667&loc=SL49117168-202975" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r2": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "205", "URI": "http://asc.fasb.org/topic&trid=2122149" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "((a)(1),(b))", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16373-109275" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "30", "SubTopic": "40", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "25", "SubTopic": "50", "Topic": "350", "URI": "http://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286" }, "r214": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "350", "URI": "http://asc.fasb.org/topic&trid=2144416" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "http://asc.fasb.org/topic&trid=2155823" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308" }, "r224": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "http://asc.fasb.org/topic&trid=2144648" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Topic": "450", "URI": "http://asc.fasb.org/extlink&oid=27011672&loc=d3e149975-122751" }, "r227": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "http://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656" }, "r251": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130531-203044" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130532-203044" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123360276&loc=SL49130533-203044" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130551-203045" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130554-203045" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "12A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL108322424-203045" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130556-203045" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130558-203045" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130543-203045" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130549-203045" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130550-203045" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046" }, "r275": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "http://asc.fasb.org/topic&trid=49130388" }, "r276": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "705", "URI": "http://asc.fasb.org/topic&trid=2122478" }, "r277": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "710", "URI": "http://asc.fasb.org/topic&trid=2127225" }, "r278": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "712", "URI": "http://asc.fasb.org/topic&trid=2197446" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.14)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(n)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.15)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948" }, "r293": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "715", "URI": "http://asc.fasb.org/topic&trid=2235017" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a),(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b),(f)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(4)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.D.2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.F)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809" }, "r337": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "http://asc.fasb.org/topic&trid=2228938" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "35", "Subparagraph": "(a)", "Topic": "720", "URI": "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "10B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32059-109318" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(4)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "217", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=124434304&loc=d3e36027-109320" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.3)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29,30)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331" }, "r385": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "http://asc.fasb.org/topic&trid=2144680" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Subparagraph": "(a)-(d)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123586518&loc=d3e1043-128460" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "37", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4845-128472" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "38", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6578-128477" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6613-128477" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479" }, "r401": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "http://asc.fasb.org/topic&trid=2303972" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "808", "URI": "http://asc.fasb.org/extlink&oid=6931272&loc=SL5834143-161434" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569616-111683" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123454820&loc=SL4569643-111683" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "4J", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=120409616&loc=SL4591551-111686" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "4K", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=120409616&loc=SL4591552-111686" }, "r415": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "810", "URI": "http://asc.fasb.org/topic&trid=2197479" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5579240-113959" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5580258-113959" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41638-113959" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669646-108580" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=125515794&loc=d3e41675-113959" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19207-110258" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=123874694&loc=d3e19279-110258" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e637-108580" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e681-108580" }, "r450": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "830", "URI": "http://asc.fasb.org/topic&trid=2175825" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(2)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669686-108580" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971" }, "r463": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "842", "URI": "http://asc.fasb.org/subtopic&trid=77888251" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r470": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "850", "URI": "http://asc.fasb.org/topic&trid=2122745" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "http://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=123353855&loc=SL119991595-234733" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=123371682&loc=d3e55415-109406" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(1)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(2)", "Topic": "932", "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(1)(a))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(4))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(6))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Subparagraph": "(b)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123599081&loc=d3e62557-112803" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=123345438&loc=d3e61044-112788" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=d3e557-108580" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(15)(b)(2))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(1)(g))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(2))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r539": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117819544-158441" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r542": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r543": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r544": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r545": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r546": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641" }, "r547": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "http://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014" }, "r549": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=123364037&loc=d3e3115-115594" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067" }, "r550": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629" }, "r551": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916" }, "r552": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916" }, "r553": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916" }, "r554": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column B))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r555": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column C))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r556": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column D))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r557": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column E))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r558": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column F))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r559": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column G))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067" }, "r560": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column H))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r561": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column I))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r562": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "http://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024" }, "r563": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "http://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663" }, "r564": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "http://asc.fasb.org/extlink&oid=123360121&loc=d3e27327-108691" }, "r565": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r566": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r567": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r568": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r569": { "Name": "Form 10-K", "Number": "249", "Publisher": "SEC", "Section": "310" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r570": { "Name": "Form 20-F", "Number": "249", "Publisher": "SEC", "Section": "220", "Subsection": "f" }, "r571": { "Name": "Form 40-F", "Number": "249", "Publisher": "SEC", "Section": "240", "Subsection": "f" }, "r572": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r573": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r574": { "Name": "Securities Act", "Number": "230", "Publisher": "SEC", "Section": "405" }, "r575": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7(c),9(a))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3000-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4304-108586" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4313-108586" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4332-108586" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=SL98516268-108586" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(2))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(k)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(n))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column B))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C(1)))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C(2)))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C)(1))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column C)(2))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09(Column D))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" } }, "version": "2.1" } ZIP 98 0001558370-22-002561-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-22-002561-xbrl.zip M4$L#!!0 ( ':"851CU.% <1< /, 0 1 <&1FJB6\).GI=$W/E@-.FKT$&"#3TY^V%%N 9HW- MR'82YM??(_D% Y9L@Y.X[[IJMX=8TM$Y>HZ.CJ0CZ>=_O*PL]$282QW[RUG[ MO'6&B&TX)K477\Y\MX%=@]*S?_SRW__U\_\T&K_?3 ;(= Q_16P/&8Q@CYCH MF7I+-'/6:VRC>\(8M2QTPZBY( A=GW\\_]2Z[)Q??/S4;J%&(Z1T@UTHZ=A( MD.R/+5$O-)1%>#OL9$@D0\O:[F=@8*>FYXMSARV@HE:[^?O] M8"IXBS(#&VX&7T%&DZP9,7@[[61_>6161/ZZR1R+-+CU6YL.3-\QD"#-G$A0=XEQOG">6I&J:)@W$20P_1V M"X3\7#6#Q#BK)67]HOG[@-K_3C#O;=82YD5*"O,N\V0BQTDIQ7R/*6" U 13 M"XS7J3SQA!3:%LBDD)DG/T)?BB6@1GK+0\).H[O>FDER0LIN5A!=TI9Q4@KG MQ/97G314.ZTF>?&([=)'BS1X-L*P!P;(;72X 0H5R?%MC\GT*$C<8=,F7E9G M@"S;'D3324."(/OG94P84\--SRR2=I7Y +"PQ[>OKZ^;(C5FP6-[[;K#-B0W M>;)H,=ZT25$7>?I^F"T&Y,58IHO!4W:DR&'](O-&L\U;@]JNAVV#)'L\56CU M?GY0LU3=2VH=6'N$A+W'MNUX0J'$M^CK>DWMN1-^@H\)CT M4ZVO:,PID!3VO@N*ZEC4Y$U[@RW.YW1)B.>>(0J0Y,@7\Q!Q89(YM:G@&!JN M!>,DBLG [^YH.!T-^CUMIO?0C3;0AET=3;_J^FSZ%T!O^YUX>S*1K=0M+]>*)_U8?3_F\Z&HRF-:C%0,7N\M9R MGG.#&>=7@WA9"$1M^A7=#D;?:O"2X/6H:UB.ZS,R=#QR>>.[U":N"_WID=J" M]UM,V6_8\@D@H[DNF$?-^-.GC)B:;0XH?J06\$I<2 ,_@7^<$(M#^N"2N6\- MH$.Z/>)A:H7XOVV5*A6Z!!7J@-IL.8(_.%/H$G[13?O25!(:=*HCU7\&,\&8WUR>P[TH8]I/_ZT!]S M4\03PNJ$1L05UBJ01P627AH?\AV;CQA]D-]>\+F*Z(QA0W9!ODZJ$A2GDJ4& MEU(UV'$&A29]$YH&9LD8KU&-6IL^ M2K3I(_RX&XUZW_J#@1A@^L.9-KSKWPQTI$VGNM"I@"64Y(D[+$FN#O2N=D7R MZ-M/ X)=XHI_NXZK\CAD6=6X_R1Q+'Z"'P-=F^H<7T$3<:(U:/E!N\>>SZBW M&2>D] M]*'V)[,5H]WNVY!$9OB%N/%/_65-;)?<$!L84]GY(L65*M!N2VQ_N\W]Q"&X MC3J::;_K@=O(*T)0$PJK0A_"ROY6FX.C49\0P[$-Z$9"EL*HIQ?/0CV]XV>@ MOEM5#7E1R'MD3A@C)OR1Z?[G*Y@%<[I#GP9S5(4 NO;.\P/<&1*/[P&-"9LN M,2/=K0RCN8Z9#<-EG*@"_"A":@7HM-KI"L"-_E"?B>TE--8G:/I5F^A\3V-; M*1_PHVH1U(M$Q;52Y%&*RUMJ8S"5V.K;KL=$@)0;;S0$W>L>7"C(#]R 7?49 M@W:^P2Y5&H4RZ*I51K9'T>:FY+8_U(;=OC8 ZS&=31[NPP6E[2[%WR/;$7'! M@[HPBCE!@I5:B=*5* REB_[+]PAL#WSOOCUWV$IP'ZI%GISJ_\0E$% M4\\Q_KUT+),PEV^C>9N=VY"_AF/>(:C*X#OSJ*!X$Q;^JO5IAM $RZL.D<&A+& M54.$EH+C,@;8#4K2W;(32:J4HPUF7N+$\Z_ZM#OICT6P"*A&'$3"=VFF#_?W MVN2[4)G^W;!_V^]JPQG2NMW1PW#6']ZA,6A8MZ_7,4IR;>E,R!.Q?9(&>YRF MQD\V">-^]D3_31\^Z#4 4@ NIAX#L[B@!I@XSP;[NJ1K;<&(L)3?J+?4S"?H M5L3UMI%9/.MFQK#M8D-$DJ?!5Q)E-?@7$O#Y^AO,H,"NW_6[:*Q-9D,PYU_[ M8Z3=371A[-&W_NPKTGJ_0:_5IS/1IR?Z0(P(O,!W!.6'4ZW+>W_=AXO%&>8- M#LR ]U("KRRBKT:I6,1=[K"Z#)RN)#C)8^=JI(X*@"D:R9*!VT<);MDA*35^ M6;O2BFWF#%1^DJ"RW3>N6U_:^I]@=%E13TP

##ZKNOH1A_JM_T9&@^TVCG/ MNT&>N1&> 8UTJ61_P[L&)/^&=J[-Z@Q@"FY$U_#(X;GH^JX'_8&!,W!'G 7# MZR4U#G<(BY92 RA;QVCSA8SN PQ0]P >=R3N]-'=1!M_[7>AQ]V.)O?UQ/>8 M8('\V_\9R,F6*.0;^C56)TI$^ M;3M'ME-4$E65;L P>QB^4\X>$?H0<5!KS:MM+L[X,:G7V&(,":MT!T9X651P MB4H4,%*K4/:.HUP7]G*H0>U(0$WL/M:H'+>')$=(D5N-UJ4$+>D-$35TQVTL MR;%395>#=R4!3W%!0PW?2;M-;>@Y/CM9E!#E>,8 M8PW)D:OF"H]4E5\)6+LEO^S05XU9"8ON"A#SEE6C>B%#-><"? WSL2OQ"FA5^=5PRB9ZBF-V-8#E M+<\K,"U(0@VS;$I8?*F^AO_55U^'F/';39Z4I[1+KD*E/I=O:I8F28^%E:F+,)@+?"$6,HHC3 M6C]?7S]UUZ.KO]>R,Z^OX#U]+RP>HMH* MK9-G5JM'CO-Y.Z-DNX;N&.@Z1:#KY(4N?5220=>IH3L2.O'D2T$$=\J4#61( MO@:T *#P%2\6C#\#)$;FZ',VK!DEL\#-#D$0Z8DJ^, 95E)#_&;'I!6:4&X% M:H5YLT/3M6H=&?J29ZDD5SFU(A0]7EVO9I2 ;1GOX8R\)6'O\ [/3KU9NE4P MU.IU'N,1'->Z>FP<5QY#E*^@6EN*7R!0VZ(2 [WRP%RHO!KMXZ\=J%$O$?7N M$OXD?;L++;JA]D);\97"T3PJFWGV-=TC@X@/7RAJ=[[*!!5FF>PD&558YI]\4EM_PMBIKK>) ^0 MA\9*4&MI0@\ER!-?E**N$]YFJ6&N)2 M(!8]Z!X'\*QGXCK$7,"_S)JB OX MH8T?@,GCU:(0U2P]N3K&]X@80%L.0N41/-2J<_0)N%Q>I[* &O#W,_G9=1/ MB29].@3A9D7A$+ZJJAKPHY%M_/PH('\U[Q[Z= M6(A8ECI\S*T.B4E#'-4.[F&O?F:QG%.SFNW1'K5\;E2G_'4YFO&8=D$*:DV0 MQ2O*'U;DM37,L#JTK:]&OY3SM[D&^^)4U%IPZJ68M6-0NAZ$,:/0QPW>*@MR ML[G'?S@L*J>T$.51S](;B?7(KS=1;.R6%?2X08(9%'-3ZU29.N7>;+;)&B.X M#%62$LW2H!-O X@UR.5ZLV4!<1YJO2E%;P:.O>!!?F;@YY6J/CEI9VF19&DK MOQ9Q/AH69R3R9FMU*O'NB:PXVAREU"I0_'9H^%['K)9^(84*XZ(TU(B7=WOT M?Y0&\'\>L4LF9(Y>Q!>8VSJ MU,.VB1D__!%X2-H+=7O."E,[/!!Z8$+S%%%93)!*O,B]8S$CH@BHAO,MQ.FB M@'!T.M7]?VP8?VZ^N.9GO%Y3\$K%M_"+;3N!",%'_@TTU&$>LO&*N&MLJ+2/ M@AO#%TO/D&LLR0H/PKUU11'^5R,JU^"?&NU.XZ)]#E5':E> #=-C3=ZS@'BG MU6BU&YUV.C-NCI+B;S<_)TG)KL1?II>[*:("O VNCI0>BEX'O<[F1W'Y2Q9Y M:K<8VRG%6;CF,+0_YF=DCMU'0T&^S?Q@;]H9^V>K!X) M"PP^'_'^5:A4,'I"GVV(/OK9%*:[[Y$5MW(@F__H>M3S.94[YOCK+V=<+/H9 M?.W5&<*0RK#A?3F#:1=DMZEE\1O:HK^#O&L1 S0+JO*98$DE=GR&&N;^U,!] MVS@44IZGDB+!;Y/_W9XY4V?N/6-&!M0 ?$@(S)2P)_C@QJ?)#T4^GD8UFP2Z M&?TK#%B+SH^F/Z4;RI^O0"!LP-/*L6%VQC:Y14T7[1%;?%@%N<@C]8X5V,;6 MQJ-&2H_=3ZDB7BF'E4-+$]_ZU,7N [Z=4 M$N.0R1LI^S=59K]WVY^!>8BO6CJ00I:ABL)$TTQA(\8^,Y;@@O*S0W<,=!"Z M1W#*[QNABR4, -H3N*H+(A)[,"+$HUY"_/)([C?8.@QM/K$/EM5$!\!GYORA M-& /H#B)47[&0 #A1A_-/*U0D& UT._WIJE8[WVO(K+@N3$^H^R1X+_* 5$U MDIY*J*KKMOMR]>T\BP&%2OVHHD]X5QW-']S#U?KB12N[L+>_Q0#5N[NBIJ97 M=%H'W)*%F*=]I\0R)WBU/C1;\CQ5-&$#_,AGG@[CEUNJO:[LK%44,-UT;((E M\7#S;^;H+QZQ7;$[)O+QM8>$Z*<0J>H%N7B!_E%PW]S6'6X<)1>G(5FUZXDS?< MV]P)J6",WU[)\]ULMEG&>,,_:<^8F8&O"H(2]L0#DX.!< +]+-$.KT(]V5U= MD>]ML0^]=$:>J..[UJ;ONCXQ'VR3,-'S6NU4;[E8L6KJBL,\#TPFC"Z_82;6 MQ0>!,^QZ.Y(J\U75']P+.]F&%65'KQ0O6DE\4]Y_N'78/QW*W^%Z(I8C? G^ MRA>VB#LCQM)V+&>QF3J68/1P3"J/9!4;3.V-_3 .6. O?!*+%1.RCM7)75LQ.JXB86;DK*>8S_-[H%O>7!/7[F$_I"W;YLE=14,F]+_'% M(&-B8TML>8L+GPGC 95!P$=?G*[DWG_Z^D;YI*LZQXC6KGK2C8A>E75@Z'/> MXMG!U(%^NH.D+$,2#\H7! A[!R_R&-=X-)]#3?8BV$(HP]G>IYALFTB2'Z1Q M(KCCA?72&DE&^=T5B9L:\7:JZ1O>-W[9"-CS'3KI5-CTB M2 )L";BSD4Z,YK?T)3JP+QY%"ZZ"NF7."B9^:TRC-"?MP9K]$P E$Z_JO&NV MA.&37_D==K>@9XWFXJH3ZFVV?6[T:-%%2"[AJ!U3_/W5?_;LQ->XI'AEAXE5 M[ 0CFT1\'JY''J95401HZMG2\5ULF\!Q+H\Y7X$J"MO%%IT[S*9XT@,_MBL\ MQT/U4V>KIF '(8I\42%:B4I$*8HWR#?!OS/RXMU8 * ZV+$8I?WF\:*DM[4O M\:6$,(;T'/_1F_M6% $_X]33A"]2J")R1H,=[WI>V1>*OA)5"K2$I&+ MNGMA6.=Q/6&>SN\=,;AMC> MNR%=QPHN4M'FT%F'@,/LF5A/Y!XJ6":;XLUJK.A&>1>OJ0=6_J]@(N0#[]$B M=J3H<[)C%7/E?W^W*M)Q?3H>!ULNVA.F@B[8M%O?\QGA6R_!#00'72-?L5?= M@LH&+UB";2D#\11YJCA^'[/B%A[;XDL[S,76B>MW!]2J.E^2"G?DFN8/M5XI ME6+_PN>I__@'V.69<^M;UN$-T7D:IC#)BMIZ,&"$+NQ8^_F8QR?,U%XDFD&9 MJZI]09_/"7\^@<1L\Q@!'GAI&Z#+HGC*&2_Q8,O!^=PRB%6UH0[N0]="*YX, MVI?GV1GP/+Y8_,X'$/99#1Y[5 D3Y:AH)TWP*ST7*\)*G;F?$I%Z7/&J6GFQ MGBE6\]R9$QZZE,[0=F9QAOYVKT8<$ADS MF*=XW,,SR%Y[%"OVXS2'9O[AAXLP@+-IBNO-L#7&U.2//HNI2D+VR'$7EEK1 M7.62?=/F/&5LB.:_NG0C1J_RU"'/L,U]O&#VNO7PPNC"X*%NMZ ?D(?@*UC7 M]*8Y4)9TY<@(&0G^'=DD_VFOH@5/5)_CVB3(^R;W.*2/PCNGO+8VYI5N=BC( M0V64-!H0I$#%[[?SA;9(GG!Q&H:VA/%.M&R10I5IBJS^NGM9F+BK6W9C6,I% M:X7+5K'7YKHOK>C]:C^0"MP! ORIHY'=H^[:<86K O;@&P->>LXS%W)_CE"@ M3&7:(=,JI)N[0(X\4X8CR[]R \53I)/;)P:W;PNW?S3??5CB*[',6X<]N,DE ML2*%*J,JB2X3W%,<7%WZR_\!4$L#!!0 ( ':"853D?&=X)Q< M; 0 5 M <&1F&UL[3UKXRK&SMC-G]M,4 3GF+@9? 7GLK[\M'C;8""0,1N#4SLXX(#7] M4JO5:K6^_>-]I4NO"%N::7P_:WYIG$G(4$Q5,UZ^GSG6N6PIFG;VC[__Y;^^ M_??Y^1^WTY&DFHJS0H8M*1C)-E*E-\U>2G-SO98-Z0%AK.FZ=(LU]05)TLV7 M[I?K1J?UI=V];C:D\W,?TJUL04_3D%R0K2_-S9N^#]4TODKMB^9%J]%J23=? MFTWX1WI\V+1[ "076EI#73/^_97\ZQD^* &QAO7UW=*^GRUM>_WUXN+M[>W+ M6_N+B5^@?Z-Y\@"@ M?;'Y%K4%^>L\:'9.'ITW6^?MYI=W2SWS422O&3X2-"=OM83V(5J\]GOP?1XT M;VYN+MRW9\ ]2?J&31U-T4)RGWVU/];H^YFEK=8Z@>4^6V*T^'ZV5A<6T-)J M-EL>)7^=V2!&HB=]T[!,75.)5&]EG> Q6R)D6V<2@?XT'48P 4A?%'-U0=Y= ML !Q26)BUD4A-&T>6I-%WURM,5HBP])>T:^;;_G0N@5V M1!KO-$O13NF'T\^[*N MM/BYD>$3U>%'NWA^M$OD1_>'::IOX%N!VNY@:/4,PY'UWLK$MO8?USY,%D,5 M: $/2896N^VS#J="<"B-HU8(1:GE4M\;()BNI M1X1G2QDC,A0=W9^U!C(V8-1N7F;F0K:OE,>5SCVL+D [97UH6#9VHSS69J7A M">\!;!FT5R<&J+*#,9!P*UM:=E7)Y:/_^9#R;C(9WO?G@3KKMC7KC_D":_1P,YC,.XES2 M@#C=5"*(Z"1L9>*H-A!P%L!S82UDZ]D%Z%CG+[*\)L&TY@72;2MXXBK.>:/I M!ZK^ZC_^TQ-0 %J7GY'^_2QX>%$>1GU0$^#M#F*Q;?[LMJ^NFU?=R^LN_*_= M;36[(=1#FM+#42IDK 3PX>>>\D2EY+>X@/7XRH5VKH'X@_X+;*ZV?/,_8O(@ M;&(5X>]GS3/)L0 /MGTAO27I:V^Z84>9"0#JP7R'_(,/&,GN.*?(B:EOE!T=8,=52?)CE]:^A+.3*JSD9TM8#,X17@V-5V39KF6G M"#JN:3WDRDR9+\:6<&+L*8KI -8P]R+02UC!@U^38E\3NM1#K-P4^N)M"R?> M1XS6LJ;Z:S,P01-[B3#++,K0LQ["SDJH+_..@#+W0N"/X+S:X3@X*#%5V/0N MXDB9[D%QXR^L/8[&E:8$FBF<4(,PXR;RN"&,(DIZARH( MD!-[7VQ=X<06\J3&IJ$D^INQ;:L@+';$?3E="2>G<$Z)H= ML,O7$ G)X<']AG40(R-5PBY^@\#UH_Q!HM9LF=S\H]7[293D M23*&MYJNDU3/H3%X5Y!E3193](H,!Y%LX!=#^\\V1]"7#YY%" M&-YF&#E>-4;V9#&7W^FQ#QXH-=*'/"@7-M_G$?L9,*E6/:9EC83,2IVP"QXR M,VG>N0AR_@46>V"[D*'0D1)O^XVVIT*+8%X"6.?K[]=[)QXS/D89%J] MHA"GJ</7P.!W\'(QGP]\'TF@R$_V@9(SQI4Q< MB2W+V\E/F3T>2>$/&%>VC;5GQR:[:7/S44[;[L\.59RASB#:O42 G.D6=@%- M(_;>Q("9X84!E8\YE@U+5ER:#=7]RQ>>^K^.=VHN?T4K! =QU+)(?6/7ZN,Q MN7)CX,G 2-9)B/HG> 8D\QZ6;T0J$V-&ZAQXS@/6+'AUYY"J!X\(:Z::LN I MZG.?FGT$?@H;W@:LM\RE:%ZDC3CJPCD_IU,AK)"V>-\#Y=X"P@'%\[?-P6&_ M10LPR*%,XL&[C64@2#-D_#$$WKF)B63+S71WUH:&C3"R:'-K@5^,LO[F\J93 M=OI1NF;L:].Q&93_+$C9\HZ6^@O*C^X<+(O;UV;J*)[PCRW(G5WP[%Q+U0C^ M;1F*2OR".0_=F6_&T' #49/%R#1>2+%9U47O)])5\ >?K-U0'6?O3^7848X# M62?NQAVPQ Q2OCS>^448:!X(K?VGRL0X.ES,$GAST$WX";BXFRH$E'GGFLE( M@']4^LHI Z1/O8K;A\R'C<)N3)(JOYM$,^HF1:C-IY;$;7:D,2AU[[&T:6F* M+ 3<)@7;[H W70KR21/38E](O3?-+KM5MEUDLI7$'Z&I>YQEJ8P,^1RX A SB76HFA-%VBE--.#-#LM19/6[(' M5]B(XUCD''6W/'3C#8=KE[PW^RG=CR:_A-\=!R[LE#X%\V]C30%V^:51 MHP]"+;VP.N@"25-%=\C[[\;-'+PK2]EX05-@V6"Q0,KN4#GVQ\N*WQ/,'['Y MJH%>W7X\621\Y%??!F=< 8N85!F%'8 XMJ4%!)51A:%D.J8?O9H$%"><,JA#; M+\J&9O?RIE%G56#G@;#[CWN:3:JMTB:4^,8G)O04PH4-NC[*'RMO.G7SR^]6$_>>5[+_#MZYRV>:+F0$=PK:DB=K4D.JI:UJ S*!GBE: M.QB<*XMM&DGM>$)*PLD$<2.LGD<]682][(EQD#^_\=SO-&MM6K+^ YO.FD07 M-4OQ@E-(W<:F*.I6/F+BJ'/YRRM!I2&L@T8Q/-[=) =$ 6( ?*II;EP3UPL, M>;+^Q9= @WM=QL?F&).LZ]9DX=Z#8S-=!G0@5'$4+R?Q)Z\@\N*0N/$%GZ:Y MZ6>]<=PKQ=3W%!0F,Q\*R VC9 ^&U'>#)O76EK@$0BX 46);ES>79:=DY";T MG)B1.NN4OE;<$';K6)I!-E>$0#N0?6Z,,^5W+EEB' ME*FBZV$0:ZP/17%'V,"9>Z:5*GC?2N4=:TNZW2KVXH8.[(R(:C%07?=XWCR]?O MKREXN]=8W+FP0MCB=UQ),BQY'K62?0;"\[] \Y#R!['CFJUGC<5Z*!=\&5\+ M-YK]$N?$'0V<5W+*D6%.9^A98X4XE N^0MP(IQ#[\];.A6/T0UO)_4Y &;+Q M((@1-2J@"_1+R9C5@@XBRIW.Y4U7T$WM/#6$DQV!LHB7\Q"K_#O7F_'8CIVN M)ZDQAP$Y2K?--I=!HMZ5S:8@9_$.2D#ORX?9H-QX/9C-P+$R0E#TO) M7$@>GE* J"0;JA1"5?)Q=9_#J)-\C"4/92IV^7UW0UZ+\[W9;G;+J2!YA654&+YD* XCM M@>\D%)'D<2]'P-^6B=W9."H"XFAQ&2I6H'^>C?-\BT[NLR5'4'GO'E8[](+K M3$))J'P.@X*&P:$RX%NVEG78JEB.!7OYR?V+X/Z->'2-7'/^/:J+RE[U9?PXW$Z M>1Q,Y_^2>N,[:?#/I^$CN:^%O/ _Z^X_;SYR3B[FF"T1LLD)9-/P"D5'MC%\*]V'S[689XD.=9:X[8UZX_Y FOT<#.8D MK>EQ,G:O]3J7MA_V,IJV,X3T&_F\U!)]JMC= 0)U&;PGY]SP=/VSK,%^3]_D M"ID_AO/ _("B@^>JVVS=E'[](YND]LU$3M0?[^+[72SC;#N]81U$QTF=L 7R M$U1OWXUE[52J+-DH*FOXE1_S2* VR45+ZR;>H,Y5$?(8VN(X;.V2';;VB3ML MX@W]K,9>O&'/(SK&P4^CLQJYURG9:.QZS0>F/IJ1"^4%)[P6XJB+9Z;R\U"N MN\W+LDY3IHLFNU?BTR7L[39"6*/J"#\7.@5P4;NA]+Z]199A.+(>+9 7WI'; M;<^W-=6E^+!=^/%C,KG[-1R-W*VIX7C>&_\8WHX&4F\V&[B>K(>:%,:-'*P, M8[?G[5;GR"27/\B\Z!>$@K#,_"2W?R$9WT/;#$%(.C!Q+$N^D0].BH6=FOZ,$T[&4&[Y0!Z.GH#1/EPMYS MP&]0YV]F;M,1P#H=14DB./]KDLK3#_A^?@Z+"^W$=(1*N&'3M:'WJ>2P!U4'!)<2(N0 #0-V/^[>T?DP7UX!6O@6NG&[C@JR1VM_FN;_;" M!=&J8_U@-D/Q'/P(KJR]VSN;Q=ZME.'*BEY*>(87C$A#G4^L84N0"]7"6G)6 MZEC"=YE@A=EUU;CIMAKM&BM).NG"!N]8260,VV4%=UKZPD2]L$$['M-)#]=Q M0CDM!4DB6MA@'1=Q"6$Z;C@GJ!M4LH4-TG$Y7/3P'"^8T],-*M7B!.?85[4\ MQ^6*6=I6Y3H8+02;TF4I])@::]%?DK"ZDT6)$1U6QTV\VR M[Y8HS)YPL4#8)3"%.*:(9NQ=7M67.@^1 H1 F\VA :_07'Y'UN:GOPUUBPRT MT/AV=YI-RNY.LTE.X8S[DX>!-._],? .Y9 /2O!%R?^D])O_T;]5)O!)X=K. M(*"V*N>69*^ TCT"!93U--P9>XDSD%-$$KGO. --PMKCH C0O8D!$X--,_DZ M5U+(!Y F;% Q4%R/)-XA3.E52>EFH2G_P!]ELWY7YH?5R8'R_-<>!W@L3P9&LDZJ0,-KGQU39"'\BCQ[&ELO M(Q_(E=*+HND6=J>?,A#@01\F62WIEO?D?I42_V%4I>[5EU:PF$(/A2.]('H] MLV7; 9P^(@.!3Q.R?:-.6I,C!WP-NZJ*^0B<]8$A*[9K*OD5*!Y&G12$@T)? M :ZKH@ 3>XGPYI'Q,@3V<4XEL2"BS&F56"[]6C5S#-H)/ M;X.YU MC.*'420>X: Q"8 U18MU[L1C>*'=\]:JX*'?P*3?.7;%25'ML"N4N M[M>B2FU=ZL[5!BMZ4=6XIN*,649AQ.U.I1(D;(PZ>Q":.]Q:IFRY!<8@:T9Z MQ;VT9H^BI#JC\8WK+6$ZB<+N&>S1L(E0]&6,/Q8F?I.Q:OF1<%99)P*I@ [0 M!^I^B%+*[@K6=:MX!&'MK #/0'M.9 9U;$UV\QT8%AD MM+"J#AU"W?6$DW)A=R49S2?1>&#V\K 9*( 295&[VRRMF,4QIZ!$ZH7/=$RP MD.'M5+"2?O#$XM[%+N)3)Z!JA; H_WU.RN[W_C+>/:P:MYU-:5H3$7.3R'ZR MN"23L0DPIE\UGM1%'/D>$')B)BS5?(CE4/A[, MI=%D-I,>!U-I]K,W'<##T,=)O9'@\Q)\7W(1J,Q^XR]7@DCMO<(L\H+&SNH9 MX.K28DT5F2 M*C.//1N=<,V5 TDCEAV=AQRVGW:^[7L !PK:JQ-C MBA0'8Y\HSDR%#JT6!4E@N!^.>^/^L#>2AN/9?/KTX-\42S"17%3^)\A8"+"1 MP,;(T@8CR46I>/M"\>CZLK4D_R?>Q:NL$RZZA;+G"*^&QBNR["AGMWS8&5B' M "K%BO1>@=^D"/B]B6> \(Q(Q"]I]6QO_Z(8$-;NXMB.PT4=-B,'T9_Q@MDX M<_+MPI../RC^_O]02P,$% @ =H)A5# 45]@V.0 L]<# !4 !P9&9S M+3(P,C$Q,C,Q7V1E9BYX;6SM?6MSX[:6X/>MVO^@[?FR4S7N;KL[V9M4,E.2 M+7?KCBUI)#E]\RE%DY#$-$4X(&E;^?4+@ ]1$@ "%"D>=K,JU9$E/,X+P,%Y MX9?_>MUXO6=$ A?[O[ZY?/O^30_Y-G9TO]ZT_NLW3T%75S'2_S8/*<>92%UC/\">ZS !R+X, M)LMKO'DB:(W\P'U&=S@(WO38; ^ST1X2=.2W-MZ\8[^]*S,H1UF+[N]JQWD> M8OOK&GL.79S#OR(WW%:!M&C4,V)]XP:VAX.(H#$.T>4-"FSB/K$E-5D.HL#U M41#T?6<>;386V5)PW95/5[EM^6'?MG'DAW1CFE+$;!<%8XL0NAR?T0T*+=?3 M$8J:YV\K)?N>AU_8!G&+R0V.'L-EY"6M@H:(JP526^D]#$)WPY;F0X H7G=4 MANC:G!+\A$BXI<.PI?G$EFQ#U"\!8&.\N)JA9^1'*%N.EV6)IA@)#G97E6%W M!1.[I15YI>6^>,#&<:7?6JL502LK7ISIUR=B7#1L8WA_F(>4%6CEVE.+A#Y5 M/-;N4Y]"RG62+_3RT'>>Z2Z$@I!N+#/DL7V'-=TNB.4'ELWP*7T,53Q[8U3\ MF.[A5&U]='W.Y),5(+U!0>%\:[GD-\N+V'G4#P(4!GV;GD4$.91]=Z[UZ'IN MR/2'(*"W5&?'T]Q)5B6Y*H7GFZ/T)%PC HW<^T U1O,?1.K4R4M:I M^9I/T!@M?OR$L?/B>AX%:^2'EK]R'ST4B_7)@F V.$@:'/Y=!RFD\16B ?+1TPZE'5:_3S3N:PP+#F[-JPF_N 3OJ^+G' MS[.GDS3A$V<#1B5F'[*SJXZ-5[[[-U7<$7&QJW"EJP>K3DLK\8H M9-X-*JOSM450WP_=&]>+&'AS9$>$Z\NET38HLB@I_8_WBLQ#L4H.6[ MI/V[%Y?>QBY\JBO@%T2*X1>1V2,D&X]->)'\0?&\_,?%Y>7%58SIX5SZJ&13 MN7[XSG$WV726YY6#.1#5T!O&L*%[&C1W21#5\AR,+1JZ5RO([K(7,Z=AYB^J5+KSSL MS*5_[DV+7D/D.\A))V:@5K4/<@A2&.BM=6]B?HO%Y!CA("5B@.RW*_S\SD$N M"ZF[_.LC^W@1?XS11NX?=VAE>4.JZX=;!D(ZGF<](N_7-Y)?Z=\,S:-?WYT% MY'C&F[VUEL K^BD!=O^G?4AW#.Z3?9BI]*7C)()X@J0N"=[(:8J5X.] _+EW M,$(OQ+W]GE% >V!N]['H;HP)/3.2H-!36;2T@D>.=4!"SJ-WB,HJ^XNSZ>+] M91(!^6_TJS^F!#N1'4[(')%GUT8"$5,U27 7-VD$$QYY$T,1""6PL-T^3J)V M#LIQ/OGFD/O)UW]DT9>QV9U%G6*? M*=L"H=9JF]"JH&US"!_ (]YP56W2G5?-E@FQE"T!HPI TEV)^V!S6$A%S M4;1.U'@7+):]:80KYFAX,,I^=OCM#-&6IU*.9.T.%:/C=F=&#*T.P1 N@<)V M*6+R=A"4(BE;L#Z*0J7H<& FWXH!09X' \MCR2SS-6+NTCB20"#C1V2S!2M&M0AA6,P/JXY87W>$0FMHJ10&[3LOR/P3;_BT"RS3LF M-#3I"(,NPN4@;R# $\ "*,$OK(%E?D7H3\%6BFAHD$LDRR5E>1>!*U-DU*W2 M$U[6"A9Z<8:)V+"CW5Z!\D'[)G6; K9ANR,J*)P&YJ!B MDV6?T%-SQ4T @F6D;),03=*F.<1RH# 'YABSB*STF[R2<+\7OY2@7+)W0@SC MW@TN)S5S\:FDR"\FX51L^1A/ 7(I\:#\&7J*B+VV D3WA!6Q-B+S:F'#U RI M: @-3[&]5:.I$E< YXT&M[ 1IGN65^G@W/2J'!3D(F G(#-%B+0QP4^ISK'W M4_/0BU4IX8\'& 06"&=<0'\>TI/;@"NW1QT!"EX_1>+.))[@/"W]*S>_ZWA M;947:V3!)Y3!L54Z=S0.MKLV4VO+3U &_0X%WU%*<)U3Y+?QRJ=H<#6)90>? MA9CY1;D'1W8X5#X_R+5]@XC[S+,\=QDTS-,N6.HZ31/JJIM"P/8:L[@"6WZ[ MUVEZA*VH:8,+3(MCV C7_+I1#<^6D7I8D,LA3G_.G/8*)[=&RX1DRI;@4!4N M!JVV:G0!+ <=EF$S9//+03$\6PT%PX+Q?\_8(2=R#AY^G_K$=M\W *C0Q"3X M)0\L -/0,3&Q"NP]CUS:E3O<\EU [J@+=^/ZJ\F2VYJ6B$R6K(Z1*BG&H$=J M(=7I 98$PAW7J(\>&0#LP":LQ>6(L&<5+9Z.+2+-:4 NKUN&+.*E$ Z+@*7E M-SPK$(4QE>B9D-BH)TC2[("47NA+]BXFD;AW@XNRC"#@4PF47Z8& +#E:CPQ MR(4[\A,2E%J\)7MG*KIA;[!DTEC()XR@1RYP"[JL<. JB+5_(S(")+XEE0 MY )G-<2-B%";U^(86\:D6DI4@&VS% XAL\/7/E%KT MZYP)&JND.XINM\?1#R (E"R$#N+EF1*XH?VQFE6GY1 MNU1AE;<#@*2ZDM>#CQ\#>E>SZ#$Q\JDHL-JFONUZ+I>)/$9B5;_F:0Y)7/DT M35X>"N4+GXW >W<*&5S\!E$;/-#WBNSC9Q<1RN+U]@X](U&BJEFGXUU$V0D M+1*F[U<,S&!5[Q,F?0\IH]<7QHK683P^C2Z2-:N8>6\!Z\T(WV OZ%[:"(O8)=6!]1Z1(X'I[[ M:>3#@EP.NYB0GY9 MZ4W(5I?>1" 76O9H13\*UYB(R[FJ&^T%+QTW@H2;(D)+WDR*'X!%4< 9K(W= M<336X:"[0"S18"T1;DD22'%#J1! 2! 10Z4I[ K?G:HI**$7)9888*H6_GS2 MB7I0D(O@^' :;&_0$A&"'(8(,\1I*5/J;E(U0M:MR5#V?7@D0>RJ1EGXNK@1 M*#6I@&]8$U>U:B2>) YE%P]>N%A^>7= O3OZ9_R+L+*^NH9^%CU\C?T >ZYC M\6?)DB^#R9*YP@A:,]H^(_:BU9L]5AU6[$^H\O[]U?OWO8M=L3KZ^7HRGD_N M1C?]Q?"F-U_0_]T/QXMY;W)+?[J?SH:?A^/YZ+=A[VXRG[_1?T0E$ZHFJEJB)$^^F MD(R*VOY8!GH=)!SY(5H1MKG_[B+/F5F;)SDQ%8W/2M:K4\BJ0**&3:+\"4*/ M:C2B'P]W:%7#FKC 'YO2W)./P&:$E^W4\.BX69/KQ(Q7Q[ _$9??X;@00%@K M"8AQ9%:<]_G%#==IZ4QZ^_0BQ_573)&F_S&=6LTHLY&:/$J*!%' 23/DP#&; M/QO-RG*]LCSYPJ4G;WY6MGTX90G*<0#)'>8QXY*F8$FN#83E4R14A]S(@0^. M!QW)DS4Q:LZ;LJNEQM,0O?O)-P[*:]ZF"@BO'3J=3PK M8SZ69XP)3K4SY0L='=W@%W_D\Q"\R7+_A>[/]$YWB\G#T;(Q[GU6]OQP(GM, M$ .W#8ZQSTJO4MGR5['+2+WS*=J?E6D_GK[9*5 !QZ88/F;K3Z\2KA^Q?/88 M 5:K'2TQ09G7CR7/4,PIM5S?(ENNYU*$V?V>4M7C*(>(H$"FQ-,UU_HGQBA)[XN;QKX@8L M<#_.:$$4-R>E@J'4GCX=!$/:.07T=(JU1A;SY*MNH]0>%8)U[YR2I4T8< (D M0*9@/U+V@*!CU<%X)=+@F'I4!,0*7%O"3DE;"';&.A@I01<\"V]8C99=Y&H! M$[/6$"R/YV!CAC X1GZA.O&:@M9_1L1:H7'$2#994[2_J1&)TZ8A_H)!OL M\_TLM]O*X_75[2$8395RDP4WJ/& (/]]QW%C *:6ZXS\:^O)#2U/R!K-/A!, MAH7LT<0% HL6A%?PVG(Q4C)&V!*"G4V;'4(,(#!AAD(*,G+22Z62#[+&$"Q? MVJR0(0&!&WW;CC:1QQ1FV:U!O8/I]X=@Y-+?S?3Q@L#&+F6L#2ECND:'ILT* M)R6-E3(%G'VYR.P!1\OEN"$$-4!WX1Q##Y,7HR"(D)-W \=B-$8O_"?Y=J;7 M&8*^8, S#8QJC[*7 ,)#RZ?\K4TT]2P;;8X]VR7Z0U .U PJ@52[UMIP\^3A M+4*\T31]J]ZS_%*+3S4:!#]9!:M1A6);6,\E5XJ(&>.+QH+@*3N)[44(MH7I ML?C&QC0.8#!\1<1V ZG+N\Q $#QA%:QR"79MX367V0I8K1H'0E#_Z0N[Y8R. MI947K'9M[O^DS?HO%G$^$7EZ1MG!SNLY>%_;ZE:@"(_Q'&)F7;_%9&&]L@H> MZSBVEGZ1!E@AA]FJD!_P\&^EA<%TJ/,R_32;42D$P;%\%[U/)95;(Q?X-,Z? M-.)Y!> D,]1)>(*3@SUO3BS;:?Z]C@?KL,=Y^7B2#4N)!VP^Q:]^)<"RI,-[ M%*ZQ%L.D7<_+N9,L67H(@6-A;N-88(E36[QOY!7(&:*H!FZ(DE*$L<[!WG1; MQ5PKWI[KG?V\@E3*XG9VFH"3Q3;GBUR>9'@[,06DLM#2&S=@CL.(H#$.T>4- M"FSB/L45< 910%$(>,'1:+.QR':RG+M4FI:N;?EAW[9QQ"HTK*;8]L?WE^\O>Q>]'23T#P9,CW\[G%_/1M/%:#)F(:B#A_EH/)S/ M>_WQ36_^<'_?G_W.0U-'G\:CV]%U?[SH]:^O)P_CQ6C\J3>=W(VN1\,Y&S&% MK?=_$^C^O0M>K6P9^S;RP[A$Q\P-O@ZVD@>9M'JT*7!5B0B,+?8 0 :>,GA5 MV0-("*N&Q"FYE$<)!)>20J5'@"J#DPI[08A_U1# /585X02"7S7>^@6P-;7Y$5PF3K.\ &)JM2&,TVP:-N<'="H2BJ.7>(' 3.)?HEO=C8 MR.7OAA=%:DJ:@]P%)6)X$*,IP0@">^:6Q]P+O%0PO;HH>2-I"R'HKPQC).@T M]0#+O?4G)NFY*4H8DS5JX+0ILI4*W[L1P=X4L=GK;I/E'D32UVX4;0&\=B,7 MFY3N"OCKB,A;O. ,''G&EZA5TR_>% I%%F G@KX.6DY\E,XC)Z6@4=./W.A3 M4@ \A&-Q8'GL];OY&J'PCLW#*"B_$LB;-[ Y%[E#I%<3_/4HV+9WWE"J;:".EYL'O M36N3 M9G-Z%]2)N[<;ZJ";K_>]-*I8J@^Y!". Z[7-=:^<\H M"662L$C2MCT)K!($P#%EM*&W!L*@FRR+V2)M#3]QM1 %<*S9)65<6\%:PI'# M1NU)*CV$'!S]'_Q'U_.0LW.L!SK!6JBPG6UJ^!FA MYZ4'N(5_R[B"^).!!\\Z/@1H&7EW[E(6:*G7M3V9HGKX@.-@>GN9I"\*SN.K MH?1Y+GG[%J5X*K RZ$9>F)O5_BK!TK;(O8<-FY1)J8,A?I/U#@SA+U P[() M(KH%S_$R?+$(DNYF)AU;D QI@@ZXA2).Z>D3PJR5#.7!=M=D:FW95SQ_F__S M&U6RLUQOF3VDVBE:E%59+>)MSQY^89[&6TQN"1>]OR/RC(*"'![=SFU*Y]'%"<+Y MH895&>"BUQ5(J(N9D.IS$U((3'ZGOB;(<4-F8E;'NRN[0 AS,1'0O;AW)680 MV-6Y:-M0CE@M?TD05JD=,NL+W^=KB!"X6Y(:[FNJQ*^8,9*5W-@]>5Z*J=*Q MVN,W+HE@6YG.XR#3Z\%I/#\8JCWNZ'+XM8SC-\B)^-O?Y;B<[]X>?[8^3FVU M3PR#T-VPTF6IG8[B-5E.":8WNW#+=JB_(O>)$_A M92]%H&?Y3B]#H3-?5 YI2FA6G3C,BTMA_1&MGFTR7&@A!&&CEP):6)=$JR<0 MFX6!9&IQ$5R]DL31D@&HKE,B:PW!2F$@D(<%O(0X06!/ZO]B)W'R\08](P\_ MQ:_(!@4)50;](=R 2[+0 $L(3+V-"*5OQ.&]=5_9)S4751T@W&E+LDV%5AU^ M]COK$1/6FFFD"Q2$ZDU/LP^$&Z8A S0QZW(03RZQU.4@=CF(70YBEX/8.;@Z M!U>9NW1A-+-63PBJO1Y'M=!IS$IZE98*2TL07YJ9,Z\D]9%92-9L^-MP_##< M*W!\V9D::S!X="6.18A .*RZ$L=%*$'@TB>$5\1Z6KNV69%CC7X0S(B&98XU ML(+ M*[0L18V,%G5%3IN1Z'CME72K;#$,;!*NME>L-N>+4]B4E2T;4M=704* MC7$@OF7G 9*6UU6T!6".+)2EC MR-"#L3F/L/ZC]3'LMFC9<%@K07NYF'G(( MQ.ZJQW;58[OJL89&T*YZ+-SJL<;LY-#1?=G6YI^R!P0;MAG#E.A X%#G&VJR M/F5R69KCB-A(69_RL"6$I6!0G_(0?' I"UU]RK;4IY06O!JC4%WX3:LGA% N M;;X5HP./??D"+S$"+#AS5^^1I0?+&*C7MSU909H(P6.B0/3N7.O1]2B4.W7' M8!T*>[>G2J8V2NUB97)L)^^._[T+9S#AJ&"0]I39-,4,''\S&!EIXCI(2TPV M[ XS>?3<%3_U)6S5[ N_4J8A0N"8*))"(>QS^F^P=%D9R"E!SRZ.@KCPE<'" M-1VX/64RJ\ 6GFR(=0BJ!)II4;Q#B\IHJM!H"Y/Z&U9E\F_5'JS5LT45-K7P M@1/=>64:W2DNK2>+[KSJHCLK\31/"685%"9DCLBS:\LRA\3-VA"_*8>^*>=^ M @TO$!'#(RY35] 6@'-?)3P'M!=A4$>:8IK">D-:4V=N]YU[$G@7O/N^\\6WZ(F*9&;T*V-?)M M^=:C:-ST'J/_)K4""0A7"BU;1O; A[NA32;+^&)K\5I3=%F3\(8N;45,4M63 MM"&8LB[J3F)MYDFL[4VYEZ.U-O9^KM3+V=J;CNK76>U MZZQVG=6NL]IU5KO.:M=9[3JKG8;5CGYKK>A-+X8YRR@UM=V)WQ+:M]WM3\4> M 4HFZRQXE4.:"MV"6'ZP9*G"GS!V5,8]HYYML/<9(03A."T 5%E/1;,OD-(J M!M)IP$E(!5=2$ ER)L^(4,C%5R2-]A#*J1B)YA[+Y'@!8U,_G&)*HY%OPBMA M)PAZ3!4,$R('@6O=O:.)XBI)^8I,1119+8_;0%@,&@55C@%O3#/_,&$>[W/ . MO_=H__&\?\U>$YUWJGX-]WNQ! RV^5^4PR+&@+1 M[,V%4<:Q6F,#!#OL+2;_9.I.[G5#YD1GM9<7R%[[V,.K[1Q[$<='$3-0V=@0 M%'^Y3.X""2I#N!:G*YW;8?-?+O!!R(-Y/,@)@T'0@S28>0*&=7#O&F\V]&!P M+4^L ,E9I=L30CTY#;[HH@/A'.NN9VUP"\U#;'\=!4&$G)N(Q$X,%SOS-5WQ MP1B]\)_DG-/K#&'7T^6K'D;@2J#$$,:03PG=F2G@_#L9Z^3M(>R%FMR2(P&. M05.";82NIIF>('CK+(LJ'3/5?9I3Q7- D0:B?+PS/S,WR4^!D^T@^#A_EH/)S/>]>3^\%HW&?^@KV,O\YU M4#6D*6/[]E^1&\1K0_&0DJQUFYP"4B0@;'\BX-A'@M31/QK]@/@'"B2NB%,' M2-5BUP*4DXG_DHB9E>3)F0[3'<6*&%SB+P]3:,A2#!4[THA0?YO4) M)\MK*U@GO\@>>S ;HCU.%C.\JN.LY-03"-IG[#F/EOVUO\'1T;-(NIW@.U%T M,0&WN 0PIP(S0S9RG]FQ$'PBF#6)C5^1Y0FY6P>.P@6^1B2DI!ENGCR\1>*W.,N/!=_Q?\&04A/^)%?#3I#=_)8HQ2$TMO M]^+=R*%0N$N7[?+QZ];I[D^OLZE3R$4!_2W:(.<&Q1KVPGK-_9ABR"-D=LAI M+MIS 0/_G;.F*01.KTO7D8MBW12^F:6($CHLR%3-V$R0V,QX)9*B+BP9H MT5-J)FB!$=>0GY#SI M@FT\2@-[7.E'0HV1:P%?#2[;I48"LC^6E&X#[L.]>(]\GN@X55W (9R:@A&I3.'6RCIT0:W?&G,=R?S.7:O MO=D@F,#.OVWMD0"<:,E-@FD$P%+FE=;KVI[X:CU\P'&P6EE5:O%GV3 *(( ? MX-T(6<")91H"5Q#SUX;8[F.8H:J=F2(CH7[%8[=!E-K MRWOX3IJ,D)1PJ_O2H0' =QCIK4$5<)MYI=?XB!!.[.R'-/9=_(I(0S"T*-K\ MS)1IU29XC,_DB:>A^ZL[9 4H]T/=VZ$1*"T(CF^60-_T'BG.!CK#QBB;^+SB M",;D+"/'-RU\YY6X!L7LI%(8M='@6Y&M++-6A/$8&51SJ&:V\\I6$^;G8AI\ M<[EIDW"-B&F"FOAEZC,GJ''(NS2U,SHTNC2UMD7/=6EJ79I:EZ;6LC2U+OVB M2[\X[T;9I5^<=R?[]M(ONEC>+I:WB^4%'\M;DW'BARFA2A5[A#J&B*<:E'S. MY@?)>Q5^UH@8(P MFT^NP,I:0E!>#60K4U]E^$!8*YWJV@;5E;U_0*?G+R_R',<5H9H4K]4M89>R M1WN41B4:X%R=-^B)(-M-'XGI;S )W;_YGU+3HZ('_,0J+31J#_CZ0D>G>^\+ ME1#N99LL[["_XJ92?I?XC#SG%I.'X%#3-.X-/P7)&"58UR;1=Z8W*'$!4>4- M*IV6^URSB;OK5'>=ZJY3W76JV>M492KDYBD*$5'?OPI;M_ .5H@3!/;,\3)\ ML0C+YT@_Y@J7\-K@2H89](>@_9=DH0&6$)AZ&Q%*WXC#>^N^LD]J+JHZ0+@- ME&2;"BT(?.+I 6OL.:/-$\'/&D56E3T@W!)*!)J;M T-]/7-G-IFO]F$LE.PQ6+QD8]:,D,.I' M^N'39'+S971WQ\WZH_&B/_XT&MP->_WY?+B8=P%2-145F @%[2#8Y+5$;?]N M=X1'';:-O%(S6?*LV5V!KH,T*JGEH\0@$&X'VCPIBR2$==/=P-MP X=9SO&D M6W4=9?TJ._OT>;)<@G#ZQC<6"H])I6R M_5:W-P1'F^:6JXL22/O4X=^F9BIQ=2 M,]5NZK1&4&>N.N/!VM7WZ>K[=/5] M0-?W:?,;YO75]0'_AOFW4)9)8BOX7LHRM?U)\_H>HV_!D^93>O071;0>M(%P M\Z^ .0=806#&&#.S_!,*47]%D$:LL:H#A'M]!6Q2H5@#SP(2YOA%_SKD%?WJ MCQG%1)20=O!;&PK-'8#<*$6%HG[T:\,ZMI#_>Y1L6CKO*54VT49*S8/?F]1T M):Q/R7D :6,$M5[5!-W_O4G=LXB@^Y!"./-*ON!N]H8]".M+D;-*$4QDB%P+ M^&I@A2DU$A!+3$GI-N ^7(L,3\NP41#,4( H 5E9OEQ*IE*QU>P+P4IS@J#O MLUD+8PB,[>)JVA!7DT9H*>Y@7Q S)B&G_XR(M4*%[S*?-B0$FYQN1L0I>()S M0RO04&4Y%7>#8*8[.08$:J:3 N1*U/%.IJ!,$ M ^#)/-3,5H)UN=&/J#0=ID6A/L:XU5X,4.?P4S6$D"ZO4>*O+0?3ZOS]/[FZ&LSDO MP;CXO4O0K-=S3V>8+/N4P/Z* Z.PL$K:MBF*38("A+TP!Q2+%1A34';?+.BG MP.*E3M3N8.-1@%A)E7*X=S$W1; .-6(>LE>&5JX]M4CHTQUQ[3[=8O)/[+*" MM)G%CA6B8RF,N]"=.?8B.1,K'AN":;2D5&>:3'74@+#&YVN+H!EZBHB]IF<3 MKUED;11;KJI#&V(+=/" RQBE3TK=!77P\DRVQP8V+Q>NXQGRB[M\7JI\0#'*;%.U(_"-87S;^YBC?Q05F="NW=[ M/%S:*+6$E?%A//)O,;&1&1\/N\+WE)GA XZ#"X*L(");#GY\4*=!2S+[O:I' M>SQE2C1@LRE[MCH.&6/[?($:J=_]K S\J3(&*G&"S4W^>EX*/P/\'M&-7VOU M2;N>UVCUOC(V2A%JS&-]^7ZX>?+P%J$!\NE@(2N#7++ \.5[B=/Z\CW]-+R? MWDU^'PY[@^%X>#M:]*9W_7%76;CF6P/E)@NG5ST*N->D36[J?<@A;'PI1.H7 M_0X: 7&"B$1%1.TZ'1WI7L0WRVFJ:M*)Y>;UPBX0'!QBN*%K M:SOTT#.*C1XC>J?VV3ZL)KA>/PBVU@*JZR%2GS_OO9Z *QI#,)$6$5D.?2TA M)_RB,R7HV<51X&UCH^P#U58(A^3]I9K89OTA6#P+Z&^&4"W!Q#=S-G9GO%A3CEF^,_&1V?ZLUQ."_;!PA]9#I0X&3*(PHC4IYG$_U*^EU *34> 8-;3TE;T48)P'>J_6,1A M,:N*Z^=!FS:%ZQV #H'B_+@?4%%PV$O=%-'X29=<>.E@NVN3.-8X'CMD?$?K M&EO/5$ NPT+)/?+Y5XX]!!':VUDF'!9E++VB/82K=YTK(B\0"C) X.H,!2%Q M[1 Y', 'RHU@-G]0'N?#UR>7Y%XE4EU:JAD?A/JC'Y]<#=+@0DT*%4"9_I=4 M^,S4]N@QL(G+D9E1HI:]]):>#H(OQT"<:J$!3.DJLW(RBQQ+!]@++:_&4MF0JM$@^"0K2(]4H5C[/B"= M_* ,ZL%!E41I)%\*EW]5(T-P=6JL^JK0!;?8,\00>:8@BW>W,?:?4<"P9!M9 ML,"AY>5_9Z'C8QS^CL(9LO'*9UE41>Z9ZN=K3RY%C43X?@0LWF1O,4F^8NUD MV6_G!J)%"2'G)DWM9UZJ9PWGTVF2:/9LN1ZS1%)@;J,P(BC-V16=;&;]S\OI M4E;9$EB!VT5.UKH3G+,DWZH-:O)YSBLAIUMFJ\4>[E4WAI6]VD&>J>*.;)89 MAP3&UOJF.:]HE+*RUH?\M[/'\']^H^=C=O639N%7.L5YQ>=T$VIEB(,3G9QE M]]IZ.<5PA.*IQ2 CMPG*[JB,PI7Y]H7Z4#II;ISBLWIQ5L MJ8T(WXYXQ2&> 45MB5RVAH*11NA!U3.=5ZA.,]K6@?\W)T\LZR:T?/:>0;R8 M:I(FP3SGE:63BMO4@#TX2=*R$_4]#@+]-%D>6H)X?;3DW-^5V3K%8%=FMO-* M5?U6XC(T "=;'#7N,E%M+TF#\P:ZG61;S8,-D^@G;%K#5T1L-]@=?]PJ//)# MXOJ!:_/:0C6=%GI3GU=03@N8/0M!8(I@F<"J!.W?N$\BQ?G6<@G'5&E]J66Z M\XI:,]&WA40 )UXWC!D,3[8.'OG#(CPE.8[[[/M^Q+Q8NQ\#BE-ZZ*KC(BL9 M^;Q"0;/.-E)KKJ8.>5RI.,NJ>BBJP*H.Y5-F M[6GQQA@$T2;^SK3XX%6)XH,SJ$K:H+F$K M"[:5JT5XYH)MWWBMGU,J$YZIUL^W7QZR9.7"^LM#=JG-76ISL1T@N_+G5-+A MZQ-BU4@6B&PJM[YH3 AA$ZW9_*)!!7 7[-)F316ROV&/#N-1/.M(C#:9&<*I M4;-]V80_KSP4[7/2(QO1_ 2BR,/B\NYC?S'&XIX1J":W+O&4,!/'6^,-,VE M&)\F2Q6/#3^9O&*$@?E6"L.43)TK'THX5W9 ]/"RMP.C%\/1XX!TWI7*(1WY M5%;03OP3)BB<+;?*]*!&!H#%( %1Z9@KZ ''4:$B=!J<@%?9D^]-D.;<\ M)'[P0=$.@J='2]3V\X6.\(# !I:N1 FP[OM.KK@HNR'X 2JJ8%W<$X(MTYA5 M6IA!8-X<>730U2>JFQ#+H^#VG0VE>4MM?WFGX7:46 MO+S3Z<%MT(-+>X+8^R?A=N13.8RX8$_"-7L]U_(3'U&F$M63L6\^?WNT\3,2 MY=OQ'1?BON^\.KL\'DX/P1[3M#@>TN0[DL;]!-:S2^/A]-]!))&#[X3\< )-IW)/"Y"IWPI-T,N/8\;0.%8LWYRR_C6)N%]8J" ML47B>!DS5_CE^TNQ*YQ]/1I?3^Z'O47_7T/N $^GZ!SLJ!?9*AW)DK80 M',A%XK57^$R,!@1N\#7>]QT6X>G],R)NX+@V@T@=T5K4"X(+SX1#A0A!X-4Q M0@4UR%0=&CAFBERM!L<,K/ID8O@,CQN 84_% E?,)4A'#R\#0*>?L:)(45HH M?32;*S>[PEXPCR-U7%(A4A#X=6UY[A(3W[5NZ97-7KL!PW" Z?5/G=!4W _F M :7FF09:$+BVJX7J>?B%O/7'\UH=LYWP"" :)RAG+VUO1B MKE322XX(0%RB5@>WPY: M5H"+57#Q;==S8W4@O$4.2U9F](DH)-N]QA)AJ&3D]L1P5H(N./%(9-I?,7&_ MM@C94LEF3D79N:[JT)[@1Q46X'B4:8)Y0)4OJ2A[M">R3XD&.#8=ZOC!\75+ M\]HH[-F>(#4M=."S[\ZU'EF-7A<%8Z1XLTC=JSVA5H6H@&/9@T^R2G3,_!=7 M60BR,W>**&P,_+[OI'5O^[9-[V6R7(&31FQ/J-%):-9>%[,,=$FU#V;#)P&_ MK!]9B2H9]KS&I%)/J%:';%L6O-EB/C<33S))27%H"V\6:RO\@B//&6V>+#O, M;E'JNV79P<[+V9-,3651;&[[OFB/"\@;X?NC>N%['39([LB'#1- NOOY(]S]^>?^;,@JA]-9+YQDVMYNWB[FOG)(&:F=(P8/7VTOHKR,?1F;IRA,BLD/ M+>*[_BJ3C\%6/("J1%V=,[8I^K]60D#0[L7P%<9V%G<#$AISAK53+"_0@D3W MWM2(<\F4P8:*]A""<'1E>,_K)T<) H?:7I)0Q$JW>$5C0]@A-4ND5X-P^4M,-ASH)&F#0LR>]+965!.[M_[$).UG>+_](+O?LD>SKA_F MB\D]O=OVQS>]3\/)IUE_^GETW1N-;R>S^_YB-!G35@E$O1U(O<=MCP/5RZ#J M;K^50WJ-^:ON<80>>^UTL!T@WUYO+/)5<84M[M:F>V@Q-A!.XF,H4QB5E\GB M;D ND[JBJ.;<(7(0.,=?E$IVN#$*U9G1XK80;H*Z KBG88G1@<"5OFVS@YI" M9R/WF>T-2L;(FT/0;,KP1HX1!/8(MH."IS^4/=J4KJY$!"1O&'AFIU"^!]P# M2/5DAQ(E$%Q*].8C0-6YST6]0!Y%QP*XQZHBG&I@5T#"'*OH7X=LHE_]L7_K M$NQMLD9M2%V6P=X4L9DI;K+<@TBX9Q6T;7BW4HM-2G<%_+7D'J<&!T6Z\6&3 M)O<1+7'8)1@?@EXG"0?%)!Q T#S+D7!P#A+>%)/P!H+GH!P);\Y!PF$Q"8>- MD/!C%20\#U%P6"[^[E/D&7J(/I0D8,H8&ZA'2@]!DOG%NJ,;[4Z@SKC6V=\,^72 M;H\R,[]I]&NA 4X#*PA,^Y:\X55Z'SIO.(3]L/.&@]X!07G#M0SBV5ZPVYXM M3^*$4+1MBR]"@4)C'(AOZ7F I"X)15L +HE"6C.BX$R'Z[PL_O[/C! MA)@1R1^<#YP#R1=_/,P/R)W_H6DW1:&(,,+F 6Z*BM=C"179#TU[*HRHR !N MBHK_G$JHR'YHVEEA1$4&<%-47'R14)']T+2_PHB*#. ZO!0L\6>R7*S1%TP\ M<35\1;NF_15:)%3 #T(/[IP6+7!:)-IZ6M.66';XQ0W7J=U\Y+.L$-=?L;H& M]#]6XD#"QE(CMW?-NUO,.7Z,W4UH^R%]R9-GL[&O?'UZ/^ M'554YXO9P_UPO&!/N?-Y.DVT*45L*D;3H@??)3W:%,2F M1 0P;S3>?)?V 7(,:4B=!J<@'4-<3Z:W!IR^?Q;#G+S\H=SJ]+I".)2T!'+O M-3@MU"#PK[,\M,'RL#MY/U&)F_B[OPN5\N,.$%0)W0?$Y%B 32.& DFRYQIZ3/R9*^X:?1K,G*J+,>DR S^MU:+F%/8:#8 M*'F/+-;>F?@S5H*4T/-U8 6N867.C[+*G"JS((.DQT'YC]2!G4+3PW[/ZF40 M]3A(G06Q^NMT*@R#+>? M6<%JBH6IB&V0O[JX0N*S7P7"CAZEVKWI:H' M*!W,1'*%;!1A"(%IG46_#1;]:RM84P6,_6_X5^0^6]Z>(.[,4A+F&?2'H.]J MIMGH(P7.M-Q_MER/">4M)JR61?Y!W,=P]Y>$G_K=(2BRFH]%:>-4^V/63*0. MQ&J^QB1DSVJ/_&<4A!N]]7?R:/#]!">C6,I[\,N[F,R)$?P__S]02P,$% M @ =H)A5.:W\:UVB0 A]\( !4 !P9&9S+3(P,C$Q,C,Q7VQA8BYX;6SL MO?USXSB2*/C[1=S_@)O=]Z8J0NZNZNZ9G9[=?2]D6Z[6K__^NX_??/@=H9[M.\Q;_?OO=N&%%=J,_>Y__Z__^__ZM__GXN(_+Q]NB>/; MNPWU(F('U(JH0UY9M"9/_G9K>>0S#0+FNN0R8,Z*$O+C-W_\YD\??OCNF^__ M^*>/'\C%10SIT@KY3-\C N1WWWQ,/[F*H?K>G\GWWW[\]KL/WWU'?OSSQX_\ M?^3^.D'!FO?#/;R'[]]^MHVC[YV^_?7U]_>;U M^V_\8,7G?_CX[7]^OGVTUW1C73 OC"S/IK\C?/R?0_''6]^V(B&IS/2WY\!- M 'S_;8I+.0)^NTB&7<"?+CY^=_']QV_>0N=W,8GPL0:29/C;R?B8IX\__OCC MM^+3="@'Y$3IV"S'N9+A'W.P MXDF"'2T9?=L;/T_4"5 .P*9!GGPKL!-D_,<*:<0C MOK5][N&VT84;?S]B^C+P-\6D2G1^P8?_[3X;?+\)+SE& AKZN\"FM;[8+/TJ M6:0V9>Q*(]F7M+/]B(5>'?)!E=ZU="10;S MD_5\L/4,^R5#$6M=%8.) JK&(=7%2G(;JV4&,OFK@/U?P^DD=]AT'M%-J">* M[/!QZ>8)HR7ZF8X=CXZ>DMRNG@)\(A#TK:Q/'&J)#.*/1Z",64:.E0\^0ZYL M.1(;*Q= ZUF1IIZWL]P'NO6#HH!/,6P$BE7$V+&"9<<@5[1"4ALKG(1*)-B> M->^>!LQW9IYSS;=:)9P?CQN![A6R=JQ\N4'(M:^8UL;J)\'R[8A# '#?:VA@ M>2&#E;S2_14,'8$:JA@\66>/QB%71B6YS=??%'*_+E'NQV^82^]VFV<:%#!? M, 2Q!JH82C3O^'.D&J=&=M2E:W+/]@'M4L7%^C/AB?^7OO"C87_F.6A&K M9J'72RVV\VI:.@6UUNI1WE")<%: ML82KQZ/7Y@I6\WJL&(Q:@ZMH;JB['#S)PQ\B")@Z#I=<&/\#1Y@?E0(I'HM> M44M8S"MIP4#4"EI&;T/EC&%.DA^(.-Q>>/UZTQCY%?]Q$3SYKUZ5*'(CQZ*8 MI^P5JN5AV!B4LH#:ME020,,B#\"'4$<192R"^\!_89ZMCE>5P\>BF I&"[7S M:.P85%1%#R/+_?_8MG1KI1@\%D4M9+)037,CQZ"DQ02W MI:(2.N'@^]PJ@0.?!M12J.31QXB5L(B1-*DL\QE212LDT52UQ*H,T/K4)$AC M=N_7OJ<^*B\8@EBC5 PE6G7\.5+-4I)IJET"(!$0^]TE/U)[%W#5_OC=\Q.+ M"G,3"X8@UC 50XF&'7^.5,.49)IJF(!"_"7Y^-V[Y_=QO MGOTB=H\_1ZQ@A:PDVI7[$*EJ%=-HK%<2&I'@>O9:LS=[S-?9GW]UYD16(_(Z@*-5?-0Z] MABI8RVOFT2#4&JFBM:$FIF")A-NK_EWM@H!ZD4PT@^@CLJ*=6@V5P]%K8SFC M>:4L'HM:-RM(;JBB,722@B<2?L_9.Q&%5XCLA5Y;D173I)2(T^B#:ZLB*[\8*\4Q/$H](I9R-9I-FTZ!+4: M%E/:0DYM0!*HO>KBULERBAOJ9@*< M2.@D!M^3DL[M93#=.8S#FD81#2.1[GCC6JL":90.1JRBU4PF&JH>B51!-0@V MU<_YU M%'"ZH9X#I0$4.Y?CSQ$K7"$KB:+E/D2J8,4TFBI6"JW/;4=\('[#0MMR?Z56 MH*Y^4S(4L9)5,9BF2BO&(56]2G*-4ZCCVST)F0#HH:KA2!)D19X;_K>RVH=% M8Q%K926+QP5Q3@8BUAN7Q(DU,Z[4)( /HIA@&GIJF1TY&J4\8:]8)=-A MHU#(4VK;4D?A*/M4QOB\4I%5F_\4L=(5L)&&@(>/D"I7$87&X5]\_MQCGFR, M\H8%F[FC9B_]'+\:Y5DY4B3Y(6Y5.J*QJ3(!.#*_[E>?DKX>:BXS(_#KU#$[ M1UJ5?(Q;KTZH;*I9"<#&JK6TPF>!:!=>K"QK*_3K6^I&8?(7H687'S[&75W^ M*?[S?XNW[; &+Y8WS+,\F_&(TY?5$A4=(VI.1:J<)@( K:TS#Z$Z&Y%OO ]> MW#TN;N?7TZ?9-;F,0;5;*<7 M10JNM084+:C>K:(51>G L:C@"7.%:GB+N/&$!K$MJ.-MBWTFS'5R&H8T"N,C MRXHE7S46N6:6LIA5SL*!B/6SG-ZFQ]>6@/[G 77SR@K74\^!?V9_W[$7R^5T MA=/HR@J"/?-6/UON3K6"Z\Y%KKNU1)#59:V)B'6['OW&NL[!B^9I-OQ #XB. MM;X5?K=)PX7;\3#>9WBT]H/HB0:;N?="PPA6266 5#P4N3&7,9@+D@K&(3;5 M4G*- R4 >A%QJ(0=P X9*-DV5*,.'ZA-N;'PK<0=C8H?36I.0:ZM.@SGHJ>2 M\8BU5XMLXZ.^&#@)4N@3XM$("A19KNN_0D-GLO0#XOB[YVBY3K4N1+VZ-CF7L1I9\^N].4ACT1F;[:[@Y>S%4Y//=LU7=(@H YT8=W0)^LM%8!"5*43D'NQ:F:SODL]&K''TB"ZZ2F> M&L4P@4:'+">@262](=EC92X+[KC&EYZ>J\8B-]-2%G,'!44#$1MG.;W&!P/B M6L?SO0LT!]&2Q](C>/QJF&?B]!8'L:(=$=C.O*J'-JF@K)Z,Q#KK?:K&=5 MN'(28FW6I[V!8@<[OO/C>TI(H9(%C>&*/) HR3/UZ)(-G98,-&IK>MEXY!I> MR>J1C%BCJVENJLFG*8"9T )-2D0B@'VY*E=.0J[/>DRKLR*.9R#6;$W" MV\J+R"@UN4A57?3:.BVWT=<%0V\R$/ G),4P::UG4X.GG+XGMD2_L&A]M0LC M?T,#33/7G(K.4V,>8L.O17[C(_J OE!OIV/T.JJ_=9:AT.>/W\7: M#'\I9^F2N1S"*IQ[LS>;AN%B^2!I>J"VO_+8/^AQE;"V8"+5_U9%!H;1"L"! M+<:)*Q\6U?AJES]3DTJ1$2N* O:\BV!G3R*?O&/OR7-, 3RJHH(&R#2R_3 * MR'C)8TS(/+*!R165G_+]&A5;*#OF+GFM!8O6AD9K'RQXRP5*Y=\ B,.6 MW+@I9#8]T^B5TL/TG>6Z>W@=ZC,;8MN-/(5XEU#W/MZK"=G &[)8. 18=";B MX1A]LX"L"1%D ?U,7LHXP"L-([81.[U(9OF+$584)U7)++* BX3+1)^J J&E M2(%B+I7=9B=WF =IQO(3VU&E^*(U)\X*J'CT8TO"N=PX\Y8K6'_E"L7Q^QXE M>RBWR:F'G_TT>+#W-HCC=V0Y=,T0QQ6F^&V.OC$;Y<%["@V-H@MKXC* M%K-P2+V-&UR M9UY8_4##[T4-FV@_9*[T?1!?2@O"RBI5%X]$;BAEB/RZAM4(4O M3DX(9=_M?_[PS8UB]9^ !=)$[[52O[* MPC!-X&NQ97>SD#'N6%Y:A_UT&'+55C%V'!%FQR!6:B6I34(@WRM3YW_Y4*S/ M_WJDS#_\R^2['_XD=/J'/TY^^'!4DS4=GE%X\CV?\R\_B#G?_W'RIS^@J(*+ M6\8_?/RAMHQ_^/A16\9]7JXYCNA19;GW%G/FWI6U97P7K;JR48Y&[H(JV,S= MIA4/1>R0JB@VSG%/X1*H>WO!O M;@AY089\":O% =U^Y3A8.1*ZF:N:R&GHZ M"K%REA#;]/#R%'2[B]6/DCN/KL1SJ'Z93$#*)0M2Y""Q;4(^PC+UO5A*?IS\ MX0_)@H5F07F@D<4\ZLRL JFA=-#[MTU73*;J4Y#M"8BMU]]YK/V7#T+L7W7 M(+[!6ZLT?=.1,(=-1TJH$6B (9DJ$!9<<>!(NIEZCK;3U)B& MW(7J,J[(V2F<@]B]:I/>8G9/(:+!4WZZ8?\D#TCLEI$9^S1IMW;C!]=QL[73 MWF\5I4=JPD#N!HQ$DMM U & V$&8\=&XVE2V*6!%-T T>0#W5K (1 ]X1YR[ MW=- I$AH74B73$9N*O6$H$X@4,U$;!PU&6@MS2"]*B3OF,MZ-GT(QS:GLGIJAFUZ\U$KO4UV%EQ1>1=-GY,&MUFS%VHUO@"[EQ6JI2"0EK%(Y%K<@E[ MRFQI.0RQWI91VTXJ<:JP.)149L.)?<&FNG.3>C1R9:U@,]_>MW H8J6MHMC8 MSR[N'A>W\^OIT^R:/#[Q?S[/[IX>R>*&7"T^WS_,?IK=/-C>SH< M!E%&?_EOQ[K+__3?]X'O[.R(;VEI\,)L.GUCQ]ZU9!A2;:UB#-14-0:A?E:2 M:G[H)H"*O)(8+ODK0/ZO8;10)-)(.L)K?V.QXQK856/QZZ.:Q2.E/!V(6S-+ MZ&U5/25L(P55U.V?>I:[CY@=?J90G.*(1<40I)I6QE!:)/_H<^PU[U7DFJK5 MW%OZP48V[=K2 -[]B*+R/E>T&%//ED).!8>S:V+OE.N1.@"I^3$(PZA*4DTU,@$X9,&KF(8;_L45=>C@ MFVYW!Z>-T,R;_\]1/S8U@S0.%3813X&6UP&#WQ",N&EJ*\-4"AJ08]F^)\$J M.@&1!.^$I)A)@IIPW(->=85BLSE[@]Z[E8M:R7#DGJ&*T?SU5O%8Q#9>2;+Y MM588%V%-0 ^Y_ $U:;.I$E%DQXQ ,4]8.M;&= !R%3RELYG>B8Y?@[?Y>J A MY=_HFMO7-:?&];>P%XSM0;D$E<]!KI5:+.=#II()B+56CV[SH$!"%P[4.< ? MLNX&%7WU/E&/!I;+V9XZ&^8Q6"Z@3E2Y5FM/1J[>]820J]FA-1.QPM=DP+A2 MM$0S(2N)2/;6CI)'=ZQHZ]EJN#?6>1(-9@+,-_!U%] +E M843T#NXVH P\;A#L89IX7!22C;7G3CR"7N#+'30H!P0OW-V"87%PT.*;N,!M M;&9D#3=;@(F[9TB^3(X'N1/F?T@_=5BX]4,>17%/OJ$6)UU6](O6ED?XW^G[ MGCUVCU^D0$4 %W?41& #[PWXB$ HG?:$ $["D1*.=0 7WK=(A Y#=W3YLHVK M=K&V#KC7O/.]M &IS ;*M>"=#^O<3B.\'S\&'BK3)-1KS=EP0BW3[<$GYTD0SK;IG M;WQG[P=\ ;."_3RB&]$5%:["?'$8D'"M$'>W&)'[CQ[$??J>H!-TB'U8'UPW M]8(=TCA,:4?,0@>J>+0.Z).CE @(&-SOA2V2!!/7H4_D[)YJFO M.AF*WL^H*38/&Q(5/80+SQ)V1UU@]8R[?4YEN59VPF\G7/(=^K-?GE'4WSRNH?G_> ECD7K0MP64=;U.8B'UU M:ZR9VMJBH-U/'$N] QM\/V0.ITHZ-WP3QE:>K&!N[Y\"RPNY,/@&<>HYXC=7 M;!>GSM]V800GVXDL[^%6DW]0(-*:WU!7-(S4OCO]2G2<02<$C-!S="L'4S<3 M4T7LF"P2'2@A5DI**(ZRX8(J&O2M@TJX7[R 6B[< O_DNW#[^LEB'OCJA?=( M.6^R*TG (%GF6EP3WXL;XHIN?AVB&ZD[:4O0.IZC*:X1.HG66#;.V5_S>1!I MD%U*BHCY*:1:R$Z$D!SW8C$7'-'%T@\N('N!./0Y(F%*)'*'D8WCVHL]]*&. MU/QKBJWN9N&\5ORZG#4]"6I(QS#G+4,+3YY2%S57S>VVABUE>BRZ4D)_$LK9+9"**JQR*VS ME,6L718.1&R1Y?2:JJ> HMFQH*\[@>$Y'= DKYF[BY15[-6C1V:61VR6&68\ M=$2F>4RQJ]>MIK6A8'< MG(U$DC7R6@ 0F[X9'TTWTK6P#I-RT:]@Y.+^&N.\L"12O!T2%-*)7:!N0Y#Z M4,;I5JK$HN%85"#&YUHJ.>G(N:CPHG(OG0DG"4X:NIA^SC-&*IP^"]0D+2/X MB@2]2=:^ZW"5F_U]QZ)]12J6[ESDOK:6"'+5:70F(O:K]>COH(7(X]/BZC]^ M6MQ>SQX>R>PO7^9/OV(P!2D .*_T/*0*J,UJ6E.F;##V*C):M!L7K@.P4%A%5-P*=\_R'2K4\A)UO>+K M?M$V3Z0H0?4LZ%X:]%R"I5,I2.!$"B,#'D,#AJGC,% -R[VWF#/WKJPMX[NN M0IO6G8/4KFNQG%U@2B<@7FCTZ#:N?Y9")P#^@N]W8P08]#K7YK-4FXM'(M?A M$O:4K5G1ZVL9M<9994EK5NE]$6CF X6V0]1)KA=+E5,Y&+E^EC.9KW5=-!*Q MEE80;%[=6H(E"5P,NCJU>?2X$\GFJO30\DBAQGSD&EU;%+D(0GSG?E"63YUYI:7UVF?R MTN(3[?(6]BWR]QA9082/PUXO)WAT.H>3#R?[FDSR?4=?Q4?J6PK-R=B]3RTA MY.\M=&9B]E/U&&CLO+30#9/QT),HY'Y0XB$2$9&8)D3BFA".38[HWA%JY*/V M)!@ ZX1SF-M>7(ISF?3=Z0L,^"?/WSSD6R8Z\(K]8:N5''IH&!;E(6^#]@+ M#TCO7\OF/0E)\7OOXD[57(O$N<)Q2.YN5AD*\DEVX3>GF\^>A6EVNG&M>ACC"1% M.4#M^5XE8NQML0:KL\W6]?>4BD'W_)M9S)60QF=KN@R9&MS/'#)L5+D-!2F2V.9V'HO0;$H%!9!/ M>^,'3];;+]P#K&4!4OZ'I$H0=2#YAGIAT0%Y0U#83:N!@$Z36.K!P6Q63=@Q M-:ID0W#1YTD UU\-V+(-1. M$('CZXKI8P\H\!P^?BP/$[$'O ^5#7H6P*-$HDNX&='-/Q(J&C2O%F1 M0ZXEDL/)='(] SXMU,DQ;QD^4NON3)1ICGJ;P+'GL'?"J_&3VXV_\T2^L4-M M6.I%YS'K4.)CR\D2YQQQB8]WT_OYU7LXTMBYXF8%5(0X/!:P(V[-(9SANCQ@ M<\F2\DT1L<+0MYGH6B;.1R"M&:8E5S .#1 DP^/Z3@[$D">?'-5;(?-#O95< M2F9ZMRRH0I%1CTJLJ7R$EF(H2+E87EGA^L;U7T/]DJQ%4Y"N&W485A1@/1F/ M./[2(KN#?R,WMXI?' 97ZCD; ]'W@OS"'.I?[+SR\FWN++0TL6">F M=L1>9//,7#IXA5M(!(4]7CVD[F<1] /A^$K\-%8]H9'/- MD\HW=US*OA=Q.ET8-O=XL$7#;N(XC6?H+8MCX$Z!F= 4Y,Q=PYPOWCQ,A9,. MSV8N=$@\-$)]\MM9W7I B]PQ]"5XQ=E@)S@1.['>6&]CM\N=7I"0)=Y!@Y. MO\+/0#O9QI21YSVZ]?N:;CGU3!S\\)]=*EHF>\YT P[^'V7I89I3D9MV'0%D MS5-G'F(3JT6^<0N:#!)B>0ZQ,M"'3ERNE9H\P@3'FNG%8TI+[#CCL(]DPAJ5 ME+IAML\+K8S5+Y;)+3S?&G#*&=\W3,.01L?[QWHSD=JB ?N'ZR6M:>@OCNIQ MT2#-A9,OXK'L&@-W1%:2]L92I'#!P['V?5_3CRAJX!KB=J4?(4RUE6# ,"2^ M3&+_ -?NB9T)W")IA-YZ,Y$Z10/VL]&*QC3$H4L=ZIO&,1JXADD"[$,(&1PD M02)NF2>D#NZ9)3%&?E$1_WWB M"."<9N%=LW#KARS>:_X2L(A>^Z^P$"A#P#J3D3H\,R&D@:#V3.RQ8'U&FF<( MK4"YW\&1W'MXU11:?.'W ^(( BQ7Q ;R8"*>\ K$7#B'JZ-N@1\9+&HB@ M'0[@GZRWF3PQN*0>73+5)5+U+*3>NR;;^3/BTBF(PU1=RIN&J!5XAHK.NF8_ M@0\O;T]+U_=HRZ(Y3G+')IB-.54(IFP\T2LZ-2&N_CM/;YYZ@Z'"C+<(1'J+<,NN9N>(2^8Y&%6D< MS:$BM_"6Q);U PU!(O86;7%F?#ZSYO.HV&-ET0^9'G(II:MNP M5PP?J$W9"^2]:4NX<.KHC$HM@'++.9TW*O,H(;]I%*R#;*A5MA=!)" ADTK! M[Z V?Q]0>%.6A.UQG,&=H_"9A8>7C8&-SB_4$5*YI]"!-"K?48NA]KV)#GH\ M_J478<5(DFP7&7/X8I]C[X+@<*+;XCU(0%O[S8A0.EU_0N.2.L@]QP]"Z:1;5VH(KOTJ,DZ?IK!G2JV4@=KZ$8 M-(Y%CJ>.*D8KYZ#]H*P0'YXHK!MQR)-DS_0 % MZWH'._&D45F]BO;NCG1B3,-DWG4O@/0H9UO,YZ"6G;0[BPLR9XZVM>55"F)T M]EXMD'+35\\?E1?08*-]AZ!&BL4W="@6[B:"W?'3(SB#"20N\BQ3+=!%!D"U MB=\HG#HZ?Z$60&6(<#1O5/ZAA/RF!G X=W35#F!0I4_RTZ%SP=4NC/P-#1)) M[+5%6 5E=*:@)99RJR@%,2H#T>.D_36T%"^69;1;X:2YA/$3CBYO+$HY>9#X MXZJ[_SCIRM$.1*1^HD5Q*>\VZH$;VTV'(7?-GX@4W7XPCW#$KFB&P^!-O$W# M4#;DD^^D@I02$JVMB+R*-Q[TA?F[T-T#3'?GB/>FY-ERD_:9_K/+5C+6C7S" MV?5";KQDY?L.O$H)9?5J^,R.)4"6_.^O:V:OX6E6R!QQL,[GBVIPZ:@U1_], MJ1W4NI=EL'T,2T; M&H+0OO_&L^-J?/7=YNY+X]9;?=>=V:@AN^-N4T3'=[@XMJ?Z)5@5X7DM $B] MAKDPS$KS(MZ*&C#1=!>JC[*;#:@?66[9!K1'D=SIECC$YS'FWHMLL]VTR'6RL"EUPAM.W&B M".K4U'T01#3927N)3A:";0T5N7"V)[:@&>1.0B,VN+<[,$\(E M?FF!FY0"V >'@/ ",,:F*5 .<[P\?CGUZ;ABF3SY<:4Y(9(G/?>D.1>[$ZHC M@IRKT9F(V:'4HK_IID +VU#9G?V((M=T'K\KN(_KZMQS=B/N-&=):1U=(98! M&)M3J!1&J6=0SAZ3>ZAFHG4?H42)QE%T)Y2X>4)''W*RH7QV7SN*6XOK>Z M<.&&=T*VZWW(;"@C)\MFB(MH*Z!D%\J;9P#G^<&&#^$ZX>QL<=_]O N91V6/ M$FYX_,]4W$#+-[#Q';3\Q?,CJ)A,/3C: VKXEV"Y]%^3^^TPQXZ$:.W%2+BM MC@*.,B8\I.[R(OTC)+X-\4BPW^\[@TTT197X2(*0"(RB&.)@GG]0J0A%$3H? M+P8HZQV>+(J7L0&)@CBR;V92R%QW72T'@73Q:"*0TOBQ9/Z8(D@=-EJ/(4N0 MHHDBNQ3,?<:5I"M;9M&6.XK:N\?4-?D=;7QAFMW*(G:P!$QW=[Q>@1'6_WX5(TOO]9$=1 M=#.)SUO<,,_R[!;N]LL!C=-[: A'PXN40!F?-]%AIJV[_66""^'=ON@)M]A" MV!3.WFA@LU"]I=&8A]Q M%E7W< 73D*L_OJTMW,[3&.XXOP'\!%?(L2D[W# MH9.BDAL\-LW.,5FJSF+DF'0X3W!+BAL_?(^U-CV>VG+H"$ZBXO?X3_Z3]08/ M1-:^"PUG;OR@5F?;!N"PZW]#016=5M6%A=F&FK+4UBE670*&/M'J76#I(8XX M*8=F(6F!C+C#? B(24BCR*7B((ROM7!J#@?HKU;@8,BYX/)YH(D372RYA#:^ M)YQWA;Q+)X[$!U4S7^1MU+-&X%TK.A3" 6XH^SH":!FK((FL MYV&X@T?/6L:N,0^[K>NRK@J]"R=AMG1MVAL;>A6FX=.PNQ% ?D>2X!!7-M+> MN^->HT-:W_RS#/]9?Y=>[Z4#9)=;*.X^BH/IQB>5^+UC?6&8'4 C]I<&3'1T MC56 $M4U5A"0_H.^8+9?4CA;+V9LM>F0]\(ASX8&LX/^0 MA_5BN7(W&D8!@V0ZD3C@.?D_9$;.O;@G\77<>?93X.^V? ;_'3I^,V]'G?B! ML*\\#45!&')?AT)&)SYT>*H0^V9$PC%U<)(%RW*<6C^/I[)P*Y!QOF2\EZJWXI0.R9!A)$ MT\BS7[*'B5Y']M5 !)Q4N8(\+E@$)B=+P22NP)V0+0:,=7UH)^;]/]%M:VM# M"W'L_XE8AQ/#H*M"3:([61-D0<"95WK[,ZJOYDI_%2!61"B4JE^2/;6"#@7\ M&%E!]+6*^)FNF.?!4527@M8XWQ^5D,6C%45,UNPSSD(*4MU;P7P MN88-K27$0]5JSV8NLY*GX34V(Z)L^IJF-=7#-:71:?Y\/W? 7X\\>W20>8$I M)'\R"+G+*F8JZWOR(Q [$06A37<'>;##V'/+K!W $1D%%KZM[2N@ZXZY@2.J MQ]UV*U-?+1=8NW']U[FWA+(GX! K8B;]V8ZAG?Z2CD>JY@ZZC16G8( M8KU54=KHL2FDOA4TLDA?$ RHD_EN%4FFM$(XRL'(-;2;SA.[FR31RXE75F&3/SD^L&Y.11C\)PTHVT>T4UE(8(: M\Y';06U1Y+(^=2@Z+.)%P6KR#!I:7 MN^C.CWZE44FX4F,Z7,2V49N%!L\("LH)'OHDPI^MN!CMVG#\=NV!MUIJ)8YE/<,)(+"=Y= MB$**+/G,3SBM*F7;"1:DUM:Q6-.BN.VCP%XYMT..&SR+Y*S*2[^8.A%09JN+ M+H'"M&#N@4;YRF@KJ4P_]Q752'NN6HM0U@E)A--$$J+(8DD$643B)AG""%!& M8M+2S_U#,=P.R^!6'0"C%W(W6CSD+0];K:/%\DM(A0 7SY'%/'C^D^0^\F^A MN+7E7G6^W0@BTN6K17'E+IO,P2$.*=O@JJUFJ0^++XGY^3$=Y)TXQ_!W(3?" M\/U 5UR(9)2)H8D5L! ^$?Y+2@Q^#8#<"W]YL>/CI3R'?)@75X5ZE"7RBTN^ M3%U! O]IL3PTZ)89WU?P-#G>^?>Q76#"K&3[)IC MXQ,L>,Q_ 3\[\+X_)878!U3< Y#07T:O4/'(H2_4]>5F7CSY'\:AHI4G$!++ M,RF1/@T"4#/.I6G+MSEW_LNLZOK]99.0.[?JIG-NBCU:,1> M1H-H4\6^GCU>//OP*?W^)V>[3_1M^C255=5Z@ -'CH[2B[<+(W]"@(KS0GXW<)]840SXC66LJ8@]6EP/C M>X?9S[.[+S.\VEX5*]28/FY]+UW;=>>.5^/;6RAB1/*\+D$E>U@FR!"LK[V) M0ZR;W_%U$X,K$.6A[ZT@VHLK*TNTX*S:4&M,0V_Z>HSG3;Y\#FI3UR3=^ 3I MZ6'Z-/LTOR+WTX>GN]G#XT_S>S+]]#";?9[Q>.^7^=-/9'K],X_]9H]/(C)\ MF-WR*==BPJ^$S[][G%Y!##EL)%@L*/VM=#T((S43S0UPC>DC-)XN]E0Q+B*0 MD2PV7)O1/F4BULOO^7IY+DXF::QYY6^>^59=9\6MF(+@PG/4;9>,1.PHM MLDVM(#U5N5I\OIS?34&)<>FP_AJI/7E\>JVY,NK-')>N=^'[$S0D@P?72MB3 M(,0B^ -?!)'Y@225$1JK1=E\QHH%36<>DU%[XZ\\=H"EWX_@39A ATXOXR18AK M->Q5+F)-_ -?$]&YC4^^[[PRU^42F'L1YXX]NS*)-K-#KE@AZ\) [CB,1)+U M'+4 ('8=9GR8VLBGQ>+ZE_GMK3"-^=W3].[3_/)V1J:/C[.G(0]!M,10M;;6 M!G(.1E*ZOM:#,'8S:6\M2=")Q?6 ,'E[AFJ1[5DT8IG](U]FT?H2\?:DZ@CU M9!!R7U#,5-;6\R,0V[*"4%.%O)U-'P?-%[NEW-AH_NE36+5654Y"KX\Z3.?U MLVP&:GW5(MQ8?P7X"3F\<9,8$"PM'7,NEI)_X4O)X"8,S4=9)')C^3)Z)>J, MKZ@'KP^T=VAU82 W<".1Y"K-U & V/S-^#"N9[;X_'G^! <6,F/Z:B'RHF=W M R=%:TFA:M&K#>0<;*1T4:P'8>Q6TM[2D4$G]F@YA+CV9SU+1BRJ?^*+*E9/ M(I[KKGW7X8*# ^%H#R17U5JNFH3<4^@QG:NL7#H#L2?0)-P\MW1Q]1\_+6ZO M9P^/XG3_Z=2N>8Y39^>,F=E#FM6A@-P&!7>$/!Y$R@)@S,1F'*2J-' M_#'"WQ.)4JR4!:_[,6PU>Q>06"=_%'FDF!Q*KO8#](")F*Q;7&G3,NU!PK.(#'=F15 X='P MG@9BWUJQW)0,1VZR58SFJF0JQB(VU4J2C35V]D1N%X^/Y'[V0!Y_FCX,6>OA MF,NJ5:9L_,CTM71]40X>D<:VYV03R(2#EB>'"):5[MB5:PH48T%EJP\L_ WN M#K]P50^@OG547>6T:@YRF]5B.5^7OF0"8MO5H]OXW.++XQ./C1[$!?"GV>+3 MP_3^I_D5#YEN%@^?AWXM^DA7<(KY0+=^ )?B^GL>O9G(=;P&^[E;L>IIB/6] M#O7&=U\2!TF1X-H6]2$"N9)!F13<+N#&8L'/EKNC!R%4K6P54Y ;O0[#66LO M&X_8S+7(-E7NF_G=].YJ/KWE2OSX]/!%Y#@A4^*J%:QJS@C5N'35*ITP,D5N MSTT#="+ 9Y:H'JZ17FCP[)>O4MTR+M9@^WOV;,YGKZ-"7O MOMQ-OUS/^9B3[F!8;*=J1=2>/&9+*5TC]6:.U2[:6SQ2-)D^#1E$"+9X/0E" MKJ)0\V0L'N+2"EFX6!XU^=G+_U86"M2=C-Q#U!-"KE"@UDS$'J(F \:% @$- M-'(Y()H0B83\-?ZWQ$GT:!!?H%7P+(P8]PTT5$CM9!!R!2]F*JO(^1&(%59! MJ*EB?I%-F%. 2+7R"KYCZ'H ZQ5<45P%U&$1_*204_D,Y/JJP6X^@U8Y'+$F MZU!MGA^;@4T Y(1(\/$O[6HY-%T7JOOQNUAQ11OV*RM2(40KP2 M H+_DMFQ@!X/ LK0@72-?@HLAW+1+:(U#>(X-WR@-N4\/;M4TJI8"W3G(G5> M1B+(KN!:$Q&OY?7H-S65!# Y0$9F \H"LWH'"C6F([>$NH+0*L*,:WDNLX?: M+'12?!GI0E%2(/+X]])%PP0..UJF)1:%I3?O(XK4C!0U?6DWR.U&AD@4E95U(O9"N?@=PP--@]K9A: M.!RQ\NM0W;16:E(A%94R/]"0HZU)^K*LW$[F2UV"_:$4HF898[>M0W]3;"]7/8"$Q&J0>_I&Z'.CJ$_5H M8,&6:NILF,="<=O\0F/B-;V_,3#D1M-,2/GGA2:0$)M60X;,'R$*M'P++A$+ MJ\NC3@P/ZY'6H?QFMJK88AO7%IN+G _.AZ@J5KHPF4'";G/FXCFIC!^:2\PD04VRN,76)(L= MIR5>TX"]B(V3IJF53D!N2]7,9HU%/1JQ-6@0;9PI?0"-=%FYW(7,HV'(=TG/ MS,L:O4):I1.0*W,UL[E'CLK1B)59@VCCQXPQ:)*%C5.K;^G*13N;0ST> MN4Y7LIK/Y% ,1JS1U32;9W%PR$2 1NJ=[^AKYHERX'O\1YMJ/QUK :YUIL* M)FL,=6$@MA%C5HPK/M#7S)MVDD>)U)B>X.%(E:F<#$)N",5,Y=X8Y48@5F(% MH:8J6@QVF#HL+;,&]59"(H"&+;Y;GKJN_VIQE>.[]&M_]QPM=V[R]JK4>.K/ M1FI5AF)('Q[K3\7^QMB $U-MYN!VKA40)_^L."% /"=V8A*2U\9]OQ;N41S3 M'.,),I(^@ORKP-=1Z0+E [:D4HCS):25-"&Y9YA9:JU7 -_@B[6/Y0%^HMZ-:6P#=N4C=DY$(:WRIQ5,U#(S:2) M@'+IF#4N26"\$VM-"'+CLJT1" MTPWT)/N'V%O%KY.T#*TA2.06UX; AML%6V#+.<)4&Z"H,,$M \NX. MEU4FWL0O\V WNP@:RQA::F4W%L]I";A:8% ;B3DW34O&I5A);%(IX@E) M4..RL,.6]O"H/G[>/GVU N:)R0M(4%NE]T( MM?AFYU>P=O^RF/_X%\,#9COB#<7^BZA?7RC\0X=B;K84;2,;!0^HRN>.RHB M,TFVCHXLCVEM662Y0,T$=I@[O+>"Q9+-.N>I';$7W6B]%<"C<0--A5<5&-2# M.@K#;LQ<9Q8LT7-[C?&/RV(?:!@%S(ZH#*R^>"P*14S3JOG6QS)R6S84:QW# MKHEBQ%9NRFEG)G\@* [\@23\'@!DZGOPIG.Q3.N,Q0'()?7HDNF=%3>#.!K+ M-A97L177!C<*BS7GJHT=^0$[_'8H<9?>R+R+:7B/U29GRR4%MT%3X3U8$85= MB6&-PJ[;,!6&X:9HL\:)5! \B1@-"O9'-IHC-%(3,5V6 O4*$S0C*,VK"_!+*PN3E6"\Z4, M=JR&]\4+TA,Y3GV\?(^ $$_35MSP#@:,S/5%C%%E@7VBB,T)BI-NPP MBUS88H*> 'X2$X#,%'>;C17L%\O#Y5I2PJ#2Z/2F8C>O&@+(&9+&/,PF4X=\ M8^.02, V,E>D:8D,7(9PB*6/JE9?6B&SH:<.2HE:U804UT@5UV;)+XL9K>U(N8 R3RK>0CM2&?B@>OLS?;W3G4N>&: M*%L*QK>YQU+6M\H6$8W&8-L6;K$MMX5E%&;>.K-M>( L4>1 %4G((J @)$-8 ML=O ZB/B2AV7^\_6W_S@:A=&_H8&X>7^@6XA2=];/=*5*&59,;96T0#SW)33J91 M%+!G$1[Y29,+R(D*N/.ZW'^B_BJPMFL>1@74JFW5K6(NC$Y MB ZX;M-SB$4_H2_C/@X4DL@G:8N7A$AP+P-P3[7]A#KU.BP8N MO+R,PUO?6XG'?O*],&=GN:??C_RQNA]LOR2,QOOT]X4HCA4ZQS\* M_]2C&%JYS-<.POO 39M 8_GX."F\JF% 1CD+L14,+GRA(#9E8U:,RV!PA.+$GDX2 M&TN0@DVF:,7!(MJ]QE]V5L##'7=_PSS+LYGESKVE'VQ,DJSJP4)N7HU$5+S4 MU@"$V-":\6-J;2DNDB(C&6RXS.O*%\VW YFIS<+?+O=/'.GTC84*H9;/0&XJ M&NQF#:)D.&*UUZ':5+ESL D )P";_!6@HU)D(.O:WUCLN!:^WHRQ*?(INZ6* M?!@^)D4NH+IU19;P!U7E^##GA/W/=/-, Y6P*F=A5VD]MG-J73X%LVIK4FZL MWC%\4J#G?Y4X4'GKR_TE]>SUQ@I^JQ=['$_#KN2:C%=$(;DYF-58*TKM1\^%#EJ0AV@.U*7N!_6UIK%(R M'+EB5S&:56C56,2*7$FR<2.]I&/> 3*&..31T:A4:55CD6ML*8NY MT[^B@8AUM9Q>4T5-[M1_^N]\>E)!4*P@5 %*PAMO&EK.W#54K@[:T,7RQQ;A5%JU5C$ZE?)8J*%RH%(E;&:WN8Z MV2#*5#2X?7KU4P,J7'K5HY J605;:9?9TR'8F\>64&R^U&XYJ2*]E67NQZQG M?Q>1Z-4G&Y$::R=H>^[YV@'''&0F5:])8*&PJ(5'$_AJ@RH:A-F>E$REYG0R M KLUJ0GNQ)A\CQX94[^FU#Z['"(Y+$W#;R0O+1?>P#ZN*8UNX_*D)0?9)<.1 M6J(NH]D=I6HLPB!*FV13A8T!$P&9)*"'/Z(N8KCT<+ITP@B55WT@K1X],@5N M:2N@4N'ACY_O [JUF!.7C8-*/8MH3?E6* B@\'R<9EERME<+ '(EKR^,?!-@ MW=F(C<" "?.FP )54K)05FH2V$B,+FWW.,PYX@,4/E4<'V8_0ZK5A2PDQS3I M!PAUL9@^XQ<5L)<((V9;;I*[+;M.#W%2*-@J]*>GGV)7JU-/>/019M5JR8J=SN >'2YC"PMBR:P7>%JWY!]\_/ _"/]GXP?B92S,#;?49DM& M'6+G4KP"2/%Z3G(0)N1US>PU89XH^1-.R/,N(IX?$9=MF'SK/R$A)$200"8P M3!+D\)TP#^8*WH M1\5VO&(*4O=8A^'2/-;,>(2+<2VRV\E?!>?6KY$.P"1 GY #_$X8?J'!LX^& MY:+OM4?/](GO56_],%QX<^^%AI&HG*60BFHL>:*;K1] +?4#,@+F"WL[5-;[Q7MF MKDN=P[N-,+[74DBO= )R&ZYF-FO&ZM&(+5F#Z*;&K$8QC#UWR'(".O.LB=NL M@ML&AY \SN9!MAW]PJ)U<@@@KI4+>+OSHTO^-_A9-J&&JVE;E*R\I%<^'PV_ M3)=<;G?T+7IZI>X+_N/>'%?I#;MQB,GSG*KN_^ MDN^%5^L(2K!RS0J90^,M,@_3Z9N]ALM;<22\\GT'SH1#V?&><"Z],&[_!9.3 M%->=QT$0%VHE*@' M3V.Q )YGRB'&DB$6B$:>;$.-JB4+X6)X3ZW@FZ3H/"09\T%L(Y!8G@>5&K?\ M#[X3DME ?UUN^3+T?9I_1IU!DP>0#FM3/"$P$4"EDT:-W2&Y%%UL1_APZ:R@$6#8>N1^H M9#5K_,K!B"V^FN:FQP9*#,-8L UIIVG_G"/4V5J9X,'HF= M%C-99*3YD2.P4 7!;9EG'ORPMMDRJP?#/'1@*N2RR4F>M661Y4)/8=FRC0:/ M_C)ZY?MC9);K[HE#7ZCK;T7BH22'A#$]?1^T]"(9?51#''+T(H(,%I*@(0D>9%N'I,NN M% CU0OD2.PC@Y!0,[7)_&')O[>%/4VC'+O[S,PW!>=^+/:$J*[%E%$C];I<" MS56/:Q$^XB"K$S:;AF9M$C5,0(=*K +3!?PL_61"#LG0 TVHLN-BFHB@9R+_ M(3%=Y+[L;*I'IPHM@*1@7==_A>L5>!K]0.'RB885?3^T)R-WA/6$D'5Q>C,1 M.Z^:#!C;S^R*)*UW)N3C=Q7APEZ)'U$RF546AE%<^JH[4-= M+45GWFAMHZ4**H:6@:#"2DK:C1]5;!)5/*/ MQ@->\?WN"I*IKOPPXG^/2UX9B5(-:]0>LD)$^AY3 6BT'K2*'^,S;0D7(L" M.8#ZEOP20)ZIOUR&$)H6].\:M-ZOSP/Z:'_/^131Q-]W;"NOB2IN,?1F(O@\L/?.B192BGCY1W0E:.1*W<%F_GB8H5#$2MQ%<7F#^[B#+84 M,(8[A"2=CEMK\N.US+0$"N'PH_S2K,Y\Y%I=6Q2Y=#+=R8@UOSX/QA=M,7AQ M;9S^DD%&!#8,!G*S"SP6[814;M@;_%1N$:43D)M -;.Y-Z'*T8B57(-HXZ>. M"6BAU@GP+FH\\\VW'\#H/>?BB891><"A.P>I=M9B.7V%434!^P,,;?I-U76> M:;L'83N/G>%>+_*)FZ(6FBSJ6] $>\^O+3H7PVV>64"!*T13[JHJ2Q;HS41J M]0;L:^VDT3S!,MI)M_B\)L$Q(5O (K0_M?))[EG6X)G@GZB_"JSMFMDGY8%+ M@S&=>ZAF+]#42#S5.%!GN8H^:&5C MD:JS%HM)0QCE0(1JJT=O;_SO2_EYS+Y$4BUL82=7*V/P\<(-:^,2N-2%S[,P+ =$UE-G!Q; MNUEO^0SDFJC!;E8S2X8CUE0=JIM543\ ;Z.];D7KMS@U[E'(J+3UV\E(I-JH MP=Y)Z[?\,.S'?154M]#ZC2G/^PX-X21CHB1N0$5)7:BV8GE[PD+BT("]P)2X M9=M C=E:EE"VB)( 3&+( [9EZXS%^)M+ON=AV[(5U\F]HU%YPP:]F4@=F0'[ M1[W:JJ8A7F;K4-\T1U8#UV MW3H70D5Q9UF8.4W.%87=,V];TX80PW=SR16: MDCQ!9L"A"0W0JQ*TYESLGJ*."'*^0FHQ=!Y*NMQ?X# M\$R.>SXABQINF?7,7!;M#WNL&JZW>#9VGU!/#%411,%4S'ZA)@==1!(%^/!$ M$UT(0Q51I+@F1"T*+ XBWE8]4-M?>>#H3(1:!&3,[D(I%&VO<0)AK,Y#S4BG M/N0$+4)7TKYH-#Q*G-W30)RG<>M;/+ML572R5WAA6T8']&/(&(LX !B/"2#B!PP)3VHD 45;!2#RIB5]0BO>%T%5!:_DC, 92 MLVTDDC27I"X [%DFQORT_\@LZ=Y#7$F+>'\22&J2]M)ASRDFO8LG??M\FQ%" MC),D2$F*M8NDL:GS8GGPQ&_*(Q!F6W//5ON'LL&8'4$EDZG%*T=B-^UJPMNW MX10GB9%."$?;L]%VQ[B"/0Q9R%H',6D[<;;A0Q9+N8VP1,4T45KXFON9DN)C MK2-!ZB*Z%6KM@U!M#(BW$ATQVL.)8MK.7E(%69-9NB9$4$: M.&KK#46GVGWS? M603Q=JLD'M*;B=S3U6 _Z\0TIB'V3W6H-[65@]XG6.!GP$/\(-G,#Q\R5(BB MM#2K[MQQFX"Z/*O6Q/&:04MOPS4-8?A'XPEY 746+S3@=-/2A[QEX[&K?!6K M.357#<:LVI4T&ZOS 3+Q.6@(<"B&,Z ,8=/HWF=>-/?JZ'#QI/$H<@G3"FTN MF#$.E2XCO V]MB(B$$!^06/U5EPT\/@?2BVEKUN+SG(+QB#5QU*6TMN$XP'8 M+Q&4]!HKV9K"G0$ S;P_[OF&H'6N[D\X&O)15'Q?>&\%T5X8M=QQAY?[[">E MY_PU ""U1W-AY(_J=&#0(UVQ[XP?_+X1/F0KV4$3?K;&0#GEHII"P^Z[FC+7@K*R$"/)/'^%W MJ'1VDI#Z/ZW-]E]/4E*)E9#5=Y[;8(*;'DGK)&M52JK?O-4K?[/AVW!FN2D: M>-"3YNRIG8_V3,R>IA[[J5O1FX;=A]3DH@6'$9="C+$>?(!\P)4B[MDE]"2' M YJ,2?^28QS#?!^)MB]UDV'JGI:[.:ZTVG&HSX M9*":YJ898DH,PZ1\=<>PA$PDZ D1P"$9BX@/R#OF$<=W72L(X:2>A/#7(?.S M1.L_Z'GSMH7@(LP>$BF$5S$%N3'K,)Q_WZX>C]BDML/5_\G7L.N:()#;N8E -"ZG"NKXA"1(NDABN6(;&@7L;>[9?K"%_M?4*;DP*1N-5%TUV3QRUTE6A6T'.Z@]MH'C&R'I0]6A2^K1)5-T%S28CME4 M#01QR)70GXO=F$U8:=^Z+4F%:/Z6D)&KS_4<4])W"D2/THEQD:MC&21'(@D^ M#%>?203!B7UFGJ"5[_M"YE#9V3SSUD=5ZZ,F"*2^I(E B@)6G?DCB%UKL='T MB*4.TF%.7'H52QK=9[!-2 X?R2!LOS!H ;<_^:[S;-F_R?+I1:Y69Q)2'U"/ MZ32*J)R!/7;09\#\VB#M)@L)43PN%MKK+^6OG*,U'T>V(L4@6EL1M(WU_(AL M+28>F=JN'T*, >LHG$>NJ2N3QT6EF#VQG+_MPF@C,, 8V[78)A0YT,QSZ,9C M$1\4, '$WXD7>,\!M>PU#>%G6X8Q/$Z)"152""?DU0JXB46,QG#]%^KQW_DG MXM=XFB]Z-5./RUE&_"RB&^B<*_CC?USQCP_YGP1>-UI"M!Q.&%,/)LS9IDD] M',[>,Y42B!/)($&>V6S+B>-L4+[-YURM^5?%_1:!*&.[#?PWQD,SZN[%C.B5 MNB_T8N-[T9I3[+$7/M0*]HGHLX=C4)FLY[BL>\W30S- R][N62]>/Q(DPW? M*)! ?'3%(W.;LA?KV:7AI\"'(?(N8F>YA2M/2R"1KDMM"JPB5M6&-Z[8M3Y; M'<2RVD2@B6W[$UNQKTKPDPP!$R)((!D:&K@R_TN.;QZ:PD/JC5D14%CYK 1IA5%V/KY:";1EGBB"78\U&E1 ' M\U^3()8F%(BPF4]E 8]W>>SKP7&6_'2 YTN#R;$1=AP193^"*G;>*6X"R(G$ M+JZ 8GU3RJI=QQV?Q[;IOVN"')D;-Q%8F3>O V^$3MV(O;9\>WS7<'2@$KO\ MYJZ>6$ON?RIVEV[ B?E[^"047\5(8P=[ M= )^.,WNVD^1_,QKRS[AM.==4WD ^66^9#Q.1B7>C!VEIKE"]$8/9/P_^ M)96%]?U0@GWU&%XPS1/?J-&^:QB-ZR%Q[*\KVFMV)I('NY_VS]S0^N7+Z%*GG;7@\" MLRD3BZ;I%($8I_F4 8-/F.?_OPHCRB:2GMC1B+=8@ MVE2)#Z /9==1Z/!38#ET8P6_05U;\0N$0N5J7#4'N29KL7S4=58] ;$^Z]%M MJM('Z.+=K?A5Q-$H]'KN.739^ RG/A3DNF\HEJPUU 2!V#Y,.3&_5DGP7;B* M.VHD\.=:EO">< S]^X#WZ9A^$!#RA5O MS9?F3#/ TKA+=RYZ&ZHA@KS5:$Q$;2=UZ#>W#!*C(0D>$:!E6TXB"-#:S!Z# M9RK0EH,/>;'[>X2[QDU4B\[Q!?0R7.0$KQ?T^,/'3$8 MGY[ERH"D6Q=+'@.P!);'0IZ#Z)'?DCC"Z_AORB=ZSO M[XX4G@_YYS],?OSP8W9JWX_W:/HM)]1_+6L<5M3Q%LI&ZX$Q$V/2TZ M 7RFQT%J/MLY[SDYYDF?UI[144_[0FR5FF[6#NCWTO9A30?:"&0F6FC%:(9W M_84K9/S$/;RW]F*&YR2E$M^@F9=VA=A."3C#1:39E]')O40E]C-=CAH*HWDY MJDPQ'%BT=J)*#M2IA75+YO^&-'AA4%@J$(T!1&R9K&Z%/0A%3R$KH&07BL$< M"@$!1/O?AVEIV\D9UZGJ_@OLG^21WX#T8%,Q!K*5*(3M)/9!%5(J OU-O1HZ]S*!J0+MZ#?B6=Y7!5$?"5',;IRP'3<5PEU>,_D.O^ MBTF+.P;%,D.R[SH5Q&(K>IQZJULH"9;YH.MEN1XI2-TYAB^HDUU9#3J^IOV9 MB5B:[]3\! =Q106_[,[M?+=2?PB1E(B1 MKKS]"[^KW5,QUJ]DRU3!/*9]4C&IX]\<=?057.,KO-ZFU/KUSE^M2^[1#W]] MSA>[Q^WH:L+Q92/1.JM M--A+CZV+AV$_5:Z@VKS0R](/-C*99BL[\\)Q5^03CI!$'".A"SW8[XACX M K@D!8RADLV5[X51L+/ABQ E?E9#W7R9?>5PQ.:K0W53\RW!,8SY=LET%O:$\-]<*BP9LA>SB";DSO>V@>]( M2Y\0$2$/:-WB7G'MN\Y\P\EZT2C27CX#N75KL)NU[I+AB*U;AVI314]ADRSP M1F&F8D>GN9T;WUY.9R,WPEU<%QN:I]PFC6P$U)[W:IWQ-8)-6GG;F?(I2$VP M#L/5^S04IEE_H]96ZQG%I@6#0G-:X-!G?\]YB^(*E<+:R@X>*BC4]MO@SO1 _8[)XCW7$<;6R44E)(M47P MR$VE;4%FC:HMV(C-KW46FQXWM$50N\'ECU*2'ET!866G$V@$>LL7\#_#D\N$ M'.)DZ)'O,4O.SX$[U^"68QDL20")TF0%K6&'/[, M\49=J/2!;F3^66X31P/F.Q\5#MD<&E+WU)*8L@NL(2C$RW!3CIJ>HQCB'R:E M8RAA2;P7MZK.FBGR7/('D>C)NU^I%0S9N2/OS36+OU=.0NYU])C.'>.6SD#L M0S0);WSD6HIF&(_0,>O3HS"MP/:'SNB:\YB2!1!IGO(O_98H;:XZK-">C=S< M:XHA=]"D-Q6Q ZC+05-/H(EO&)?0ES .>!2>X2;366! !Y&^^HKW4M>[@$BVRC1<^QV$#7_?=6U%EAB"1 MJW0; LOGTIC#0VPPK;#5RBX&RZ%$B23*4C8UIB&W&%W&-<\]L2=N:I-NJMT" M"KFR@F ?G\#M3M.Z<"AV)NE+XUVE$:#Q*G^%<#3-00%EG 92Q4R'A_\*U$.E M2PX@I Q<4B8"'*Y%7>^IL$UU+^[G.WLJ;FS8 @]RKF0HFGR%;#P9BSV?,2N.KC)J( M![K3Z%L\<^]B&_@V/.Y\^)_69ONOURWF<>KL]TL'(K7M:N;2G$N,N_C*O,IN M]N_0"E@\L\PT!!XZ_[$;3M6@!VB^V^-AS/!)$F7;Q\S6+FYK>$??HJ=7ZK[0 MS[X7K0V.(O6 (G5C[0I-]]RF&B+B\*4EQKH\SZDF UU.9Q^BXP[CN]$X)KBS M>7KU6Y'D =99N:$C$9E[GQC0V3B=8W[Z]34Q]C&XF+8$Q2W^^W%Y%HY?E<1@ M#NW\O$M63 W]"X Z+P^3XV@ 'P/X1^-E6A$6M_\?1N5G;KCL6Y-A#.SLO$Q6 M2,V<#$ Z*Q^38ZA_%P/HQ^)A6A$5-_P_C,O!\+'MB5 ".S\'DQ%20P?#QYZ7 M@\DR-("#X6-'XV#:$!4W_#^.QL%,EUR,K7J98XAGY6H*Q67N;W+@SL;I%'/5 MK^?)T3 &]].NT+AO^!=1[!#JCE +8+=XXUWJ$@R?/)G;Q%G3+QD M%N.>:+ INKIK! VI=VE)3.D%NSDH[+?P+7#6X"%)?$'/K83X"2'$!0QI4]4] M"205T'O-\O@X\?"$_T*!*&%B\11N91O^JQ41%O)95NA[UK.[)[;LWP9SGBF? M1@.;A=3I.0M@0$DWQ-^O_QY:6"EJ(F!.2(I]$F<@D(>#1J8D@!Z+":1(9#T& MH'G101D]Q0)9.!"I0Z]F+AL%GHY"'-R5$-M5SS" K\[=1S M?K8"T1Y6I6]:$Y#JG3ZS::Q0.AI[.*!'?/,5/P0\%V+!EBIJ<_@3KJAQZFFB MLF3I!_&(5Q:MY1(/%0X]2C:0LT'$YY#N)TN+Q_!?8MH+H'._#=_M<9@QX1%# MTO28O*XI=^C/+EO)9ZY Q=;:B_(-1_8"T)F$:9ZL*CQJ 06Z"IH)11Z35,! ;M#$KIF:2H""6Q,$7 MZJ1 9F;?O_,<&F06X(?%EW@1)N_XWG]/K2!\/WRABE+I7;/0%AMFTP<0W\QD*7[_+7 M%?6AG(ES*7E141/$&;B2ME]1U,2+VW&02^XQS>0]1AN.0EA &8,_(=JM?H+(T?GP\XAQ<+M?A5 M9Q$;@#DG%Z#(%ZX+XUQ"- 9V$HWJ?1&V'$O MMBC3YWMV- U%>#[NI(D'.0.GT;N?&"H/IB=QR#29Y2[:!91LF,AH01>?<=GM2AE'FM!)+L:.3>HH)-=;Y/.A2QQ5=1;-STC!,* MR>DOEKNCD !?NER>),N=Y/.0=]\;J;KBN0@D BZ6]X'O[.SH%RL(+.]$<4L' M(M79:N;29R&%H[ _!RDGVE19'^A6JBN\I%CZP48^LMC*9YJ@CY%/MA(I>8VQ MPL?0:FSINZ[_"H/@?3?CD:$C6K &^YX?6W0CFZ?X@4L,ER2 !WB#.2R#??8& MY7);<^(6Z8,?A?C(*\2):0FS3F/@4]##G;AVPF( D!Y@- M2JFK%GK^:;CV72<^ )#](1?+S];?_( '.MR?5!E;$SA(;;&Q: Y1A $0]$%& M$Y[,^T3$2--WG6E\$9!-C!G6J6UB-H?GH'T'&L/*)\::M'I=+$F"&'XN\"I# MA"J85&C(PT@_#*]\#_9TU+/W4]L.=I8[C9(6&C_#]E!UPJ(Y%ZF/-1)![G!1 M9R+BJ*@>_<8G8J(CRP$-B?$,U?^N'ZX%6)H4&!C0P)\XAL5R"ENF%06?,WUC MJI=,JK'(#;B4Q:S!%@Y$;*#E])JJYI7O=?C+$_\IM&Q8LL//=/-,54FN]:$@MP1#L61M MI"8(Q-9CRLF0=G7MPT/U(2WK<6T%]($FFYC[P%\%UJ9DT2B=@-Q>JIG-FH9Z M-&(KT"#:O+P/!TT.L$D,?/CEH9AI:5RUY)1.&:4BYQFN5F4Y?G3*?$1V^^K< MP"LK3SWI=Q\^_NDQ\NW?3O@IC%EJ3$.JJW49SQQA5L[!?V*ISX*I_LXS-Z.9 M"KA0[19PDQ"0\T]2_=Y*]+T?3G8OBJ>$9X&ET*8EIM9M^KL/1C9=.0V]3>LQ MGK?I\CFCL&E-%MJPZ7RV@S3K[SXH57P(L^Y8&D]5/#,2QIQ;9C;,)2I ,E%?0)=L)<+@VE3:= MP">%+/>YA2QT9--=M/8#J/@K\X55-2WU9R,W[IIBR.TQ]:8B-OFZ'#2U?DU\ MPSB"OH2A6MLGY("+%#\M&-P]R"R"N7?C<^G7\PTG4T?I&(H%4.T5\O-&YQ(4 MY'?C#_+(,#F#EL6@]@1Q9A'SB$ U?)'>)V@>M OV@N2I_?<="]+:JQ#)<(+% M\:+JHE=_.G*W4%<0N>MYS;F(W4-M%IJZ"%V$P[B)WL21((IW$0DJ'C/$M8D! M&[@-(D_YH<"W U>O00CG*B2$OP[I0.XYXW?6AI9X(BAC*G0)D/D=L MT(5D&F]W^3P"T(:_(4WX*KT3/1DT$IU3WWOF1XQ [UJZV\QH7ON7F;/-UO7W ME K?FZ1- T;UI4?U%*2J5H?A]+*C8CSVBPY=\DV5/ CVH(D$>ZDP=,UYF*V]#NN' M^TV-2=CMOA8/QI&[0$*HP!+G*+ $#]F".F\$IK[O,WMD7F));D!2YCNS99&! M\4%OI2X;C-IJJY@\2B\J&(G>/BL)[RKMX..'P_H,)CI("E$7C#\E[/6TH,K_ M+CQJ$$/7AH#:7(W$<;3" M(R1]1]KB@#*\#^@+\W>ANX>,".I\@?I+PN]]^%CN%FK.Q^P43$21Z:JM/QF[ M0S#BI5$>?,AWS0DVP@2ZN :8C ^?!PP-A]"' =L1*(C7_+BZ,H?S*\?RPW^ M> !FBRYD)C79W*?8;;*86..(^_IQ0(-JGY?NPF;_:6^ONBDIO>XN!=A<#0DP4,@'.[KD&JQBT+FT,52 M;O8_@MP70>RHBI_UUYF'VBX=NS-N7)$!">GS4]7$B;=X/ M2+*P]6SJO8AEH<-XB.&!S?35"APHC5*2*W,\!JFYE[*4J\J1'8 X;:&83N,B M2@"- +CA$V;$-O"2D^5<^9LM]4+A0;(U1B[WAS'QPQ;!P$$FGJ.5=M,1*N0V MT*6 3TH?M(P'L45VRFX;ACU\R9OTQ?J^ENPO%*U+AN/ M7*4K6CV.QV=N6!6*P?/I6 M%NRU!!^[=;0MRI,]0AO ,5M?ZSPV?N[:%D4#O8E%(]!LJ)JE)5>$]'E/"D-: MH&A"#C0ECVT'?V-;N9-5;60_6V_0TBS=&NR>0SM@(EI_L"+5F]P.T8W!M78H MZ%JG,8:XL#O>+EENQ0]W0." ;AFCN%OPTC&)F1S%#)&D2.9C"';3M$YXM[58 M7HD'7S+ADP9P[]SV JR#< P^NU-AMQ(?5V+#[K>[97JP"+J2Q)&%U-V+O 7O M?4@E!RKAYEW2*8_>1)6;(M$WS2TW60L7RR7?!7BKPM.'ED$C];1="#"?K-X< M+O8$G[;9-"Z'$'?N@X?B*V@F2QP>*T%'#FC60>C?=RS:QT9KB;M*!C4J.0U0 M4X9YY/?WWJ_>9^_ZR?N)__/X>R)SBB:B&2!]LW@\1B=\U,=?__#YX_?7OX>R MVTD'8TBOX;_Z 9RR+RT[ LN'5S=[OL'F$""KCGN!:!U.1.>0:,WX4.IQ&O?A M$)GV"+ZP%KQM0A$9XHSH*Q/F$$O4W0Y.]P]]&SM8JI0HSG+)*A=H\Z6K&/[9 M+F$5[)K?V*8+"U-FMGH"=ZXY[38MH2C27A-[YD,0/?[$)NP6/.==^E4N:6O.].",)7&S85- U>.-'%J_:=[[W0$*0."V'XY$>6F_T<"N#>^=&O M-'J@MK_RH(Q^50YM!_B0+DR]B;HPO[IM9(@O4;KGN>D=2F<4#G.%@E?@E0GU M*55)<"^*>',ZR)Y&Y$#))&X',B&"\'/TU'(/<^,'\9]@G*J_2.]$?*T^O?1+ MZ<71%U+P-7K_- WLHW27+3=H)!-39V<+: \@QC1-N#ADY<1@>Q/@S599]^8Q'W*E:412P MYUTD K'(EUFI(?'Y.!C,1\C1(91KDY>RUG8;4)M)3Q/ /=AHLD<[_$JZ(FQ, MZ3L=BE> )I?E2]UEO-3%XW)+7;*^)=21A#SQG W)?B/SGN3*VK+(FL;SM3$/$Z_W+Z#\,ZL8Z8GC69[]<4?F*.D3 MO(+I>$-5@ ZY,^M:T%V<@1SC0NP:.V<9RXG(,8'C/AAI7=R=G(_DKC4$G6/W MWK+ 9,C%OJ0,UJ5PKE$.K'5,Y^JSJ\7;BKM6HSE'3ZW![6!.6DU;N_[Y1RE? MCZ[X#M;IQ$-W*.8K"'S=\F-FY.M7A])I8>F*J9N0#'UP3)C473N+10O:2T26 MYS!O)9?JCK[C(CQGOF I1=OFXY9U.7-GNC@%7,88RR3&#/XM73LF7<6.Q M0'"D>AW:(;HQN/T.!=U*@>0*7-C=>YDTFYG%C1Q1X^##GUR?O:\A+V[4!&[HA;%%_6 MY[8 %K%[;9.[IIZT!5J&<9H8A!C30+)X1+&J0SL/24AN1 @>,.WST:@V?+=. M,"8QN&:A'5#XJQ7LLX-DK99Z7Y ^T'&ZOII"T_!ZFA#'Y_#J,M:1K],D Y6; MZTMT)1XN(8'D:,B/+);<&';D:10]#W(=A,@]8O?" M;F5?7HD-L2?M@>G!]N:5)(YL=]Z]R!-HQ&5+>3L&?4?"]R-N\%DFM)]]EX-Q M6;3OHM=G+OP2#N#.Q4,_L/"W MFX#2N<>_(!I&??EG!=ZOR3N7B;XSWUR$]&OQS*6\H_++192>@5?NY L H!=+ M#I6P&*RH\7(N#CI9R:[9"W.HY_0=0!_A_9H<=)GH.P^>LTB_%@==RCLJ!UU$ MZ1DXZ$Z^@/2LPXFACM$UQ]D0X@E[FG1WU&-'?'C-19:*MJ/LO_I4G*O;;O:U MM)D77).$IPWU_/+\>-Z):0/?8"L'.]4&5Q M1-D)'!:+G6B%"B48MX6[-ML MH6KJ20])89P7#M2 S%NQ?!N9&J\LGVIYI6V,LR8>T*T?1/!;;.Q62&S+M7'LL$I%A*C(7^5B/YKR%, ZG*@JT_4 MXV;M3GH23,B-JT/Q=G?<*] @-MLNN36U\4_Q7@E1 M::4&$N*>CP5B3M?U@(LQG;E5EXBWW>(N)VC.V*K+N!WZ,J: MK'6 ^Y"S +F MV3C/3 6^HT.]I&Q,9=&[7K"?N9.M^35T5-FV#/49.^.Z$AC:06O2>Q:U<3O] M0G+E1T]NW&B,2]QPT<*2NM77"BT*O<_JNHC$7ER4%]6%3J7@PR:)(:TLQ*U2 M,/;%N/VOH]:"W![Z,2_*'4BAX7E(I3/JT^+< M';S1E]*JCZ]%P3F[>3-!F!_>2&A?I2LJZ/\TA#.J3\:YNR/#+Z95AU23AG-V M2::B:-IA[FOT204G],,$2'7).'>?9/C%M!PDU:+AG'V2J2@:WG*=HTNJD+2L MN3WUG+3LF ]_ZJN!8PWT8W=!+7\1;5Z*Z>(>L\MI6P3&E9UDD7M(OZ7)>_7( M)R]03N0\+MECUPS=V#OU'45XSMQ)*$7;0>.I Y(S-GLUKPW/7 #BF=ASM6L< M()>F,5%G[BG:^=+Z#3+.=;?3CV Z"$B^POU0QGT/X-7TL9^Y^ZKY-704_GRE M#JFN!%H(E<;J:9ZKI?Q<.__L@6XL!CE@HE&&94<[RX5J\-^5?=^]4S(&#S3, MU]-F:T@#,K![IH&DT4W^9I#@)?8!,9+F"@T$73LF5:W;5!WQHZO R'ULU\L]H\1IV3\3E(=)_?M#B]U -=O*9]6$./1>]D-E=UHLNPS<&;].EJ#MZQ9I'AMUS=,IS*SL\ M:[4*Q%-]Z/(AL,WE#ULHTX1CL'Q="KLCC9%1]BPNXYNF6YEBX/6%YBXW=G?=RS: MS[TP"D1!^W 1K6GPM+:\6*IWOOHBQ^Y'>I7! M8#5\ZE(\PBH^O7\I*;S)_]_>M?6VC6/AO\*G10NDNYA]G%TLX#A.)X,T"1RW M?2@&"]FF8^W(DE>7M-E?OR1UMTF*DDCQ,.G+3).0YZ9S/I*'Y"&Z;-2($1PT M=:(D#W ;OHIQLET 8_(O>,;^S8Z2_ \QS2#9YOTFQTB!"> .D6V!@9;?@?(Y M7DFQYTZSY;Q+-!2: B^9M@4V6FE[9 W7-7Z7( M?+]V3"\JL5B$=9X$;Q;9A9]C&G _8_\F\5UL!;@0?R;S*T5Y_=^FHOCJL;Y* M0/5]Y!F8:&]V=.C_ 2?>!H'^0K7E'1+SC_I"4N95[ZN8_Y2-[0+^4^7H]*GR M5_1>PEOX$*]B3M'SU7++J=Z?LPO]G]+&)M+/>89.&\&=;/34R,A01YBM(Q@[ M5>8_J?@9B3<_TK7SR_!&NO[RO=F1;N"GM+'!]G.DTVDCN"-=3XU>WT@W]2?] M\G-))T^QT\<9X(UR/85[LT/^FI.WZ:N/*9FS MS,+M+>$1_)[%?K+U-W1N)?7:[E[ _5=1[=::3=X%L$^K2C[4NQE]5L6$<4!- M%A!\_'P NO,.N-?,M]$!N&=W*RN?3I2M ?NS@M ZIQ07B)*'.!^FZ M..G*?>;&=7OGW-G@'+ET:/LSY9LPQ7'H!4O\C,,,/^+XV=_@F^6C=/;1W0N\ M8RNIW?9M:1?0[JTF^7 /S^FC@@$J.*!WA,=["/./N1?XNR@.?>\Z]L+-WD]H MM%]&7KR5^KE*/^">KJQZT]<[.P'V=G79A[^V7G) %0N&[XP)!'^GZ?8\Q1\$ MT7=:BN7RY0KO^!_]36-P6EX11G/"T$\3[AQ$I3U0+U16E3IB9V/+OKB--FSKF\%; MWV\TVBV7^$B$ICOOJ#'M6/[%.QS_<852XJN;G-]?C9PMX 6B>:4YFM*H+)A MF&#EB_K;*$FNB8:("KS ).RAT(:0YB*$6@0*#1 M7.=IID'D ]L.K0:>TQJA QVBJC9-%J1V7M'N;]'U.-1+0"J)4!K)@*J,X$X MN4 BN\%&L6ORH_\DSW8/)/CZ,.S$6",AK*#VNA#L5"D+ %:(X Q^Z3+9./@2 M6&U"]%KL=GB3^L^U;99>BI>8QK(?^'G>([W&6Z)(0'?(,R+)2ZNQX*/HH0P< MSS2:KPEL&L@"1CB=VHV%.@VRV,$\"$:L9&C &J*445N."^2EJ! %5;*<=KI M#YA8*4PMPF$!V.$3Q?.Y%\0_@T:N@;C-\)P(/YQ[JRW8>.=T MAW&N0(OJ^5PI[#%+4Z27]FMSOR<@6=&+T*(/'N%C$L<]AC#?14^C_CVE]B4.\\VE]NB+U](!# M+Z#JS\(M._6,DW2VV<09%KTK,8XBBG&G6J.#02\\0.BG8(YY31N[B@_1[MHIB^Q9Z''5T0AB@+ MMS@^YN6+:"\_#]>4[EBS,#U601OC@"YM41HAC\T]CE'BLV75)O#\ _D+(4^Y M;HI6:US]Q0]1NF=D"9DTB\.)SUY"^#2Z!)EV> %COE%CS*(,AE(@>9/$^NLVG M2ZR9X!(_^6%HV@I#5Q@FD5W^\>UC]FKOI5^C+-C>'([>)JV.R,@/RPTFYB;B M*QI)84#HH.3>>*&JD*'AI(,]*)@Q;2HA"I&5BYX],I=88AXA:+M[2(O4).I+U.!6&=J'# MSH?38:>DM\Z7ARC98YQ"&8ML?6PC4D$:TVP95L&4QVS]'Q*E MJ^@Z"X+.\[>Z:3LY) XT8?=0V).PLT/@4#V-K&7.3U*A))>'CEL[(A'O]"R4 M 69J4VJ5!M* 8M4G3Q=0G*):A3QH%2$J$>\\L\U"H1D1-RSOGA*IB[W60BE! MDJ^[%]#QH:?:K1*A\BZ L]>JDH]-4W?PL9./-JU\01_ 781"Q6J*K13)RIV! M!W0_(_ N*,A[ @[OG@KHNJX@9V?WUH)A4Y1L (S;>5&:ON.VN!?P,%=4FS=N M"[H #FQ5R76-VP(^=L=M4\J/&+<%F9M"U ITOOKI?A\%] @,;T$C;PXT#E45 MK5(FDK;0LR JH@_UOH)V(U./OM?D)\Y1F%2TBX&%3())=26:V5@1G&C:;T70 MU1DH1 TS G=%(.T)>.+04P%M*P(I.\LK K.F + BJ,O%M>JY"30>5B=2-P_@ M$&+$I-SGXW0P Q(9O344SI7DU0VJ^E",6Q9-C*IRD:R$R9Q].PG1"IXX-AZ MIK91<;B?M254W 2X+K,H0)B(A'L@U:F)(1@2\04%-,:,DS_P#!P^[J)PB[?9 M)O77 2Z@]G'OQ?B2Z+"=1P?Z&]9R'B6B]98NVFY"S3 3*@!0/\+NP=) _0R! M53]I0$'8Q(9\3*/-GVC3(%O6>H"';ZOJG:M^)FWU J@U(.J>_@T1#E#4-5#%%"H-:4)%])"%?JA(LY;C"TW2&[C;8AJRH==XT^_Y3=YC M%*?LRF-U0JFJ25G85</J5^'338H//;>3123+'BO>^>T/0T";N]JC$[J;B&&VIF MD6*'G(1+^*&HB78,D?,%@B.&C5,28KGC+7[&071D99#ISQ&=]A9',%V#F.(T MUS@SUT1>!\"<&&4 OA04W(>74T4F0I>"+6APT66:QH%*%T"D_%WU="/;W*8% MMEGY:B](RE_U,&\OH@Z"3'^C=8&..D7'0&B 8B9 25T,." UH>E*@JB^U,:* M99^ ;T)_SZGI?GKDHN'7*3X;C]FQMN+H3 MS.%Z"P=V9C>]F5D]@0_TW]M650%(,,J>R%8U:MG8-2AK*2D%(];2)3AI"ZP= M$!AY,R$=I5[0*Z3UJ+JB?#F365"3FSNL/#G)F[H6D0T%I?%(VKD4C4UQML 2%$9V-=P4%QZJ4.[D3L1*E!;'+Z>%&%,L$U^+H M@9&'*04:L*!ZB.EYCO3E@8B?DGGOXK^9S[9A.]('O0@!=>;QQN'E#]6I.)1= M'*#4^!MI6UYHO-!GCO,!X2S!2-IY'=G%8R'W!3I2R2_RFVNE\/:RCA,:N/72 M88-O_NIA@DK.B+%&A#>JF)NL^Z62M9S03)496AXRN#Y/+VRNC_#1Q.K2?]JG MT2Y+<*ZSNHTZZ;B'S&JFZ0!F.1$W<5E1)V.P/ ",&T=)JW:Z[W87<.O CU&T_>X' 1F:;DA(AT]T^Y,+XV/H (7Q MT:;I7D!*B#BWIE3116/:2(WSU#,^>R:J"<(!D^JN8<,&'083='$$(F0*\]" MU]Z!P)>*K2O&>4R,3AE4,\5&M->92-,4Q;1XU29Z"ML5LA*B?LP.S"QQD@5T M0G--8J%XUO2!'?(CK1^BQ&>E:P3&U$8<.#+H-6(30_10!HPVFA4;4";G#%ZP=Z@H@$V<.^!&"DV@WIBTJ\)\SH,.!CQ M!'1?"]YUJ3^+>2$YNPJ .\RJ@XA@V[H&D%FT-8>88V:R^5 31 MUHP+!=6\OBJF6SJ!V%X3HNDL3/VM'V2TGNO"6;H,T MJFFC;Y3Z'^" X,X[X*OHX/FBTAH*W9P,R7/%N^.J[N-<<'!$U^SA%XCR0-]R M+O \71D>N \.Z*;M9,P,-*'& 0O$$P0&AR9=#Q 0*3Y4,9K4H] [.D6EC)+W M%@/T+CNL<7R_6[)G$-BD'#_1TUFB*:6T _!0ZE:V&1_BUH"=7D'HL8M8,0L[ MZ3R#*N>DZ0JR)HY$VHXX)3O/DC0ZX'CV"5.&O!-IYTV !IM,H>K8ZLG?H9]( M%8D[//F[B^)#?L>+'L(FLS3V3$R$-@4G-)OX9*AN%>>5(NA;3G+0/+0C8"Z[ M ^;2J8"Y[ B82[<"YE1<@P%S:2E@=*E8!9MZMOX -'K.A:)S87>9W KW8'X"[2RU\TUWF=X#=I2'<8(SY[>9N-K&;_/X@T(?] ;B; MU,(WW>3W!\!NTA!NJ)O\/GN8W4WL)JNO GW8'X"[22U\TTU67P&[24.XP>7] M9C=?9W<7Z&%Y_^7F;KY ]]=H,,(()OI+G*3WN]4>?XWB8"N>[0O: ?6;3M6J M>3^O$?3)OU1F_2L ^MX]T8.5TZ#__DZY3KP8,*+RLJ$4HZMO83!B#Y]X=7XQ M2EIX@=,,:"QV*=;:I3]I Q#?.T4=O2-_0MC2/KQN]6ZC\.E#X#_C;;-"IM6J M!;'_[-&#/#=ADL8,_B]_9(XJJG; M/X-E>+K*1RTYVE'0#[LYK<0QVZ?$BQ)-]P:_OS^NO\,<=2I*3+ MG_F-X3NR1,D3#^:TA.VZ,H%'^"PE6[EJ L%7[^F#QF0%4)6\S&L@%8_/2#U7 ML2MP/^YC@*97J_0#[..]Q!]<&).]EMWD@G(VZ%W!Z#V$&*AG1Q_)A.@^K'_N MG*MQ.@#W]VYE^9/IT]: ?5M!Z/$3Z0M$B:,H1/7O0/CP;90DO7R8T\$9'Q8I MR_?AT]9.^+!0:!T^3(D#].'R:E"=>$E^P\&VTU;B?LYX=(?J?,<6='+"O[MD M'U]UM(.3K:?UA;@&%\33?LIULN?'7[P@H]4DZ#[!// 2654467O@ M\=VI:FO!+&H,.)Z[91Y\$9N]VATMZ03PF*YQ+ M+_&3SV&T3G#\3.^=WH3'+"5_)D[B!S[;=6_:2)JY-\C.E8 Q9&ANO&GFY4*X MFE)92[3;WZ'X%(7XY9,7_XG3ZRSNI2#UY&"7@;C[" M/*VJG/W) Z0,=H,OFGQB&JFJ,F5O6E7\FV5?H,07:N8#9,ORD$DZ0 ^5KJ4 M;8>$J#5HS^\4>H2#E[2!.7%CF5;]\SRHP>*N;T$:,.*JH,VR_FWT!M(@OECTL&79N#K65N2(-5T*BCTFX MD:%"P(4 Z:6'F3BQO_RM%&>+_X0!Q"_RXTS2'JY$@5A=KL^?-W?!PR52C_?G M"Y23OT", ?H%PNQG[B5[LK"A_Z/O<3][02NZK_QD$T0TZ@6FZ],?N*OW-D73 M\94[ PZ#_CJ,W8A4YFAD0Y*LM]>1?$MR.I/D^;-#GC\[9&GF!6A'TV@V2UX_ M>WY $]W74?SH!8W2PU=XG=8_"8S7HSMP:.AKB%9M:L6^@(&IC<4&5H2U8 MF,P@C_LH3C^D.#X@/WS&2:J]7"]!MA-T8SQ7A.5-S;%[0C">&E ,T&2FNM;6 M8%+0;^9KT&QPL8@]1AZKGMO M.F@*DC!-D1J0=-GSZQ?@AR1*! B0H C CO.>'I<-@,A\'GPE$IE__S^O&Z?U M I //?-3Z/]D^3:$G_[/__Z__Z^__S\__?0_M].' MUL*SPPUP@Y:-@!6 1>L'#-:MN;?=6F[K$2 $':=UB^!B!5JMFY^[/W^YN.K\ M?-G]TKYH_?13TM*MY>.:GMN*FNS\W-[]I9^TZKE_:UW^TOZE<]'IM&[^UF[C M_VM-'G?E'G$GE["HH /=/_]&_O.,/]C"PKK^WUY]^(]/ZR#8_NV77W[\^/'S MC\N?/;3"]2_:O_S/X\/,7H.-]1-T_#95A!IZJ#ZZS-R MT@8N?]E]BUJ"_.NGM-A/Y%<_M3L_7;9_?O47GY(NDC]S?"0M3OX*&>4/9(G+ MG[2?Z*!]> *5BVHM_]+7C;@G]\\N%FZY"VHM^M$5C^ MX]-VL?2Q+)UVNQ-+\O_>)31)_[?G+@9N (.WH;OTT";2XZ<6:?]I.LST!;?U ML^UM?B%_^X6OF4@L+H7]4E6N68#I27K2]US?<^""L/767>_],?+OK?9(K &K@]?P(/GEY:XH%&59)X% MGOWGVG,6>#48_"?$0TR&T'FMJBVU'*J+?4,EC?0M?WWO>#_D<'[?V!EEO(.^ M[7A^B,#("T#[#O@V@ENR5(R7MZ$/7>#[>"&9A9N-A=XP0'#EXLV$;>'UQ;:] M$"\P[FJ"Y;$AX%&#Y.\UIJG.%+P -P3"(N\K-M;WRUF ,.]6T,:#*W#Q4%O# M;6^%0$3%[WB/VEN\8(4#G^PAIL A5"5%W^;( MGJ'+O2_C:*0QF:XGR-L"K&.R6\03[I9@(2P4I97&I.I^];S%#WRZPOT9NGA# MOX+/#NCY/M^>4Z2QQF3\_ !PL^+B[.HUUO,OF/H;&$3K'M8I7A#)I(X/TV66 M$'9CCG*M< 'QG\5%Y6^Y$>FK'6Q*':AD?5+7T^? LO(R&U/_3%!6;-'V==WOCBR$,&U?\,8_ ML"#7_5O-W]=5DSW'\7Z0Z_9[#]UYX7.P#)VDE-^0SNTQU2>V/<9H>!VN 5%-WME-JV0@K#VG.5M62 M6N9N4/P#2MI0*Q-!K'$E==!?XW^"H=O'W7W#._;>AFS=Q\NT2AVJX?ZFDAH[ M_G<=&J)^0TF-]%PWM!R,(@K@?Y.M\7"!AS\^#Q*;T#DT5KH/3=]V5)Z$J.TT M+5GTW[[GEUYFJ.TT+=FC%80(!F_CY1@O>1:Q=$1_.-@<5919Y M*^AU6IK58 MXRKY)586G:M-Q>XWJQO/.9M53.X(JG%D%_7)H2E:>J*3T;:23:7BUQ33$K&^ MVSNCF>VM7/A?L)@ !+T%F=DEJXG_L4^JX7]1?>IEMZ:&E+L?!Z];X/HI:E)D+FI; M,0V0*0WO@QP837%R-4!I6PT-W($E0(AX&KQ6.TERMJJ&U$\NVJUA^!<).>7( M7M2V&AK8;W726_SQLAXNB'U)'6^UON78H9-L>086]P[KW\2==(G;&5@\6,_ ^52HQ;RV'(0R39$(<#='ZJ94V=/@C;K05M]HJ][X[$I#@XMF9OD1F6@^=:M7' M[45M^<#^>>6]_+( D(19;/_GBOSX4_QCI%#\SS_ZW@M>]9[Q9&;90=J:0[3[ MCT]'?_NE[KZD6IOC5H^ZOOW2_?+FX[+:[W8,.'O*AA[*= MM9"=MHU_/*%(%H:DQ"_;*/373_8:.COTE\C;G.@H^9+'V6,/+0#ZQZ?VIU;H MXWYXD779PL3&$L1'YX=8?FH/H^XYAZ/A# #%+@-3L/70,6=HQ?0"K+#G"7 = MS8"++W(&[@*OQJPAEBFG%W3%74^PN]0,N\CC&\8GN(*!=UQ4+P2Y>I^ >*4) MB/$>X!XZ8!1NG@'* >^X2%;LJV[[RQ<%0>/J=0+6M59@3<$*$IF)@_(F;[+, M*Z83:!P]3X#K:@4.*(U!S%->T3+UGTUO<6=!R9M72"55R0!.7/6J$\ MMUY3+]788:5@8J64UPE9$1$23+]HA6EOL4#D<6S\/_@D#]I4/'/*ZH0E;_<3 M'&]TQ+%/W'#1W/OA%J&X+ZDAA@6=3\_X%SI"&*T?8S1!W@N,20R8;<.%+0._RS'G@5 M]CA%2!=[#NXB!YH MQM\^PY.5!E_JX'3L5=3D'2Q0J3,F_P:D?/E2GFL[QB M>D#&W?,4.;TL*]^!X_S+Q<>9&;!\/-LOAKX?,BPKE/)9C5QWVUT5L107(055 M+]/*;YX38G6CR%2/?"J81^5T I&GZREX>ME3^B$B>HFOP\AB@54>TC',+ZX3 ME (2I#?Q>IE7AFX B/C$R]L*K$1>QN5$7G&=$!60($54+_-*-.GT23 W#[TQ MKW=WI73"K[CC*6RZ6%)BN68;RW'24%Y4V#*E=(*MN.,I;+J85V*Y!AN 5GAA M^(J\'\&:)&FU7/JHRRVM$XS\ J1PZF)_&=I+U"-.X1[J!23.91Q(S[%6.6C2 M"^L!IF#_4RQUL\>S_XS>E#KC\, 3R)IL^UA B+\T6X/5?@#Z7'I73"DF.KJ?@Z6*RZ6V NR!^S)1-3.;O M>H!5W.74IUX7*TQB?[B'OFTYOP,+T=]$T(KJ 9U0[U,4=;&\I"\&8NGBEQ_W M^'=Y!WEJ63UP%.M^"J0NMIBL=(2F?##N2NH((KOS*82ZV&62DA"<=)C2 M$EH!Q>QT"I54N\G??SF.#% A7D#D&4QF[[[G^IX#%R08P:WED%!GLS4 P6ZY M*H@6T+X@T0)VS>&?^^/1;/PPO.O-!W>MV]Y#;]0?M&;?!H/Y[-,Y0@4L+?\Y M:C#T?UI9UC:BZ"_ "?ST-Q%3?[IH_Y0$%DE^_<=.BO%R%^ECXL6O-RE1!?BJ M5!AKY:5)DBS$6V9*]YEEE1F/(KB082HNE3*A"\K#W;?\-0F0CO^'Q I_L1Q M0J8':7:-**@/!7ZNNLK001S>4VJ4E]@ JLS6'@KF .\THBC'4=PG"C/RBAI% M!&X!E0F246%%2!*=3H$-,.6?'3 "0;ZW#D\5HW@@+*BDP!O!2=2J,Y-B@L#6 M@HLDY#6>$Z.8>!E54KC!4=,HBI255YGH'I+VDCQ[2*. YX:XZM$\.(D&=_;) M($[>1Y(@!)FTAH ^"]"K&,4"84&5B3=2G@_9K%-3N%KC,]B3'P<'I1""62>K MJ"_=]E5;7T:(2ZI,<)+RE$B3[U'03_]L%-!,H90)3E(>TY.DI2 8O-I.2'Q0 M"O#FJ6H4%TH+K$SPD_(\25-@[#)E[%1 80>]@E&<$!135A"5QL^.!P>@D>?: MS.-!;EFC6, OH3HQ5ZH>"9EG0:/098@D*^Q*X\>_@[2R?/=&] K*8%_V\DA0 M-(/,PQ/KC=@_^0S#V<+*H%X21;I=F$-. VZ&TER84^!$*2!.M$=A0V$]\XA1 M3F0SI@D4"G"#6MX\3HB)JDSH=EGVP53N-S8AV)7,8T4)>0VX,NI[;J2D[S!8 MIPG). G"4S6KMIMNY[(AQUMI-"DM=9,!Z4^S=)'?L&6YA8Y#,H8.W<&K#7R? M)&>/LOCM<[0?$4-*F^8PICYU&'!EQ;TO*5JE=6:(H(R2KJ4:MU\D^Z_#-/9% M9DE6%?/X("RM 9=;E.U7L<&ZJ)YY]"@GL@$76Y'I_D!]?+<9N14,9(68K'7< M;FT1]$B0TFAKTO2VHG@_81X'BH23=:/5^!:"A.. L1LX>1^ -]EX.@2N3<>= M4<,\'H@**^UJK.FK[BA R]ISL#@^\?S#JV(4-WZ\C*.V3*PD;7;B%KS/)>T7 MW*%):%D9GI6];*M+!P:86"=I3R,=L5YQY93,**5]T6U?-VQ,K0OH4TKQ:L. M6[N#$%+,5WY'Q=XQ.;A4(>FNKO&EJ[=8P+CK$POBLW_?VL+ HCET4DJ_8[*( M:,2 !6>.\.$_1&^%\\EIP7=,$DYE5+W8NXGYX8)5Y'30($VF(+"@"Q8#"[GD MJJ%GV^$FC'PA[L 2VI"VWRVN^(YI5%(YRN2DKF2[3R6-=$CBTB*P!JX/7T!L ML'[P?.)3/5[.K5>Z.5^DE7?,-!F:,N"Z\%3AW,?T=TP>3F68P:. MFMJ3HJR,!IBV3C(+%6X5,(H+()D'G4$TG(C-W")326>5TNIWVM>; ,^0R MP-U=()D:3Q7SX"\2S@!W]LQE="PUSQU^7%)[Q'EEDN6H[IS7E+S[I3]>9B[M MR'4=IS&YP\[:,)OC_WD_^EQ,AU\&XQFP]\&K8?Q3/4\#O'MY4XZ MB@&96JJA>\BD'W-BZ:3>01X64F:@%N@[>W%8*(%ZEEP?!0= XG\=@XA_1<+# M+D([P"<,@%Z@#7JO\'C2I153!D@!E/;0"DE%!??<.$77CG%G_3MO8\'C!$7, MLLH@)J3\7,PXA9,$'"5>0 \W]19 VW\$Y+[Y"(J\(BHBP*G*/0S<@M6K_:$; M@!4B>XO?(7 64VNSI>- +6P.(F(B4N^5FMU'X$TF&.(?J9E=3@HJ V"I94A0 M+@-N Y.0'D7ORXZ+J0LS&[%3J+DD4V\[61;H>ZRUO*@O>/L=AY\F(4KQ_RWH M[K$E6E*.+ERH4\E2670#^-3W_&AE3#+9%$T@M.+*,:/T1"(DH0$K!Y%W%Q** M@?JN3%81E]U.I]LLU$*(Y0/.%LZ 83[%J&"-DCR'=UA2QXNRU20:HRX0C#JF ML4!<6 /&_@Q$H>&^ A<@R\&B]Q8;Z$*BN "^ #8]^"J;QI,*4C?I:D:SM6P\ M%,#_1OH?+WOV?T(8I:[(I#7)M<#P5#0%^XH22W(RRX^!U);$A.^X.7#G_7"' M;N00,UX^>.[J 5-Z$4GV#3B+>P\]G4P'@K6-XD1%L65E"I1##$EKRLASO31T M7'P9Q%Y&J.5-84HY0:OZG*GS.'S_?C0];T,WQ#I( @QZKG\+EAX"!X$H!Z]8 ML5@#T+706W1X(W'FR$G=BU9?8I3%^-,.J35^T312GEM5IKP"W>DCT?LMW@\N MJ6$.**7-)!.?F)*\ZUX >O::#:DS L%^%-$6N<,RIL%>+)PD-[K&1SU/<(1> M$"#X' ;DFFKNQ4]O"XRJ59M5CE"EC:^U:,* )UXTO>##!8 K-WX,:[_-D>7Z M6 T$:7<1_>7QS7.B'+T6= F 8W<&[!#%(2@0]/&?[O _W=4$ MX//THB#.4%V?^Q@#9]"G 59\'ECD3?>CK#E(J(WW2K+J2I)UH:#4 M'2I%+VK3@0?&ER(/BV7S<_]>W\HH [P C@SPN46L]\WE05B2@X6&_NR255Y=A+B5 M?>1D)RQMK>_*A<<@)6-,+KI<=8Q"N+S$:CVUS<2986*;4])(1'GEI!JWE69RT3J9_74[78^=S3CA1R1U7JS?(YY9;#9.MX; '%Z M@!#9:\LG2G)+333TUO1G6!T*,"#W!FO,4;4AQBUV6\8SJX3X!J3N8 ZS^%HD MDLH?O )D0Y_JX";>D/&,$I7=@$0@K+$E@4WT=HPGDZ#H!N0788ZJ*? #!.T@ MR<'5^V&AQ5=$?R-=KC'C655&?@/2EJ1)IB$)H#.W7DE\SG7\[ O_(G5D!PMB MN0:N'R',M N*-640K61)7TN*E+,[8Z3/8_&(BJZUYEXU>^0).-<$D".QTLD6\,03! MVN/B!*6JH>00D39E26FSMCJATP[FU;E'<9'+GU8/CR%3@/7FPP DV2_B?>44 MV-[*A7Q+6YU?SX+XN7MYU5 V49G+X-D5EK)>YU36-;X/UYE6HD*F5-#:F"[' MYT-GV/E$2\&N:N&.K_X';J/KG327#ZUQYY,M!;ZJ+3H?^*:?&L8O.=<@@+;E M\&8RO;RXKO3PL/67[&?_^NGC)6*EZ/(\^Z&]U9/\UW)M$(6CY''LD-E^=HQ] MZ78Z#;U^%G[2>!Y52/(M#$Y,,6=.DFSYZWO'^\$[I5P))4?NS;ZU[A_&WU5/ MBGS L9U"BN>+G*)-!=PE79D@[P5BS&[?GGR2B&&.NBC>D MXBQ!1? H1J\,40UX$XU5L(0!(U;SOH R:$M&\90>!3)+@IWF*'K5O'F-A+#' MFHWVZ7./&%M<&SH@$]IZ[LF9=NK^K#*T%9VD&E&, 0]D[@#NJPTC2/'/#DCB M A^F+*)PD:>J,GQJE">G="VM.P-647$'C(*;WP]:E="6I+FK2A*-*HGECG=@ M C4_R),E3U75R0HQG/O>H]/4?5)L]R 1P],TS\3@P;$LI /' H\YMW)4_R)4SO573 M7M471KE>(H$D;5Z3F70BQ8(CS2>U_ ?7 M\KDFIK"J#Y,*9K>F+'18<.(&".Y _+]8L40M>^U&\SU> QZ@]0R=2,\8G0(# M7,56LP!<=7'?];"OU2&W :HJ0Y.^>ZJ""0);"R[2?40RHV-51PCD'ARJ-?9!OJK*JFICDT!'RE$T1Y6I M%A_(OZA%4DB>4X^_QMF4AI!)WJH>Z):;6/0F/CA6 M3D62[&0*T@T/-A26H]EIU0]ZB:G&@(@]I[*G%VOD@7T_] -O U"J"-J3&<%6 M/GA66DLU) .KY;S(E&P*7H ;@N39Z7]/ A5(:/&=4:PNC4D*]E.#$U#1P9F^ M(HI6SRKFNMMIW[P[*HFJQX1X/OP.\96?@+PSBDE24.5(/JJD'Z?H8>B^ %_& MHR-&0\HP3]*C(U%1)7F&-?SHR 9@X=]C/3Y:08@BJ:,[B;?(TP /T[[E..0M M]-I# =[[;6(U17^EOU2JTJHRO)+,EU,BUJ&HVA[$GIN:B0KF7N(P'&E@SD= MGKKOB&:EU:' )6-==,)JQGN%X(V$Z [P.",/V;@"?$[RHX!:!(N"N)PB39A/-VE: M,=0YGU_AE0^+6;5VN^W++X:2K:).9-TS*FJ0N(>NY=H2#!*,AI3AFB2#A*BH M!B0K.CP1BV3]**RG##"L[*DY1=^QRRARV] )))T(R@I MN4+9YMX1O61J2 $[@60>8OFG8)LDB<.;!&^S28)M%S".7O']<4M0%^;X(1_. MW6G$3"X2%=5[1QPJI0I)&VQIB8G/?F2K?%3+JO5SMW.IINVI.L,JZL04<\!@ MN00V/@8Y=HAOQ_8NY]L9QXIY!FDHNL]0#0?,?>SUA05-<&^&!7TF&

74 M7RO1["%:,8*4H73>3KR?8:. 7F7YC#>]#"FPX#0^W7V,D1H7D:IN[G&ZDUE@ MH>!CG#2)J)JAU+4?*&UYCOU*I(2JI,Z"FT\I;2NS!(A>AM8GO2E/>1,E'(N. M)PZ$WO @C;*2,KA56%<9[M3/B7S^E=.0I#M4)>:WK#8I9,H6RNJ$!!!L.-7= M.5G#H0H%HJ*KL/CIODM\9\1N7-&2(CDJ,&QFX7;K1%LARTFW0D-WZ:%-3![V MKI"SMC)D%=WW59'/ $ON+G8S\$EV1 H)CDHI [8,$$\IP2.M 8YKV??QJ7L# MA0'YA0TG@H#0!GBK[:)KIY[C[F)G_XEB?A=Y3O/6SRKPIMNYNM)CK:@FH:1+ MC6;O_:)L)E&XV 4,0@S5,([%N+@-@Y$7_ X"QC+"6UT9@L@!/F]W6T$132X] MU-36+\25B?C&37:>-\K_BK%$ M.Z>^)"U]^H WR/=E[3M2%*.7=/E):[)41I;<_2$C6VY"HMS1'M7J^9CR5 MSZFW.D(!_?V70Q >L'CQKX]_FXA^@@->>7[&Q^>X96)OY<BWPYF_>EP,A^.1ZWQ?>OV:38<#6:S5F]T MUYH]/3[VIK^3W\^&7T?#^V&_-YJW>OW^^&DT'XZ^MB;CAV%_.)CA3VXH ME?3H&8/^J9$\WB>:*\K S:C0C&4"K2PWR8[8]UP?]VIA)>GM)@<\)+N9:*A: MSNXHY^^1GV..W#KTAPFR/Y,9HY<7W?95PQ$\BYF0L7:<0QVUQ8FJ<=[J))%' M.2>@#F4"ZN ?IH/?!J.G@>(S2"(O.13D160MF$ZX:S=TP\SL7=&6"AP\:?7<-M;(1#-=43VZ&@=X!UC= T9/38E M1=^B(S76S^$5=#X:3&??AI-6[^MT,'@< MX,W)]^'\6ZMW]QO>J QF\V@;,QT\X"IW487?6[C^:-;KDPV/ZML6FAH+9QMV MM3\:LR!0.L:_/Q%H0<'IIAB6O)FFFL0Z3C97Z4$('Q"?\<;J, ! P=1Q19DZ MKO /N[--?_QX.QSUR!2@^ R0HXBBT<^J\L?GAD9^3J?X!SU?9>7&>Q$0IV.] M@J Z#O-KUBU'P3B_IHSS:_S#9#J>#,A23Q;_P:]/PPG9&2@^TJGQ%PN&.T>] MID(CY/>+?]R+-*'(B;&WT=WCX,6KW9;#!7_03 4,U>VH(90JB- M/ZX;FB^X>EDT8X@UDAU![>YET^%7A9$ZG4$D:$#'.>1S= /*.UU\IDP7G_$/ M#X/>3/G[C%C:@G%_7*B18?U 8OR"[$6U7S2,V964&[;Y:!R.RA("Z3@*OY"P M33#8)LK@$=IY";*.8;"4Z)OTJ./WOGL8*9 MXX8R<]Q$EP;C_K^^C1_N!M-99!&8_Z[X?'&J!B),T<.D@DK-O+4B[CZ93A'W MEIT/T"XS0,&,(-J,SYX'V!>LI? V;_AQ[!NXFE)L=2F!\M%NH)KN6TT3[X%DBY^Q =84DOQZ.\!%CT)KW_D?Y M\\1.V_.<"5A7EQC0'1KEO;$W>W[<[(Q \>#Z)BAAM93C'+#>>MA/)NU)H-I:_:M-U7=FW!@(1N/.U0T;*GE ML[SN=-LW#<+W^ M_A,^H3_BP4O,>E\'XZ_3WN3;L(\7Y/OQ]%$'1YTI]/\DAIHGUP:(/-7BR*M5 M4*>9TSI8D5WG%&P]%,3A8CB79HZ:RHUV+M0R1_*20FHY]*]VCQJ&+E9)F F& M43#<:7YX;>*(=S\<]4;]8>\!#_#9?/H4F?05'^#W%D11P+F]3$7CFU6EL:4[ MKU-%0YM91[E!7:3VTU$M+I^D\9P7"JO.$7T] PX@T<%^#2V$)Q/G;3?$[ZS M>G*M< &#@^','N0T)[PV\<*;#1X&?>)V_^M3;SH?3!]^/QCW=[UYK_67IU'O MZ6Z(R_Q5\<%_JJZ##1#W"5RXE48F"&8OBV8*OLK*31DE\3V<0RI(KMOFH-J; M9:&WR_C8?]$YGF/D/%EN_27MB>JSC\37RXT]_;FU?.B/ET<]>XO_6_@ @*NR M/ MU^21+.DZ.7+W<:]A0'ZB7N51:VB/N:ALD@+WR(QMEA.)./),\%" -R&;.'!, M9"W@F>5E-*DM*VH3OHY .&>>-^;(6@"LB'&P!BA1J#\%-L!*>G9 K 7*#,)5 M5UO65)=24@+5)NE!?2S%MZGDK:X]22H)*BE32Y,\83R).?XW#,_\Y;!#ZQF/FJ4:DM[TLB36E:BPV:M)WXP7L[P ML9!S/J%7T)X9@J*E\.ML%DT' TG5M!\/49A\GWT$YJBI/2'*RI@R0V>SZ@PX MN-'55^ "9)$-5V^Q@2[T(]/B"TB4P#EIE&M,>_Y(%#NE5".&6IEO]4Y"M5M?[[6C$R29$Z9I+/M=O>8@6_ZH177GA-" M@J7 ZVR5/7:)Y\._H);V-"@C7\H&G6VO]QX"<.7V21XGU\Z&/747T3^=.#(B M'T]*MZ<]@^1*GG)+9Z/L'4#P)=JF<9*'7D%[=@B*EL*OLZ$U+[PJ6U!U],LM2?3&>3Z C\.% 2\ES\HPVX'8[* M-J,]4Z0(G!)(JE%5W11;<^)(P^>L?GG1OKBL.=%6ZR]QA]Z3SWI3D>PB31=- M(ME"V1%SW>U\5M<@FAMVCD.%S\$R=%*?.":4 M@K65PYBC>WN@90BK8+IEJI-;ZEV_>/(!EO*!')&*V5"A.0/H(5OZ.MXPG"&Y MG=#2WZ$L_00- MZ[[S&7UFK\$B=,"!)FN2:3?^Y">>$ MYO]KROQ/3SNGRPI06_ZYCXU^G5GDWOT6GZJATN\_U65#JVL)()" M,WR7,L,7IQ+49:8_?T[!*UU7@&ZW<]'PF!?6M-AJD$AHRFJPW]FF>N,_!9S4 M4(X+'$"R-OM\ AH02FHO\CUT80#(/47^JL#/#NZ63&---<$-"%_%4$!O0\) M_S=",WDKQ$6K*DV:P2_I&I ;)FN+H(=@\!;-@XW.81YK -Z' 5G]2[)0YB?, M8&7M&JDC*E?]:96%#E"?*0>H?7)E70Y*);(LZVOL4F#(GJKR79]E(G40OVXN M;"FEE0.YU+PL(IP!YY>\=.$/T'J&#MZ2/%IX^<'_R\D*X99,88PH$V MR ^80AXGV#M/1-M;N?"_6*T 06\1/7/D9ZKD[YE&VG.HQP #<-XH/]30X2CO MV0%\X=V=5V_8-$9*U4.3F1/.1+TIP'L@2#*Z13IZZO$5"2X5 BWJ!QS.+K'6A;D*,"L M\]UR".7%/D- MR&:W"S>U-P2G45@*R<11U1#:E)6TCGQV=9ZD.R,0/'C^+B"PT&F:%FND38*- MC ;SUL-X-FM-!M/6[%MOJDW,@R04':EIQ?9^;?.FV+QL.*V!4&O*T86C>\RC367AC3H^]]P +HCH^+ W S;Q M4<([\,&K[81X&8BC_9 D6,EMW+'V^$DGZT.F\;%6O>CF2G:Y"R?E+KX";X6L M[1K:0W?IH8UPY)SV)6W/0G[=?YK-QX]XOT(>UGX=C+].>Y-OPWYK.+H?3Q^U MBJ1#\KB3(_03WK*BP()N4!S[E%E'W\L!!>:#0LU^[&FBB2^)^'7[]FC]VT/I MP/=OWZ9@2]ZYN*L96$6!H@6W-V4;5HY)%5<6J7HP:M-S$,MP@!X""WG5)7QC\6)&\_8!=-XWI#&ZK@OJ?,@ M<'4/74,7;QS"O?+%._FGQ8VLTWB9MX/1[U1?]A[P-O]V7SZ1**F:>,' M=&]!1&S5!PPJVNVSJGS8+BO,!D6*?==[_9URXFGL$<]L6#^+L3LE=@Z$-Z#$ M^%;H6R_:C'(D*;5D2)%:LXAJ[>L9< #Q;_TUM!#FK_.V6P?NK,!Z]*0 N@V281-&>#AT%_/KAK_?K4F\X'TX??#Q:'N]Z\U_K+TZCW=#?$9?ZJ MRPIQJKT#$QJW]ZA@*_H:C6ZZG2\7S4X1)70MMK0D,IJRM.PWU$S-"5J.!-I2 MCD$@<""SI\*]'51?NB77>N-MQBVK?67Y+> MJ;YQ. :8C?N>:P.2\"9Z@07] M/V_?YOBCO5?H4V!FU% .-%E0!F:B7[&=#:&1MP'B9Z6[N6LDLJPQ> JK/ MXB4FFJ29DI(E?/[#VW4_=]JCE%(*!3&%[L$0D:U>&,8N2#M!1^&DD#D@\(FF MU@'@UG+(*\S9&I"'BW% .,;!CE9<&1 K'>B$I*.^758&1^81CEY!.2R%8.%# MM?ZE2A*N$P2V%EPD\6?([=DX6 ,\.2&BM=1OA;'3YV] "]RY9F-)LM?*!*Z] MYM1R5WFW()F_*8>;\-Z?+0HU!L!Y8<@=94=_50:*8JWF(*#T4'B$+MR$&RH* MF;^KAP.C7T?GX$(Y%,#">F5C"6K<)CPG*V7D4$HX='3V/X6.45!<_-A1'1V@!X4QQLSPQQOB?4(,EG84BN$6]#TG?J[76^).CL!K M,/\!G!?PB#^PSCT@G.G3^E.N<6TEY/VL^T1&SZK]Y(-EZ#S )>VY!D]5_9E6 M6=J$*5]T9TIZOM]E<$W#(U'H02UO#B?$1$R(<&,*$79QLJ)$2P4LR!8VCP(< M\J56KPOE-CS6%@:60\+!Q\$T 9IYR^ 'UAIU$>"OF-5%I]OY_$4SK"O*FN*N MO;F3DHT2(7(S0Q1Z^Y:?=#7ZSV_X=$C>3D9I*FGF49F?T)]X9]-*2E'Y]E=U M'ZGOTAC<>^C."Y\#/(;3)P2B[]8[];];WW6WM?10*^UP*^WQNWS-WE1HKJJO MV568C-AJ9=S/TL4QX#7[:9(3/\IU[P/T OR"A^U\E95C @>RIW2H(*M:7IIL M09A^N#Q5E4.[ G"B+&!H0"T.'&X%^GB:@E$B(/;C2D85S3!GP'2*N+#<:B$M MST4NC/J>'^#?)V\32E&(TM9[H92(^,9/13ME1"]D??7W0IX"B:LZJ-W$A''!"O=^H>XB M)WU?9"YC6.)*\G.+]T4#=Z&)37W@!W!#")Y>B6$UC9<3Y&%!@C>RT/\GA%L" MA:B%G1*C7*:%?=?Y5MS[5M3]EK=LI0*T+'?1VHGP+DWNUTT?W,N:W!68A]AJ M%3.Y9^<9G4WNZ>":.&1*.9@B"@/)J%(4!ICEJ*D< MT&4Q$T"_0'JUT$^=9G:]9P> =>@.-% M8A +#_LJA;N^P>A7TX%:3]GO0^3"((R$N8>OY"@5#$9<4&A)P1,I'J!X MD^@A4IJ; #]BS-%<= [$K+W>M$D &9"V^5B49H/$ELR'E!1K M-0>!IC8O=<,1774[;7VP*)1#K4V<-$>9!E&J9'/A ME,N BT3JOJCP!2A'377)P,95P Q3(*QFJ?\Z:;3]-$]>6^RJID-)XD>>2$P' MOPU&3X-,%KZV-M"MD;=?0%DO8 M5UA/?:0+<#I%NIS,:N%]CJ1]*J M:Z(NEE*M8_4YDO:I@&\IJ'@0YY!;K1$M M-[6;FMAR@)*SW^86MGDKY6ZZVJ\QED.Y3*&6SM^7QO M23BFP]Y2\[U1RRH#FS@"1^@)2:C6+#KRW">V$\%!";40$]+ZZ319))=:.-62 MDTRWJ;*4=.\D)YD"6 K!PH>J-O-H8SG)%,5=:"JN*+M:3(BZCA<7FQMZ1@WS ML!855BTS@[3;>P6@++7T'=F$DI/QS N1#9C9A+(EU<6/#<4>0U'A M:L@FM$700S!XBUI5PU H,[60CJPH+:4IJ86HT>Y'(&#GGN"H:10_2@EK2A*B M3)SB6!7D^<@^&0^)UT4C"D]=@ZA26EQ3TA7E#98':#U#!R]^^]VOP+R24SNK MP6X7RZ\K82H(;$KF(Z8.DMW:%-C>RB7CJ@QS3AIY)P3BD[OQK$ERO2FG@!S* MX_#D2P]MR*E]_.S 580GVY>27=<-*QC$&3$934F!1!&[MR$Y@/[+ M6KHX:AK/CD)AZ\N4=,Z',QW1AS/Y641H#V^'Z( JBL$ #O& MC&@;63$_=SOM;N,83ON2J;%:3'/-U;5-S4]BK1"LV0VK8I+(T M4H-?_-DNT?!OK=4*@5@#NV< HC=J^5F#LC=JV4^1=#_)QS[NUS)W/]IF_OG2 M[70:GB $="QVOY;(IM[]FC#,Z>PV1Y;K+\G3GZ^>MV!=O0G45(X0')B>$J&L MH&I9Q JD8+XRYZJK'-AE<1-F $-^Q3B0]!]/3.,7@+!8^9:0PO*Z8 M->-Q&74Q8ZO_Z&J12RS-(KA?SLCK:+""]L1"@8N/[VNXW;F+D'/'_D)UYU9" MBKY%DU!L6/#%CMJ7E*COY ^FT][\\'78;\UZ4WGH\%T]FTX:?6^3@>#Q\%H MWOH^G']K]>Y^ZXWF@]D\RML['3S@*G=1A=];N/YHUNN3#+\SC0[E^7HM/(T7 M5?LXA)<^A/,A\O[.WC3-W+X=_H7I@,#;@'*L*+765Y17K:WZ89>9I^_3@LJA M61$8-M+U'Z]IKK0Y"_J]A_Y)C@D':4*)HRD)JCL']MKU'&_U-O.<,)*?X6(K MJ6VEJ*.+4CGVG/OR'U8W/.Z=&-9P6_POQI_VU*&!W+EEW14 MIP#?]S8;?(Z!EI._RZ>CS%?3$$@K"%MK*.OF3"T*0%F+J:5HU.FS,Y\%GOWG MT/=#L+@+4>PA +W%;(T5ZX_ C^A/=/AY*JM+"3:Z>;0H+6]MOA+GYDLD:ZR# M"<++$U9!]#L:16CE#6*%D(BF1 N<(,\&8.$3EP,B>^12M"1+(/%LQ^.$0HC" M>N80HYRHQL0)]/SH:6(:S?IP3T7A!JN*.;00EM*48( %3DI#UW;"!5Y5231- M_'^+N?5:SJ4LKR5S^"-+>%,"!E),QBN8>Q\0CTH1)1*HHM2FA IE1$ZEK M%:...1P1%[.VD( UWFA?W88^5HSOX\W9,W2CIG:!D,0NJJ\H%]57^(?;I]EP M-)C-6OWQX^UPU",7SIF02[K>HJ^C>F55%6]?OZXLN;KGA3"0%BA6Z>J\+^W # @1?\8'$0UN/7'LN&#=%U-):0%6L[./+(C%Y%1N6-61A M5 '9-7_)1=1,[0^.8YBV?+_K.W\<*3-%Q\E?0'OH**1+?"(26D\L:&4WJSZG:M-"X,P#_Y#+P [@A&VTR8^)9U0N#N=<' M*,";]\%FZWAO(#_Q<-FV]*>-?/$;O^7GYTMR6)-)&Y$FS65/92TT?M%/(1$) MA_ #.DYOB9N>A,A>6S[ TI+9DWC +/X=^D&TF :;O8KY$'G MGU?V"2^'"RP<7$*RZ$8YF_UT,>ZYB]2M 0(?_RW<@,5=(M;<>CWX8ZJXR-=W MKS/.&>D\GT\T_G!)'94ZBN_E2L+JZDM(0O M #U["G&'=KB)[T03*WOD[BQX1CQMP!P65919R]2%>?YU]Q9$OUE."/SQDF/Z MWE_;//E@&3H/\ 4(QI"YHB1 9+CFD4ZVXEZ2P*UQ/UMI1UN6NV@==+65]#7Z M?; &K:3'K;C+K:C/[];)[ZKI6[.R3GX*S#9%BF5;P=NW.!N08_EY><%*M* <*S@P/B5&58'5NA)G2+.7A22'8KJU"+:B M'!&J8BK$$FZ-J,64)+@*/@#N0JI,X6I-\9OAK*43$[AQ.V5#&2VHA7[Z=B7: MD9'52Y-G'["L N&@L;<'J%=X*WH +4BEDS1]8" M;"ST)WE:'?V#R,]&G%GGG8 NKH-:,]NI\,Q' :Q+[>Q%A%-KKC[3,Q\%@!7! MB _A8GEU?.;3Z7;:7]2#JEC91S=8@O*JM6D>N@NPK&QA$6Q%.1Z4FHME"*W6 M!JM (@%K2XF6E".%#'R%6<.M&=6FD2@2EN]/,4Q8Q6N\TSP(=";#9Q>2/4K:?&'UB=P7-PGIGO=R'9B(;J]A-D?%I_VC:NK<;?=BDX*>^W M-^>8C0^^IC^?FU"0*6_6Z/;PU$-L2?/VX:EJ#KE*2_NQ^3P:6,Q3W5GF/F8/ MS*%LTTIK_-6<9._^ @=^6< M//+H*'C,35[ ^!/K+:KA+M*GIDEL^[H/NX4=R.)TV<5:?D>TE:BS&AZ_:;\A M[(<(14CN_I ^,LQ/=-U('_0? >JH3=([/E4V$)R:&6^CV%GNZ@%8N-_[/]0] MNPMT17^6*Z>]^EX::CSEY[\B/\,\G_]A_6G?L*Y2DFL?[D^F_L[+[ \Z5U10 MRN'*EU)RSIW-$GH7XR9/DR,@\')9QM?>/:%+*2@E=.4K*C:A-0QX, [6 (E& M/;A4(>I!U/-W&_O@LFDWN[*Q#Q28LHH4R_"MHPOT$?N@RK-Q!5C!@;'(33B? MP&KYT"H0^T !(E3%5(@EW!I1BREGB'UPA>5N*\L$;MQ.V5!&"VJA7\,36070 M+K4 B CW+I_(*@"L"$9\"!?+J^,3646A*E;VT9V'H+QJS:W2WC$I@&:I&953 M+C-3,IGUCDDE"K+95+-O )^>:GO'5*-=\GJ"\%86!6^)?-&CT9*9SJ\IF-@--8^+=_7 ._&?H1,;^D/H 5J/GH@"@@K5K#\[T< M#JGC3.QP6-5_I>O*/3U>"M;-*N>YVVJK$)>5%7H; -00LR,F==&ZK M2][O1 TP^?ELF :8]+.1M];NPQ_6&'U=M!28%KBT*V:-R8[]#VL,UX%7 2IP M8"K!&E/$#K6 EF^-40#HLIA)L,8HB7[?VVQ#O,=@FV\*2NN#<@$V>4=!?HG5 M0G;F+8,?6%-8_/3'@Y"K4:I&)M;<]0U&OYH.U'+%N@^1"X,P$N8>OI*?V 2@ M5S 8<4&AU0IV'CV07GO.8KC9(N^%(WL0HX;!((M*+2EW#,4L@X\"Q'W,0^10 MS7F54E3'0/#*RTT-BR8%/D[$WA%(@KB[DKH48*,I8,"@RVF 7;-GV^$FC)YZ'][KX9\= MD'/!1U42A3RRFL^JO]N]O.EH2K-:-5)UCKJ)">F"%>E?DW?O5+GIT3]85#\)PU'[7VCV(.'+\"K2DHWN7XNC>Q3]\'8_OO@\?'J)[UN%HWAM] M'=X^#%J]V6PPGVGI\,Y0X%X'!=>M@FWH>?&JP%Q0"BO>*]CL+*#S5H4\+=R M_<1)/L5^!DJCEL M*"VMK!<:)R8B=6+I30%9.+$B,L95@*"W:%/(4[*UK(8_=SN7NO))I@),R5>9 MW59Q9@]D5S*',"7DE)2=LG%>##=;"R*BM%/!XW'DD'%$6Z?X:IO#E"H"UY;6 ML:$+C?X:_Q,,W;Z%T%L\I89$+VD5T7N._/=D7/<<<5=:T&VEG6G%O2$1Q-/^ M?-R!T-KXHZW3P4>!^4-8N[Q'H.Q44?4(M(TV-GBR0X$*>6!3.\Y=B/ (C7== M1?3-J6(R&[CE-?3I/0?&P@:6S5-IJD M=JN"<&1)N5O*=YIS1@&:<& L9 KE$EBMM] *Y)SYTNVT=!P1_PUW!:XU]!KZ,0 ;KQR7&\$-: 6XF?(,F0L\F6TH%94A#FR M%F!CH3]]\J"8_(,H@8T]L\X[05Y":[',DH(A2,)Q MY!&_P2T(0&^% $?$"WJ%=X*PH (D!4_(A]M'P0'4^%_',.-?_3$E5W0Y9[/, MWY0#3^C452Q*K:LF/PRY0^OHK\I 4:S5' 2:VK=R8?"(9X1-N*&BD/F[>C@P M^I5%HE@.!;"P7ME8'/Y=9RP*Y5!K1S]T%V!9V> GV(HR^%8R^LD06JUM?H%$ M L:_$BTI1PH9^ JS1E-#8!38R :^/\4P8163W'H'L1^99PRNNED=W'0O;SXK MS8X*1X[R^E"+$])>5BF =JD%@E,N2?X$S88)BOVI&&?P[X"8.L&B]P*0M0)/ M/EB&S@-&W =AM3CR M-(DW]"[((R)[53=(=4*-,11"#S;&KO0NV$*34])V!Z]VSU[3+X^91P#^5\AB MS9C#'BF2U_;>JV*D$IZ]";V@_B +RD8-;ZW9(_.SAB/0D1>5I:7&QZZ^@#3D M?=]SW=!RCIY'+_ 'X1(2>T-5[_RK\M[Y<==:AWTCCST/>_?AP2_@5]Y4!D+6 MMOX V\'K%K@^&&$RS7\ YP4\>FZP+G&DYF@T,[B[%_A?79U>".0GQ)&O$5/B M](BIYG=@H?D/3PKQDK8^^,921.-IF)NC&?X^S0I=LK4/JK%58$G=8*MTR+7YPKE@= MLBQG"A-/RD6+^?2A22S)8G;6'"^?H[2C9=.Y?*:D<_F,?W@8]&8#/=.VQ#HI M,$AE"XG'C*#<9XRW@&C+747M/T#K&3HP>(L#P$6/6<%B[@T((GYDP8S*S0': MY%UZE&]-N3%]JN^C2Q#)LIIB$**HI1\BHG$*N=F5M.)&!9$D&6O.? 623.G1 M?TD""M$I/3]R969*C]IND<:-GM.;ND7(4I6HF6N8DH)9'K>[5Y=J#>/+UOK8\EHU. ML4?.W;NX^KL=(BT[@6@S6C)"BI &/+]@ZH'LF**#!CYF3 "R>??6Q M(279>IWS;KP?K2!$^&0Q7N8?.2 0]"SZ3(G[F=F2IU\E;D.[[R8;]8,O&[U? MOVIL0^#[ % .F!/K+0IG(J?[LA45A3;#:\2F&[[PBV8C1] M6#*:XI,CI N&-XYP.^8SARJE*2XV(MI@.->(-F,\"61@&)7@3)LH;5E'G6$)$UX]$7_\ 04;8BY3VC)!A%9$KQO-#'8 M?NE[FPV,LXSUW$7?BU*/ =>&I3WBOE \XKZ0O)[CQ\?A_'$PFL^BAZ#]\6@^ M''T=C/I#31WE&/KC?M@IU(9X;D_*Q3VYJ!HO)\A;A';PG2C>/1G-](+*#61A M)1[=X_-+:8J)-4TY.'YVX(H5I>BTH$GH"TK9N*F4-ISQ7_VUYRR2G6V<:W2\ MC.)#1G=QA7B7;L#9?Y)A@^DZ^$^(!TK)/>0-90]Y@W^8SGX?QW+7>..RVVE?-CO@BU5[.L(Y1#(@#NH< M?V&\[)$M\2J2EA&@/[>L@E@7XG8*-K]H:H7'/N@Q6I *P@O;$0H&+9[ UW-Y[Z)\>=(.#D.ZX M\S/+ ?X^+^#,=!G2UCOAS]>@<]'^$FU:3WI% MG\LYJFD"'4/S)\:<55]X@5@B)V/BEG*PK69*/#2S\>ZQ$(KOEVF"\)%<1GAN- M$]H-;5$][W/63NKP:MNI]NPMWBUW49)@4T)O)FO@WC;-73O/60#,;YD MJYI.%@YI37E>,$? \D/T%BDBWI*EB2)I]W_T&N;P0E1(68\)E*)#*G$2T8*L MM 7'%M[JAA)%5.*J3P>49$WD\Y1J@JC@$>"EEVLVH50UE"TBTDIZ='#*E!J= MQ=H7@\W6\=X N 4N6,)@XEANR3<'[0N*OUC[ O\T>)P\C'\?#%JW@]'@?CAO M31YZ(VU?&Y!8W3&;W<44!)@=A&HB;PUX6_BCK:T[V77W\LM5L[. J*(9]G*Z M@ 8XEY%A/[(V@.$X<%A$.9PY4,JQ5A1)I):K1]I=ICM MI!R.!6JG(X20Z)Z M[XC3%3+:$*0O#DBOZ/?#!564A86AXZ/;X#(2UGR5_P,+^39PP N(3=!#EP3T MPQL+-E8\]0P K+28DN[OF1XT%WS#BEK8!'R$9&OR>IXY_N+_CEU08M84:\$$ MS*L+W&0X6VHLB,C) M:W\W8\.5*6 'L7R4.\5),VCWGR-F6"Y"SPGB.UD>&H: %$%0:F7 '*2)H6! M#Q=@O(Q7\S89O6.4,(KQN(.G7E:<;K=SI1UNI<6D&N&;>.!&<#])1+8DI2BQ!3X <(V@%81+U_ M')HU02]R!ZH'K[5K#+X*BI'E%* M7=64%)1J)U,+:"(#^UJGN*9R0)?%3 #] NG56@-FWC+ 4QTX>('.G/^IY?5! MN@"?G/VBD,R*X2OK::$"B)::I#GE,B #6[21>69L=I*]SO/Q7F?PNH4H*AS[ M+[/.DS+:5Y=8;(Y03I*UJ<2H-XRL73AM$_YHO<)-N-F=L<)GWT8P4@/)CE?6 M[E'RNK%=_6F]:=<[=JHX=GI%G^,!"6.-A'-,FT4DA/3/CIR M#8S+_\1[9YZ 5FIXQ5J!@>>(N$+U;BH5@H7>FOXDK$,!C;^%%76N/DK5?;2) M2)RFDE_FSFUR6M:?374KPY1GM3L5 ?2"A<]?!$:>^P)\HB\RW_MSDECL\._D MB>#("WX'P138WLHEP0R*[GQE?T]_RC:C(E->^M:FM7CYN?=0\BM2CA:BXKR= M^*"\1+W5]HZYXE8AW5T/9I-)$N[AQ8(.N:# 8MV'08A &G$H;T,@4E]_0LD1 M.;6+7^@^*58^TR7JVX4HDFT1IWTG"\N7;N>RX90\YS>%"ZDF96QS5SFRS3FQ MV%,,-'K!)T%@DP 5(.=6IJ[/Z$_!LVHF9: 9US!E%!;]YS>\0]G9+*B1S"1^ M0G^:GDTK*46UC\1Y<)G4M[80[X.S@[5H8UBZG8Q:/^.]TDU;4[+)$3UEE/Z1 M/"7M4@[VV5])%MN:]XO'GS.'GV?54$IC_:.+EKX]C23VL9:6 ))A[P\Y?-7D M?NF#O*+*27FK?:S3J@HC3TP#RUW@#5 \_FMB[_CWJCG1%W M/XV7QS;9*#IZLO7:![^N8E<7_YHY[#VG@E(.:W]E%&DINO-E39=1 7.84B!3 M"FYS]R"*+*F#5X!LZ.]W(-%]T] -$'1]:+.2SI_CTX81L@EMI7[C9MSRE/%1 M3C3X6W2KFJKOWH(H4AK3>EG#Y[(@777;GQ5/""/?:;R,AE(::_^*YPXLL9ZQ MRLC0?8XR$D=AC>(G(3W7#%F">8:HT:S[XJ>DB))_]:Y^PI" Z"O/ADRH\A]?UP$_]. M-#-!IT1F@J@/K:03_ZNUZT;KH!\?20OR8^E?-+4#K)BT0(4I1531.=NN8@'? M>=*"S]?=MC(^?7243J$ME$BMH!A5DQ:H@%.ARNDH,20Z1S3\AJ)QJP0: X$C M_S ) CL6D&B6@YMQ M8/!61S@I_B\;QNX&E&54D"E9^IM"_\][!,#0Q7(!/S@7R?.^^T'Q:JIJ//*4 MB@1/)X@[^ (7P%V<>Q8__.X'P:NIJH;H5WH1/+G2B9X![)QECB*A1'^\PRK< MJ;HF'R?!7GR07Z;B)(7APM]\]LX4&*D::Z6VK3\7ZU>'I,!;>0P[^Z5\H=NT MZ*W\98E;^7TG6MZRM>]&*^Y'*^K(Q[5\[FWQ3=.6T+*W\L2+YK,^M_(WHI?R MB7P&7,H/73RE@/U$G(Q5QAT]HX9R).# \!1X40'5NL&G])YYH<^LHQRHHOAP M(\R05RV,R9HY7LXL!^0G*:66TP5+!A*G:/))J1:")%H#UM(:KTP'N7.(2<#U M05&:N:*:1J)<5FZU2^/!&'/:J%VC"2 M"]4U8*CG@0+XEMIR<.HUFC MKRIZ-I[:8/ F:K.YJOJ2HI5^^<-(DVL\^*+I=8HBH5<4F)\$T99_-<*G(DE3 MVC;.2A%8*##G-O K\GSJIDG^ESXH7%9)!FSAF'E>#I?L-, #-12;<$-9E7[N MMK\T'#RC.N_DZ*"J$]!-3"L7K,AV4^=Y4:%(@$;P\TQ*JNKD8PZ!]PF ZR9P MSI<^"%Q6255=<\PAL"('JP_R\JI(DL]/?+ :N*:0]\B!*MV %<8=K/_K'T27 MJ3A)&0%UL2OX5?Q4I0P">3UXAP.A9N69DE6PLAY/HE,V,1*$.O$Q&&K0GZ3L M@HT_]JZBQ9PS?!.#0; ;'\.A%@W*2K&H]8C(,0HTLSP(=>-C1-2B05DI')4> M$88>FXT? '5J3E;F2",,1W'H;PSB+O**1WYU+F,H[^??X1I0I^9D9:;4>>Y/ M9@KB[EHKQ4^^\\'E.P>S3 .# MA//K'Z-!IN)D)>QLG/85DOO0IXTI((^W\.^CQ!<8P-!R2.#%#FL(G+&\$)+4W&]J?(R8NI0H*^=KXT-#C@7[+#E>J=\SE.9G4Y6LK*XZD[EX*>VM5BAR$3\+ MV4OWYV,PU*M*6;EC&Q\L!-VF8VZ5C7%[WB9B.GLJ"L1*KZ,< M&=4@09E%A).N4P([536R#7X3XBW^$,7,SV,1M,X6 ,T M7UMN8@_8'1/J<1$5_;ZZQ&1S3*)=4HK*/F+R\>DR:[\X._NSG_\@OQ2-O?O, MHH5*C.\\&F-]]O,?K)>B,;F1!N?FDC]Y;-T@_T]Z\#$$9"E-;KA"@T>!^OO^ MAI\%*#@$N'0F*16IWF]_^55Y]G2]$KN6(<"7B^[55?=CS,C5IM00C._F'*W> MH*KBI_ QLFI3J:00CU7R9BL_M+)G/_6&EF#_/H;6>50J*6"DT4/K(.Z:>N-* MI',?@^H,^I04K#&"%;G;+B5>8;*NKT^VW'J6+GUBOP1Q:*<[N* MN?2V+]KY+KWDU\-1?_PX:,U[_S.(''G33VCCJ+O3#[=C+J/&'YVFW6M*.N*J ML P7Z%7(\?9H&=39\7:GEEX8K#V$)SJ&!VY^8>6@YD#N%&X!V=3R?3OM.-.O MEE9<.10% .%!DR&E6GCBCN+-!+3[7N@&Z(WIX)I;-BMCN]MI=U1#D@'&*9;\ M0JH%9#0-]?!N#'_#^6>(H+^ -ND1$]*"6J:!6T93(O,O<;\66D73"LJ! M*VDE95B;?E$([>>A19,L OKF0AW.:'5 MFKN)B2U6N^-X/[ 4X/;M+CF($^7X/@@8ZS)O=>7@+[5*5Y*6ZF';S(GIJ-O, MU3J_L'*85H(GYPS%+[6D29P2L60_STSO<&?ZN$\P\'/GX\+RRH$FH.4]1.7$ M5&NIE?7^4@402\VFG')5]T8Y4\)4BZFFC\Y5<)O=SC?\(5^[1>IL%W33:6#DQY M93A8+@&)!+67>XH5/ 6VY]K0@3&TP3W TEH.47Z(>_*6*4PAG826LYKO="^U M95]=RJCZ[$\5&B:CT%V1 =JW$'K#8Y$XHM V5?0*YI!&4$9)&ZW&N; ["QR* MW-N0FS *&1@US&&#J)"27H(U3H?C Z9_:B;@-'ODU#2''F6%E?3$23V:/$#K M&2^M 03^"-!FCH):!M.#0U!)SW,:I\:3B_!&:^7"_T;R)_%:_=WN:@*P5$01 M/7<170'A(V;/ME$(:,$!*K1H#J5D*T'2DY7R=*.8;\O(2:+)NSX@%XG()S*< M6GDE-*L_EVK5A*07&ZK.7V)SD_Y<*2.@K&<&JG)@OK:"[U[H+(:;K64'.S,# MVS13KC'C&51&_I1@S1F=15>M!\]=D=Q5!QM H>4II[[^S) C,CL4 M6(W9E?4G2 4Y3?&/2,=([ HB.G50:NG/C#("-NZK0-FC)D+L=/ =!NNUYY#< MGWG;3D9Q?7$M)9DI#@>[:>Y(?K&U@%E97V9(D-,43P0Q8AC+A!+05_8N\ ++ M:?;8F/75$STV7I8Y-F8_^4[/C%=-#_8L"A3REW.1E?J-[/B[PN.OX2P"!:@R M)I;:U&'*Z96BJ4Q@B8-)3(Q^M%:,)9B0P*8<;"FZ&'ED!0OM #X[(!EP^5$$ M^YY?.)]7:=M8NDE00^-'Z7I)N'\-*D:P?3UCR5,@HF$)<"A*.#Z#DO7^#BZQ M@!@%>.)N5[$U8[E42G#C#O-9G?37)#3NZ:4I_ZN#Z@T;2[BJ.FC\K0+%@LSS MNH]_C'>,S='<; M1C_WJ9RD5M\!DTHHH/&7"^=9$P>*:\DJ!HHDH<<#N M5^Z*%2E'I ECJ<,OK3&/&VJX6-.:$!R"27MWT-C-VLDA0/1.[8K[3BW]5'2K M%G_LG=ZF74O:GYZ 1^D3NW"6V=?=R_9G=8?L]*)X:YICE07]Q%X]C!*7#5>T/%O+5.U" 0=_$D!J%Q MG*!)*.O^3Z'YXB!<28&MFEU)&48(VXNMV.Q<-9WFNBS\EU%!ULE%W!W*@EZ^> MM_@!'2>.L&6Y*_+P(I=CI=LQBV-RU5#5/IP[135*K]TV@!X2CZ>*V:3AEECR MFQ6%]L%U!:(WC2HB0LLR$#?F]T2)TR?J_73-[?UT^,'( RK]Y#OU@>HV-#'4 M$,9;@8F@0-.G@UY$,$E>+WA?#+W%++!0H& ,;ZQ!%%V(38$?.F3_'F6HBR-L M3:*NX](3SX=$>D&^"#9N++UDZ,$4IQDA%4V(+: >%E*:?F<<%-&"*:XV% 5- MX[ (6/J,AAZLK0_&R]YVZT";)"B.([[@7SW #8RI($C(*E\REI_2E6)8-(*Z M-G *!X"KN(.3%_POWL(-W$4C9[;3^]SQLO+[E2[W"6[W^=;N^RUO^?&L94?3 MSPW-"*>\()Z+J4PO"2XZF;'U.?NY9<;=2>+7!M/>3'-.ORQ]=!?6VA% MC)?$M8Q<^L5>::6H0VG+="J)B-WD'?MY^12])N[9-HE=0-NIE&GJW;"I6&I) MAS)UR53/.J;PKE?J0B8O4/KY]\"=$0C(^\0)0)$G=-]R[-")PQ0L!Q9R\1%Q M]T>Q_6_GHIV__R49=D:#>>MA/)NU)H-I:_:M-QW@7QY\G.Q^T\^W\/=;40>T MV?P>:ZY@YTLK_D>GH>D"LR(>/@]TK_!,&>56"Y9*3X=^L2R2]JHO #U[S1HY MO@/B-P06/=P7:P5&X>89H/$RTI(_#@,_L%R2$>+6\J%-P5ZH#98LYES@ETG2?K+)$\?) MYC%F/"?<26G# &=))HD<&2O9-ZI&!?/6G M1?+9UOZ[[^ZDT%3FS5TJVSFY.*3T.ELH2_\O<:Y;)0=U;G8D#F$,B 1%!M;B M9#@/7FTGQ",W.] 3 +//O/<=271T!.7K1E ME59>$WH4@).S,Q426"UPIP OSY!$78YZ_^02SZ;9$Q-@9AU30187FFJIDA/S M_I!TDQ#9:[SK)J]@&5]2;NR)ME]^T^S^?AQ,&WU1G>MKX/QUVEO\FW8;PU' M]^/I8V\^'(](^?3+VEB@IM#_DS@Z/+DV0+C'+D=4%V:=YFZMD\N579B$&5B1 M@4:]P::55V[.*-1WSI6VD'"F1)].I9Z"K8<51=XR\''@M()))."4KK:+ZD87 M@REX 6X(\#IHDV^MP.W;H_5O#Z7U!"\I+FF7%/R+1-*CUKY+K>>W5M2IUJY7 M[W@!T?8RX^;ZIGNI\BPA?*.12&3 C4;?<\E@0_&<@+5T^W8+7'N]L="?C&N) MHFK*$8 #S5,*E))2+;/@J0BI ,P+@J)JRN%;"BH>Q#GD5@OQF>60I];16CH" M =, G%M6 VPY0,F9T+F%50O0]!7&%-@ OI#IBXDIK;BIL K)*\F47]_B.\+S,=#=W;F66508O =5G\1(33=+ HC@O[*R,=&>%HR)*Z5],E4<>"3R"G4?[ MM\7:O\WIY,U%][*I*#S2M,\2K%['G=TR5ZS]OJG:9PDF:<$HT/Y=L?;O3-4^ M2[ F'TL50#8HAFQ@*F0LP>IX[*2ICUN36%>R7W#*9MLUK[#BH MHB[\;"0YC!Q%4AKG:)88V?W;M_V?>PA8HBX%EY)<"GSB2+#O2HOTY1T[$EPU MO3B4="10858HU*R0(T&=,T#3RX&TNPP58.? L/Q=1B$+U !4VEV&"H"*8E/^ M+D--=/>KH=AM1F&]K.SM[N473>XSZ$B7DUDMO,_AYZ4"VK(FZF(I%;]YKL'/ M2P5\2T'%@SB'W&J-:+E^7FIBRP%*SGZ;6]CF+YUWT]5^C;$PM]2::6E89V,01.$)/2,(Z!IT/[)]7WLLOD2<@>HL!3/X1 MX1]Y@4B-,\ /T1!8#^R"@ *.+4L7,4 ^"?$PH M_YP8!0!%'&5"UXNA-O].06W^W2C4*.)0[\RD7$Z3L##CY7P-OGO(6=!OJ//* M&:%],>FH=]5Z7SOKMGD6E,N :^?D8!<']G"C:Y?O,%BG5Y)#EP3^@.Z*) ;# M_T?RE-$NR<1;RBJUT^U<72M"%C;NIX21);R)-U2E@VC4 MG^'!(B!+C#3X%Z.-BZL+,1NP4 M:B[):HO/6.=I\^H>NI9K0\L9NGA;'4:!!Z-TNV+GR"M:6%9RO+P?CGJC_K#W M@$^.L_GTZ7$PFL_P[Z/O:',TO+<@(OEGP5[*HI,AJXJV$?1N+KN=RX;C;!8I M5NQ0B\LH5JN=?ONI[;Q M0M]W5A7E,!6&AX4PI[QJ(7SO(0!7[N#57EON:B<#TXF264=AC#D!.L587&#E M0/YAH47:;[\(W9S"AL+**ZE:Y]\X&?G^2$$^131/7VD9-91#MM1"*RJ@%H R M%UIF'>5 %<6'&V%M5MKHQ(E/\UZ:<2$6:/"Z!:[/CF3*4U47Q(5FZ-*"JP6] M-'NE K"6FITYY5+&'57&B>DKIOG8W?^[\+QT7"&KHJONU?471:!GH\@Z(W') M*-<8LD700S!XBQILF!,D([H0)XXKF,@)+AGE7F6HQ(DT"<^!$?P;V*N;2@U* M/1,9(B*JI#7D\"IDSY:KQNY%=E;G^!;H$5BD_&+L3DFJ/X2W1K>6#P5S%5W1 MM1*^K2N[UD:2K/7>5+%@4FC2+%BEVR MU+*O:,:2E^KE]BT:>WW'\O-"=!>65PYQ#OQR+'A"XJEU*.2",\U%=7U..2*)<8+!J7,H2BU*/GHN>'NTT)\@N _= M!?N>(+^PNG0X!YRG;!+0DEI<>)I]]5X FC&1;)4J$!#H%/LSF*M/_&33]:A0^6';-,2%.U1I^I MLC/>_?@- H2UOWY[ "\@[[V*6&7E^%)USRPJJUJ7IKO>)^,D:R?9B<2W*^9I M0SG\*T#)X$5I5:BU@=EU/9HB_4@=;;;G"[V&NM"71HO! $[YU<);VB6K NB6 MFM@YY3+@DK5O^6N\]27_,_A/"%\L)\/^O0R0^YGZG>P>>@_V_*,SAK6X.<2I)7&,G5&Q-?Z+4H0!9E[A>8#DGE[B=>#ZX=[UYK_67IU'OZ6Z(R_Q5FUO94_T=Q*/9:Z+@HE:PE<;N;A4*ZM7M7K<; MC@!7 K73!4R6(@RX/>Y[Y+E_HA#:WOBPC)F,*!;1 #OY" 2QLS1QKZ-@G2EC M)M;%(M;@,-8(X ,+N7@:\R< S=98N>2JP*8 GUO63 +PBRHI)J@"A]QCF>^@ M$P: YE)**?T^Z, 25E(:6NXHCG__)88GV6[_[_\?4$L#!!0 ( ':"853Z MWB*4G[ # *\X)@ 5 <&1F<\9\L\F>>?_[?45&P.+%LV]'__0]X1_\& +ABBK$O__H?M%O'T M?_[?[__"X/_Y_V#8/_\;QS'Y(=>I8:(AN!K0'4RP .\ $5O(SN0GUC5,D]>Q M.K L656QG"6+$@@?R=PE[])$G+J+)=,D@>'X[]UN<[P->S'TGV%K\HY\W"0? MO@HUBOT@?U $16&9GR3Q,T%BK?KCYD$_-7ED\9:WGN=/V#&Q'4;R\$,,L.:R M +![8X15"O"9!)418S$"C\7X#!Y/"BE\E!C'\#B53O/QE A&?&RG)_B??R8. M)"XDL&[_-,6Q_>^WB>.8/W_\6"P6=_"+.\'0T 1(DHJ1W\*&KHU+/&]NVHYY M>W1G6-*/\ ?_ 9P@\>TCJJPK>WTO1Y;J/T,11.P'^GD$*;MN+ABN[EC>Y@F_ MM0V$.\F8_PA_]-^R?F!IRWO=+V+KSLD?#_4:(TR QN.R;CN\+FQ>@[H5G?VW MA(\E?@0_KIO*2P>' ]A[R7I L@['#Q!'?C@6K]MCP])X!W(1=D0F<"*]0PC; M8[7@J^/>;QEN2K... M8?Z,$:;S"[[U!_QYKXTHVZ;*>S]U0P>H@;S\B7H#5O"G+(I ]_^$#8H6+Z Y M8ZXN.QT$,A;^P3&0A")OB1S+%#BIC&>Y1)NNT'AM;&:&!96>B%E(&ONG+JMP MBI8+Y^#/:!GTD;6YYI@C*2Y&<@A#')O52R.95=+*+/X0LZ:U$3YNP"YT7H,# M#C7+S[RA:;*#-+J=U<4\[!!: 6@-9&!_PV3QWV]E?^S<>-#--NK#09:=E2M+ MOO!PG^G7)$2*_4E]Z"0)+H=+(T!,!YP"A@/SX;Z:=I(IZ:V39$OI3IQ(#46" M+_%2I5&JEU)"]NV3M">\!6S.*$XHNU1,#(EJ04H_R%6S*3PL]F=6<"U?$#B2 M"_G7-7:Y62/L::LL5M)$=:Y79I.^N5HR<*(B$&2-5Z&4XK''T^X#69I PYF% M-I"70,/51L!JC@NRZL)O&7]P3==!LHML_SZ_E69AW(GC+I&L94;&0T\K>!3D M=RQ%QM($07P"28@]DA#U*J/$PO+D>2IE=MQ?IC4"-F M.6L>P\<#L4"V(4GB\<1S)($O 98LO N[@]E ._&3AB!VO#S$M,6K%5T$RRKP M@O%V!8ZK9XU^U:PM:'R0&)1=A3=]NTW'"KT/H@,&5^/.!SA90> MC+@%WV"(1?B=O1DQ$>^.?>'.A5* M,0[TJ :K-?5D#^H99EB"%@(-%;WBR&#?4>6<;%^>TS$MZ!K". BJ$\<0E.=U MRF .[&$^EX^Q36K4TTL9H"VT!931#]"O)WL,[S79N-)I#SNM(/H-ZO.KN3Y;2TO->MYU-TUZ?KU7+[6*J5CS#Y_E0 MQ^ZER8TZ]MRLC5F+R,_+DP5=FR8LH?WJR17DN2P"?VJA?"42]9I0:W?21-^; M*-D95; &:3@\6Y9T*";O[=M1CR=.\Y8.Q0%>K MDVI:ZLEJKXITRUTB_;D$>+TG]R8",/;2[,7OS9Q"\5+6KNJ=DOL ?5CRCDR] MI\JQ+8?K\#"BR"YEV_]4EW59<[4Z0.XEEV?XQCTW:,:5?EF=UMO)%=Y9OV\R:$EL)]YWI0=7I57 ,9>F@GY9#'&V%E MAV9FL6E"_F&LG ) M?LIELB4R-ZG&T=02'^>QK/GBP\M?I42#![KM]YFU+$04Y,[DO&V3%N^AK[)P M;J+_3P_8*-@,/#-R;Y+]_"K>]II932EEZIU8,R7K'11MMN*OF>03L^"SB)\: M5MZU'0,^8/N<0YS@LN(<&CPXI*S?$5_1A9"-Z*F698BNX#2MZ>0TU(7*X#YD!W00=HO*P'=/+7A'0!-$>J M+/FTIIJ!*[V7*+8''9;WA,[>?9(#K$XP29C8X[I5@FY:I/+!FLTN3G40"WJ2[*8 M7WXPB^,ABV52U[-Q2IFM^ODE(TMDWT8J/%E_DPJ' M.CP)B4$&2GS[:4T:?SQ=SPQHL_Z6UDS5\ #P_<.FB;IZ!,\#)%W .7JTBM#B M/P=%"'X##?,.=FZ#"M&H8^AV0 47LK@%=SMW?\X;M- QG M .",!$/2D3NZ7C"SPJ]0NWWR-3@N-]([[30!\@F[KV;NR4HJ<++3]53A=2L MUQE'QAJYH:CULQTV3_#WAL(E)RXG_4%Q9.8AT:FKML807E;5NB7'R69;[>?C MR)>624S7 MP*K^J"H)(J[6:]5&]>2?;KC?9[,[W2*#Z>]7K?HP-,PW)X&&@R M0/+WQ_8FK@I:3$L7IZQ2E=.K#EG./2RR*("^Q.+06]1- 0K=G$>FN0(]0LM? M7>[(MK*G?:!X X@F>@D])*A,T?8?&N8C6P6-//2DX4@=7]W6#"'0P+L]-9T) ML*">,4R QJ=+P4/(980N\]HS,.+5KE5C$C0EIUOZ0W'N=N@]AA"/V;&=1LVP M[::^_;P?,#ZDZ_.XP?=8G)BXKMDK=@;"<^NG'ZB&8AO>S!+2_4,BWXTIR8;F MUM*KOB4LLF<+H3K*=[/M\1A7DN*@6^WEJPN&RB(M1+T6CN\U__C._)-=._\9GJ/B M9L7+*,S]K.\2":XB%7T+0'R:'TH<=D3[%"_+I5*GS>*C;+S:J)AV=GX^!4IX M5\MS,Q9G\0[#LE*S5[F7?!N0.8" '_N99_Y6&= %8/_^!V7X_;3]Y#TX(_U>#>C^W&(%*8?)V]FLEZ0_;W.L27(33^;WS8T%;=-PP29_5_6G]>B0*Z*_BK%4)S=,Y3N@1*2E&W3.@ YQ.G2(]X+.D[V42V"E M,+HG&3T^D>CF8))T^>YTYLKM&U9>AY4@J]PYH#G6OYS-_LNHB@)X:,_QE92A M06SH#.QJR6OA-_:_G?W$9=A/9B["?GXQHAN$JPNTUYDRN7:Z3E'U&_O?S'XR M\U[L/]7E]!WP#C#7FZJ6(5F\]FC3E2+\[8PGS4(4=*HY7.FQ;HR6N=10[P-+ MR$TBBX+C,_[VV\_A.6'*7]/%3'!4>N-C;C^\"BID^EFH&$Y\W++=3IN64[4' MNI,@B+D9V:CD-*@\/^5+NI0)G$J?YE+N-;V 2QGL#G3Y9=9U)H8%9[!G1/R] M!JAKT5:#>N]:LBW*PL[>Z%QFZ;P+[ GKI0H/PP(U+.)&-JJP.#S9K=UX8;97 MYCB>S.0"_-%V9"$?G+$-69M:QHO5_+1CT]4D/8@1 C%,I",K\2^Q]N I9W(KAQ$VA. .CN)$_$3 MU?MNTW/5^T60,9TY=+*?Y"VZF>V4]"XH]N_UR&KXJ"%C+T#<8_8'1 CK/ %Z MYJ)CF(9F&KI_OG@# '3HV @2"'<.1*U7$U5\,%]DQ0>E*;?=QHHNE:1N9 W ML[,-F?_<=+]49'#4$W@>$]MT:(>7=2"N]WM"0"PTNQ\C:[V*PB3=P63.*$06 MCZZ1>!X0VX3K0W.-NF=P)H.SHNCG$?)JBY?%BAZ>?@GY/$@M&K-$=3D@9,L5 M^]H@E=!KURKXFS6AYZ;\U=DM"*[F^B0]G,MD9SJY3 RNW7Q_AEJ/#+M/5NL+ MLS\BQLM\1:%&;HNM/]BC:OOJ+?HGJ_7+[_B=I=93\WLNOI3S-ETJ#C63O3<& M\]BUB_M'JO7WV],[D\'/J_6D03O<:)E1V&IV.'W@*LY IZ]>MC]>K4>'W2>K M=2,Q[<;Z\1;!SAI\.2Z4ITYS=O/6(PF#5P=M70OPMFMY_G)5R'"IPE=Z7'%6 M)#2QV.H:9JU&SZ_=53\PT2L+Q-YOS77>E)08J*E9-J^X"QK/U IDXUH9_*%K MKA&,MP]),"\)KER18B,%E-O3:4R?R;76M7ME'R?!GQUZO2S!Z<:R!GV6JJ(P M)%-?R'+)<9EK=<<^2X*C$EH=DN!F1N\M&:F>)TIMO@(G+*I"\5I5](=+\*=[ MV2]+\$-.?RD9UKHAP+ MTD22A19O.3JP[(EL%@WKWI!UIP#F0#5,_P%=9'@5V%T@3'1#-22/,50719WK M)12*<)*M;J95I*M+=N!:32V1M2-KK ]2)$3 >Y'D'ET#591G=BN#94>$T='+TH:];S"D"X=UM*W@3>8IYHW^1->0'F/N:V5Z&R<0[KZJ<=W'D8L3R7BS1K[*E6,\HSAB>CC/7Q-"C4[L8 M]Y"'];G&^"@WS6RA^? P?,!IWF[1) WKIWF5 M6C1C-DW++B7CN7YS%%M=E=G]<-9'X$J"+:\/7Z;9 ;9CR>B*8M\30??9V!V& M#7GN,+GV-$,I-4*6IXEFL2!D%2^RXKXWP]U,A&>F>+7+HF]A)VV+3NE!SEN* M)AF)$N6P>MJ-K"V.#CLO=V;\F&)^"WD9W;8K'E<'[(@RBYC(=WXD&ZN?W%K?__+CLFS9TW2%@9/;2 MKD:K1:U.TTVK15>K[6+EC]-J\9M6.ZE Y'%U58$=22@_1AS(0!4[O&:N-X65 M>X(O39L\75I5YYE,,6/4TY%;J7Q!-H].[TMO3KP. EF=5SU'%M9Y/P^Y164E M#UN, EQUGC?*BM'N7AOC'TWJCV+WUF/PS1!*>_.Z%J_;@8JS<][N+SM @"00 M$1G(KO'(J+W@PS!SLCD3Z5:=GHO$A.$B&4I'RM!\[@K[6R#PV- D-:M>G$Q;,I&, M&^5T6P0.'[V+]R)B:*+([H\W-,4>(Q2[_5Q-\9CI5$^2"<5H1VW)^\V6AX4* 3H>6J1'Z?WHE(B?ZI_SGFR@%%U+EQW70N%[45ZBO]9JJJ') MN*W)BP+17Q56.>Y>;,VSD5P4.6?%\X0=D)?)N=V).4[/+^T371*JONJL\2,# MOM*P/-BJ"VQGTS+LL6IU9^G^HF&S?*UNIELM*EYJ1]*H1@"MOM)]B:1_.F / MKD:_DVZE/+Z3FRY2,1I?=1^T>R?/$=)5Z-;7K+O>=&O4H7J:;A4-^9[4ZT-6 MP5MS?05BTVII?A6Z]1/0>M.M1X\'O$)WKJ, =#HU_'/GS&K>L)W-59;#^82? M%E=S(C]LL:-Y5A9*J=2N/G0K63:O?0VV/S?O/X3QAWW"\@/#.?G2U**K M^7*]3[9'U59T]UJBYA-&CMW!<:4#JQKT0!]HA>F(H1E'GL?DIEZI]JZ;S\$1 MHLLN-T23P2^N8>7*B7NZN)HS=).I4\N2/:[WI.M>)OCPE:8/O6_U,B&<,&T5 MLV9)2;'N-)&;S A!ZI8CEW1SE2']I?:\0CNR5O2*>5QQ:6TB+Q%PTC-[# MU_#J/CZ$BQ;;G\MG<.L)S^'N79HOI892,YZLX,IUV_M/"^&BQ?1G0SA!RA3$ M6+.2H/E&L<\NK7&A'[VS/=<2PD6-\8=#N.8DOH:H M?VP(%PUV'PWA3*(Y@*:^H!/YE3L"N'OOLI/KENT/#N$BQ. 70[BI59NHM.GD M:>"QU1Z3=>\9Y[JE^C-#N'=C_6;#-L51F4V^]/;#6].EW^U.;[M?D;L6)>IL M57%Q8SYJE&*#R +GU=G34;SH^W$R=0JG,J=L#3]J^@Y9!-MKY'U0?L:=\G5[ MB"OCP;C->DTRSN&U^*!8C.S:T[7=*?\4:MM;Y5^$VK;I!;(0@LIE77Z9=9V) M8TX$:BTF'"KO+* MPB+E>G>F:)6>ZCZT2H/",K*+78>IM?5\#Y+K*)#.>.WVNJ-MFV<)?65KK!\' MT#RORF/#TF6^"+6),)%MU#YG\%9XFP!7*966(^6^.%08&+ZVZ6Z]78_N58,1 MANB+I+XZD*+,YDVEFQ(P)(LW)[+ JUL+C>YX],M<] TXM1!2.&^U%8AN.KZC!3*[!U.CEL]>)R15VF MU,BI@A?X%L[G)\M<&:.(-\N;EQ-!2I7[$S;I+5I=>9FBB]$\QQXA>;O7M\LOD%5T$8QE779 39X#$?J:,/"2 M1RK(VC9P8-@?W/FE\K;]R/MO688 ;!O"%O"6,(%1UTX,%DJG+"^=Q/"^9=%4 M/B-FF;A&E:-[/.*5M-CUT$\@1M0A,5=F]%09 M#,597NE&%F5'Z+>NG'B4@.=[\J^@_&ZASF=(?\F5E$^_ 2%* M P4!1F @=L M[J!8HY]K#9HF4$V#>)X9#08],E;3U0U MEFWP\X22M(ARIY18Q-A49-=JHNXS1QX.S_FMI-+H@AI7T)6J*I9CC7Q#M$9? MRQA\D/?XH4?CWM\A'+9*52DKKLHTW\I[!6F/SG<(S2'? M*A;TM$QHY(*L=#J*I\8CNW@368;778'FJUG%$\'LUPM[WBY?&2#PZ-%U4^=[Y<"R=&EI+?8 MB$;%%/)B>]QB\>)4F\X2;3T_B2P0/MM&?.C*X&OU_/TPW>P,*;E ) FQFRC5 MO(&N1S;Z^TP]_QFU2]]R%\:!.Y]"7A-9:\!U9].$TG_0-2E/%[11=)WZ-]UY M==%4WT]7XJ>FQ;P/7#A-HFS+*2T)9A&?YA9E?=&@;W#Y HDD!=C%'")I#BK^ MQ4%H2AW95O9OT#(LI&WSL$.+%[;+A8-XADI324GIF\5IPBMZN;$<68/QW$QW MKLTZ.-6H&X^CBT'GL-?N=..U5K%7)9A4E4M7>C15U2+KVD60O1]^".14;@-9 MTNDEC'%T":Q)\2@=,CA?O#EE53,$?I-2N6[3="; :A@ZTK;P5UT*'J*7)JK2 M&';83VGQ#.TWX[A%.)_*1-VJH,< M12$H&_%JUZHQ"9J2TRW]H3AW._1-"*Y;""*U=M/C53<@D*H:"UX70,XK@#&P M+""B6R+0#LA./OSF9HA. ?Z:AXWDC=W/I_A9R^TF!LIL&._PZ4HJI?.1=?9/ MG?@ZE?V9F5^ME_>.S*^5+:-(3;*2E0X%+F9)+5;0_$5!=K6#&R%2JI3 ]IJS,B[/[DA%9*W-M@/IQ0WAXCN$2VX(EVI6W,:L)O6(:G%2ZPC=],S* M11!Q1/QTPB7?EW"[[D1L(ZJSA'3_D,AW8TJRH;FU]*IO"8LH$NYTLTG$+J/E M'MO-/L7+T>UR\5&5F-$[W!UJZ5&.$Z#DDK_+EWDG+'5UG M>FTTD(7^JXA\6+)KK+=::[* EN?"!\*;<^V-G[S.+")FO%125(IM]JU2)9:7 MLD+T[J)[[<]I M84;/FGJC86G**M.^L3FB*];/WTJ[Z>9(3MQW7D]9A;UFW4V3)H ^"*'O_2J_R&A#([)A6?B M[-TS(L;FV\^3R/40CLEC+*V[O5(SGF:3DT6MG)"D3@E$+FY \OB4SIO#*8\) M_:<(XPO,O8GB.XIB5O!O2H>L%H \YT@Y5[3Z0O,UJMUQY*2[-)]('BMI=,:K^J12W0\20@+-R&\">$%A/!# D>G[&5$ M*=\<*H"3J'YI3L9K\>LTAI\@A[>H\:I$,1=I49P-IIRP2G1(0A/Z0'62L46. MN:XUG$>$OHGB'RN*)]7!C.2*S: XSDR<3H9B&6+^P#,K,)QV(NF9GE><\XNY MI;+8+D9,CVCM%$058'\,IF>JWN;U#4F M%J?S!#MI4?UE:C:)I&#>,CUO%O-\B]G4P?K;Z*:9:<422?6%Q(+5\M*03KN MH*)75.E9:_F$SG^**-XLY6F"N*%3I/W6[JS,I>4N7:9+9"9YGY6:25"/9"CY M8G9+_N:TWD3Q65',1M0 @_ MQ!X^S!3'R:2R,9H?C2LF,;.*S2L] /$)O-]O0TZH&G3;6AS*R& MV6S.I5)9NM8\EUNVYTT$KR_;,S5,%EISHR#3>#_9&J4+W5ZO%$E+>,OVO(G@ M62(8U6S/1;?1%=5X4E?RU6JS/QV:4JH_1K1A3 M(F0A%AOE[5RZ-+U6$;QE>_Z9(AA)R1(Y,"O)"[JHS/K-84[H/MA,.7+^Y0WV MUP/[8TG.&\V(KA!VO+RAF88./]I[B.T AY=U(-*\I1'=6)1 MV=40+Z1GY455P),L8] )_B$>*U82D7,87HF7DZ?_I2%TS*R>I5_FM4XF)^KE M&4O5BJHQ:%O%;N&F7Z[.^)P'CM/UR\CNK<1!.M%3 +%,8@E+QW3M('=1VO7>I&K7<6%1';#/3]-HC M6<5Q+;*J9'>2FPSTEV?YG@BX?'D/,L,UZXVX5O/:%L$H3K=6Z"EIEKHX5UXU M>S)S\1HV15ZV4+UJD//\NM1YE;?W56 =*@:O#L,IX!1=77Q\W&.G@\V?93A5 MWA(F7@TB9O\,UZ9-13==Q_8;D&&7]Z:M4Y4ZDU*2"8?OVP^39E*/K H]2KFM M^CQ,NO-CSM-HOAW',T2_+K%]#^#:RIRV] H8L=ZH6\^0B^G]HA&Y'.?+H2R: MC"4BJ9%P?$ED1;XLLS.^8\Q;<6YN7KYJ:G2P\H4TTJ7*P;T#<(NQ0KZ= Y1$ M-(WL;#Y/0+M7C5Q2350UTN7K_.5XZ.4*@)D X-0,P0\O]_C:LH#)RR*]-%&U M0SNKA]&2:UEP$CZ5UKQ61V7>H&>*I^3SUB*O=]@"'EU>'YOYEM6G3_W*#-(K MV._/N&'HP@%^L\NY4:JV!%'1!B-QI%'5E%FZ8GX_,](5\_O3Y?OR=OLL^:;O'W#%4A\2-) \9KF<];/6-?/[X^7[ M QCLVK(.H),BS%S9EC?\#8X_0"HYEKQ$JYF6:5AHK?-Q0"'KL@-J\AR(%1T. M3I)'*@@HD_."=/\GKE[7XD6 -J&1R/@?T)K:&C73^$.\Q7)UCL:]Z2@Q6^C* M&VVVG/'S4XV==_E;^KXR9M?R84MI$]BPQ\+[K=HYY!Z M0.P"8:(;JB%Y'5F:;#P,9Z'%.WC&G2O))-OHJ5"-K)HW2+^/AGZ!^%$'\C;) MAWH^R^>MP!9G5CLS2K(CNLD/.QPKD)5*+[*;A.\.OO.S=B"CHY*U\_*^#,N4 MC#FP=#39?$@CY+9 '9^5@"[(P&: X%J0LN""NXWU>XE-.XV!1S2YU2*6R]!B MA#/O3]@'>@-=_X2MR"@D1[P%\KUD(^?8M!)GO6:C$K: M9;H6X&W7\CY$V17H1"4F"@L%J#-EK%C*4E8B&X"?!*9CY/L3=%H4TBN> ? # MGKNW*7[,$1J>G<0FTVXLPJ<_+H.VB##XU - 63@N459=E&:\G2.]%%17!&+1 M,C24C>XZ?F?-\?I(0PM8S(2W$.D.=O#H[(<-/6,!.L1^6C,+(RF[P[ A:"J. M-I^27K],EUKTK$RPF7:-CRQH+DBOW0,DSQ#L8N%$% X9?29,:'I+Z+LD;OE0H>$ MMW M+XZ4/K=4AP]9WJ,O?Q@HDBC]7%,?Y2.CGVOJJ>5J1MBIT80%JC2MC%DM5QW\ MV1#]>%/_I\+S)%-OS#VF8S4;)EN2!HT'9U!=EKI_)D(_U=1' :3'_-'@T/CF M^/E>OJT/LJQF6(Z\"JGNIZ/ZVUK6T^W-$':Q:7TVSMK2/:U5"&#Q,U+TZ,CN MU3U#@! VKZ; '^DS7@!(U94U;Q-#>DE05E-O4U2J+91N0/J#-=+FLA"@JE#Y MEX .]8N*MH=$3=9EV[_':P[6IR/6R0/90MYDTHL$W6_D>_,"SBO=Z)X)>!9' MF_M"7D. +ZV/SH'1X=RQD'@A>(0RR^=*?*VOP,\3?BP*QKQZG4IH)Y)\:=HW MR!R!3-Y Q07]NPM#@&0J1NI>TF8D#:9C*=^8YXQ>\[H!\F227QH.;_%HWF:( MQ@2QRB\HBZ6KO5B.6L;(Q#1]W5")AB&*@C]S#HQ.,43.8B6IE>:J3N!).<;5 MN[.6 ZX;/)]IB*X=,D\-43[SD$S+":;"RIF><\\F76G53:H26@@- 9+-4O4ZQR:R;#[NL.5:5<+!U0/DP$2_-"S.NUSU$"QJ MA%8SV#B5+\8)?39-5=[AV-D MSU^TT'6\9<7U^T@ M^"0M_P>*6\ ?2> OG10 M]UYJ:&E2ND\1,IDLC51Z4.TPD=ONB"AD/_ @[A\-XN?N E&63I)LFTZ3G3U, MY?)B)?'%[LU)B-1=']<(7G[Y(3XN:*XZK9Z4S-!\G)PR,[)(Z.Y5P'>70#-_'E60Z'5]J8$K(T]P\7W@0:F[T2NM$%+ W'_<2 'W)Q\TFZLU&AJ@ MA:) .3M(=1X6@ZL(RR( V9N/^S$@?L['[=BM47T@BSV%F33K7(R/->3R#< W M'_;9&J?$\/LFE(J?1KF*'.0I[1F^#2G"/FZ%I1E"8KNDZZ%X* M4=:EM7+I"15ET:GV6%[@\JN8:SS0U+7")+C/[9GI?E&(0(PD4=6^P"!M/VWB MR[<59J33/7 D0P;]-';QTEC%9;J4R/-U1:'>FR%[3=P!)RC&2]9I&;+N5/0=S!3))EB8B'.N^IY[12Z06,^DZD7>- M\H3I@@GEDUZ1GH@"<8P8J;_AQ7]"X(]M*SLL!79B@C>W]\X/H:$L'A8LN M:(!U]9!GNNEZ)CBXR?"D;=B776T^%#JZZ](@EJBV5*MM#9S(*JN7"+=S\/ 0 MY<[?CWB&Y$_W'X[0_$N;UK,AGQ4$P]4=R#L!R'-^I((+H)ZO G),U\=%@JF; M]+!070WUV!= _3'BW8#_:3YEA'0]7O0:9JDOM5D\KR=,VTK-:26R3L9-UT?= MO3D;\A^BZ_MQ)5$Q,[TY715+((ZGYN7B_1= _1^JZS\#^$<+MYR];U%:R3HP M2D67*(F)FG,?GVD$$[GYA"XP>.JXZ(I)6KR>(%-$E]&L2\]O5]D]=U]?#@._5X7XJ9NJAH8C=35)*33*MX?=[:8WD2M=O"T2;I,L2]-X:S"<138 C7[MNLMY^VQ6+XUD5DDKL_A#S)K6 M1OBX<7%.16/V!ROWG0O]KC7NR/2IZMXU%>#F')#X:$T>=EC=C8,+/17W5:Q/,* &HJB/GYD[D M5'F4,'!9@TSM!^;OQ.6F9$G)?H>4E22?[NI2@R3%)"LP8^ZZ)\$!V(.Z& L;PXRGZT[[E>3 MCEXL)Q29[TMD*=9;W%>BBZHC=%M7'SJ=<.?O,$,064?QCFS'BO70=Q5'^65Z*NQ_%[TFR MJ%64Y%0LVTJ?'4WC48#)SN2A:T+A5.+]9>9Q:%HC[&FK+%;21'6N5V:3OKE: M7CZO)ZI1O:O+ =E056IT180N\I;(V:@PJ\T9Q0EEEXJ)(5$M2.D'N6HVA8O?UI_1BUYX*&UL9H8%E9Z(V2=O ME&TC3I&IG_"1U[^P(,\A:_S7A?-,).HUH=;NI(F^-U&R,ZI@#=);3(C^ [N= M-5P-0)@9UAL']N1Y]&4!Z(8FZX>Z/97">UW\V!_]Z8PP8;?<"J_J@J"2*NUF MO51O7DGVZSOG]O='AIXX@_.R S2.L6<,10T':5H69V5KV5]6MUOS,LZ0=%$+$?88L?8UYP\+%A.+KA@&_8V#*T M#AC;_W[K"ER&MU/##M<9T@Q-%89Q?#&2ZPM?O7S#'"-HQY%B6@"IU(@C06+, MQ9.$R&6$3(P3Q\DDP2<(D$BDOV&&)0+KWV\DG.&/1Z.]U/"[3LF*F?,13X!J M#W1F[:&^ZOK#3U[#\&5GI+ND8"T(1AC.[F>I<:X>:T,KG]D9_3@.R$PB$^?& ML4R2BZ?B)#BJOLV71N"GAJ^> M@U_?'O5K2;*..X;YDR+ODJ;S"\HU/@%^'W'R+I6 7^V\&#YMKI\=0QV/CWE- M5KV?_T$'^FRL 198Q]!X_3_?@V_@?VUH&<;_^>6WMN45@!VAU_@O_@G_Q-#_ M8N$?Z 4\-K' ^-]O_]UMYN%'V^3UO5?Z?__4#4OCU:#;13#>\*MOO[LH&1HS MQE@>F2'=@(E+:ARB+VWX3_?^L6 MJ(O8@9^WO/AUD-[^\."/N[0>&:KX:PZCH)&L0E_CYT06H1\"G_^?_TY31.S7 MAN+F>]'FZ<1/&3=UQKAYWX9P*3(9)XD1P8U3:8*+$P JZ$0RPQ$@ XBQ&!L) M,>%;@*VS9YHY8:*CO9?LSNO;;[91Z=(%C.EFNS2#,72>[52Z%?AGME' Z(=\ M.=LHT5B^6:]7&*;2;/SS8_1./$J=.?(^#[6B+CF&_OU__IM,$K\*=_D[C"(2 M\V%>+.V,;\8(B68:KB[A@ MJ(;U=!1FF^^:FGPEL4M[U<26TEDYT3>&0.0THG7( J^&9/(I!H7ZUV("XP@Z. 2R-7T8(!D 8RL8XVF0P8]A@0"72<63 M6\ =D),?CKC+S4_CR^EBGVTTV&P-Z]"M9J>+M=@.PV8;7:S;1(:_"ZT[1L:P M9@0\]!?1+8;OE+XC1 MP3+9#KCS9FJYCC+C^F2LCR=MU7N=NB\ (=BCB)'?,32L3]3]&R82=U3B M)5,0@MV/6HD/-@WG^*:&]7Y^\L=8TYLM^VA;YM]RY+OT3^R9-O.D!%GD^HKG MU=WXH)TDQ[UWL&?Q+V;/NIUL@ZGXANMJ;%KJ-2;ML!%S-LC!@ET4?SDR"$HN M\:]C7*[O=]:348LQ3E+>EXPA:7]GKRBK /8/78 =+9.)>[52_:&;(#05R'F/ ML0HV*;U* F"P&-DC+R@0W&N*?X+W:8NVR@Q WI_T,;I/AW^OC8#_?'#1*80 MEY=X,*J?9?\_'&[TLS:-%VQ:%O5!OBR4*#RY>,J%-ZYE/K]@'_*T52AB3+/& M(O7.?,<'Q11#L+%I!D&VEN!^-MS#:! M@+;@14S6,=FQ,6'"6XX/2_FV=/E%EB[#[8#8*$8(<8'DA'0&'67X% $*!5VP;*MFR@LN]K3/I5N)RUYI M562K206/Q2[E2[2VF!;O9_W++!./,TSS?SBAO/Q,G[XC=3N<&['"L&HLU%->?<11L_1Q9@%?P!232BUN[F]_Y MD6VHKA.*Z9,I[DKBHYCAZ\W-=_Z?#W5/G^1GN)./8UL;%: Q+6..#-/[KV8% M_N8VI55&A6S@&_/HYC'+RQMBN+8%!7V/A001E['S'SP<\!H-U T;K%C9U+=D69<$/V(WQ MQL.+#BS/GW+EKG/'W&'AS3#6_AR_&'_WE)O/9DOB=7GE?_[[*[)W7UE@#>/N M[ZAS>&]V^PM.D>/-"6.-%H$C8L:RHFBATS7!?VJR#LB-"1/3^I!O\;JI]!-I M,>6-:K.NN^ 2K_0MJ'0BC14 5N.QO.6NL)PZ%^]NCL8K.=0RH->I#F5SS_WK M%ZID?51-T8I7'R\H:BG3WB@+6?0Z+R.3(!+$-3D8T>)-'O[9M+K&0M]9&J8Y MBO.65$U1^D2%L!C5[;0RK]MS9GC=@4*C\A9_D#FG]_3]A3WZCPMK0I+Y_EW3 M:L&WR;JPNU>_6K$/Y8>RI2I5)Z?07CE6;U5?MZ2>AZ" D]/EPV2+EIHYWW&$ M2@%#6B'R#L5YTPR1@Q:".YN%8+1D2*9^V9AI01S))J]B8 D$%ZU?P);0WP)V M5/W)4WV62^4"7=&>RNFR_]?%4TJ1ML]:@-\:8E]O=45J0-=J39O(FX[76K9Z M(X=^G=Z*$^DS]?S?'Y16BTZ%JZV)H3_=$ITT*\V>UJ RBE<;5LI@*!<9LOU* MCY' 4QGBN$?R^3NB!S20 U1@(I*$VZ/?,:B15!=I#HR'>($L$,%[[YD>2(-( MW5$OR?9GYH2=3F0&ZG%+=F38>[#S!RP@8J9KV2[: G0,#+9 . Y 3U)_C?Y& MU@'E=V0%Y^!IDN/@H&>-X,BYR9"K#)].Q3"*1B#_9 M^ZDP6BI]G^H2R7XOR63HJ=:)+\(EX;V6HU2WUY:3O06;+$\!=1_3EL0,M:0> MMTRTU&YB88DZC;M$MV'6B_I]&2TS/WG[L,)GZZK2K1#5;D/1^%EUWG'07MJZ MY1?=>8J1=^G$$:\AODG5Q-8?XD''ISHDL3N2>J[S;<_O&6"=>D;M1$R?/%GB MCGAFMC>Z/0/!U+,0W/UW[CA#>OR(;R]58&?ABW+-[WG8)TW+]0&/<'\BJ0Z3.$[9#, M?P3[&F'2EB]K8"E,T VJF*%CBXD,O]EZ=&];L=C70L%![9.H$BJ?B^B@3U^6 M#%UFCZ1&OK+;+!3?\R7F?E1L*T1>*BEC2Q+JP%B$R5"'+520](Y2/R'3_+H$ MW['_ U4'09") ,DF;V%S=!7W*U+BWR*P :\^SU:G+N;CO!F^\:^(WE#C!PI_ M ]VN;+8?IKPL$XR23I;)KH?')01=Z@7HM@I%YH;,-WJ1[X+,C]WO>0X+W0G MUM1X?A<$F:K+;("LE3,=&D-D(7<6SJ;YEEZ;T#%3F>'$JM=PM-AT+KTPKP9O MB_SL&,J?>S)0Z1@ZD@T([:BBRB!!V C#Q,F (H/JA"+R0%#=XXGR#;&8PN@JKBB M&PLX4\#;D, B_,%VT=(P;V,B&,MZ<'JAXZH@0$B<2*SQL8,M")6[R^RV^"MA M^_-^$^<"G3* PU@SY;EVCTY2/M_T^:-OAU3Z)?:M^Y"95<1+)F1EQ>?DCO[N M36=,K%A( Z)I9F5^!9H@ELJ^I+^--^GNDXFW=A^J)9(? MMD@6I_!QG%^Z4X9NWR3[>B5[,0%^7ODC\?Z+##?0)] ^(\$6,5Y5-]*]*_8C M$#: '1^0]#WAWK'D:]\?"3SZ&1V5QT3XJR[Y34T+",!?]B2IH#__YA0;^PMV M"D,5S':%"69/#'32<7UTW9GPCO_T=E<:6_#V4S7E/QS.YF_HA.@B]A>U,^41 MC'I@H]$43@@]Y+>'3Z+QA)VA:Q=L?R3^<'G;P3)$T(/(>W9DE-CE]47>M2PX MDN#F";1LX?".NZLVU))HSXJ#^ZXRFXL/!J/6N89R\ J*?07[%KVQKRQ?H3S> MKID;QBM?&K]LXM#4M1UY[+V#J?M:2@T)-I1I378^E M$*#"\^(T<+=@=]$C16 M"9,L8^%,UC_?0;\+^&/S5UK\L\M^]C"B(D7\.C9"_V?RU[K9BPV.CV_=$/E9 M8>,C8UVW#->"H!([[E]C62.*"O U5?.RS#)VQXO9;&T:=%]C@5 MHHB-4_:#GA"$UHRI_.)-LZ<'2B]L!?J>E$]+9/TDP_(N=2S*7W/*AR_97536 M=-.H3V2*INQ"H3EB,GJV^5(,V=@WI;N^40B,MVZ*?[C4'$#))]X[&?"*009_ M79=NAUX/QRD=^IHEW]7,!XS?P6O2&(N]]K*Q9/O%>D-9U1VOU3\-KVO#].*E MJ"]#E#[L$?_1V0C/A6+C9T(>=.0HB-3$%[>RT+*0OQ@$VZ(]+6['SJO"S*O(M<,W5J$&MMA M23!T5M- =-,O7'-,-S_"&T' MRMQ%<2SO. =%$>L@EQ#]R["L?.2OS&P.0O'VS:TC>BK-2?!> S\U2@]/,.+ MGI31(I4.88+4GV6H&+J<; <]6[/EPFEO]D^Q.!'?.>O%\-:(A]WBS:4*/']G MY2\R@;%W#*IFDZ*2ZWVCBVUF&>3HC%:KF'8R.94L+UA9-^&X>-8*P]I,V M1'_$O"O*3CBN$)#8H?^U A4A+&51<,UK.R6:465EW9]EF6C7U=J;).6 M[WO)V#+N*%3YX"K@ZZ[)3ARU")\N#U]9;OVE-WL"5'5M$K"_CJ4:[:TQ0:'Y M^VXW4-C=Z/]T3X9!,WKJP)"5>CT^8Q(F+2MQ$C KVBHZ!_?E7^5PG^/-O&5- M^LT%5;[&2N"'N$TH_Y>7)"@J2):T(.G5/[NPEH"Y$7HI*"L6XLWWH/Q%Z3': M 8>/V>NFC[;9>1,Z-$L9"@50/>S_A.)2]'=?H+%"14M]:3BY).Y>]13=U43# M$8$ 7Z!^PU#M%4BKY+Z@G5@3&PN[L?_]AB>?BEG+MX=%U>!W-XKBRC E+UL% MG/#*#XM\<=G-J>[BV^\$F5@+R'JNOS'(/!5-FM\02T4I J,P6L9$WGM*Q8W; MH!DV,JXH>152TO M?Q,_!T$J!EBB"P0"Q>U[)?XP@[Z1W^6A?5D10-]KO4F[!>L=UD6;K2(DH.77 M#0ZN3MRV0 ZYX]KKG#8=DMVV>0M*'X;N*D!W%]AH0WB_A_'F3D;HO)L&=/,N MM*FZWL[_DKH(HF !_PE]Q=,4QO.%NT_0&<0AG?%B*?D=G5%I% ^DP?C0]9$; M2$YSB^O=Q899[J&YR &"G9&+[BI>X?!"'VJ16.I[BDA])U']@\?*Q-Y(XA%] ML2>$2@T\VR=;G095"Z@V6DU M.UE4^#0WP#ITD>[0C3Q].T+P@O"WH.T*@%FI5- -,>$]J/ =T* X/*IEH >R MC'0!M"<6&$-5H4-KADK4[&UH0^W<@JZ'A_G7J041>%!M9IN?B-9H8*=/*UF=IB:046=N\C$1*^X->%CBT/O3V7_N/:A\L^[Q^O>6!V:>@,M1-DV M5=X+ZD.\CC J=.#6-2Y.73Q]A?#MW!K_O_[KI.H8.^7#PV%1/GWVO-C MJ-Y^\NH"PC[<"DAET%; I@1;. >_$'I0O!W;^=O?6K\5A8]N4?AOFWN'_/&] M2S%PGR9/;-^+U1A):D.V;C97HU$9M'RST476^0@&]5[;/&U)Y3MTE M3'_\%N';MC/3R;O,)V1GO''O]:/&>HY?VX(VXT"]PA [$)X(R/]^BWT[9<8^ M\B(PX8WR1A[GH?N@CRGO-5&RG6[HJ :TX8_0)YJRM9U_!7K&Y#I=@TM1"3)Q M^-*3%ZT9ZBE<.[][8L@B+\"7H,BZDS.H$14-$;]B=&<[LJT4>;0*:7.9=#*1 M/'PWRFL0GKU^B+\;65 _6-C1%X ZF;IBK.=8W0(P6IX#D7'X\1BM :+(@LLD M$D0B/^XN0:-LGYG>*K7O] @(1(ZY7(*B699AH@,#F*!A!DF>K?NKJ M)>"]:++MY@;R3V5HK 8D7H7L$(!_2A1ZK40BD3H;ZK&KA_K[4L;O#-OI[8;[ M3^5NO [#*X8? \_!<@#^H1"[K$=OK\PG*P M6=^B3EK?RAR[Y?ZV]GB$\,\5(KSZQ<5LIUNI<.EDDDRESEEC?-,BX_;6TD_7 MU(D@JZQH6-L\%3O(3Z%GKNQXO"Z>J[ 35Z^P+T>E,*D/]OQ,HE#PCN^PA>J? MD?$3AR80B\#"ZNAD@V7[67S!W7Y8R[6$"6\'*4C!LSMW.7T%DT!>KVN49,+3 M2\7U<1%TSPF72*93L=BYDI:\>DF[ 'G6/6*;+OW+@KZ"'%#7*P>I^N;XE8T< M5M>V90/R1\SJO.K9LFV,B^>*0^KJQ>%R5*H_/?VV?8%O3=:O0%9D*SIY0Q># MHY6H30?8KNKX39HF"$[-? D+$[MBR%4V?&SC2"7X$%H >V F% M-O;H"XA4^HK=MDP6)9M;AHJ4J;^5)?J[ O%T(G9V>DCF^OVU"]!GW:$O$MLN M;X+PN8S.-=%!W;ZF39^9]A.;S?H?RI[NM[#6#NU60 M=YI'A^//SN@FKEZ17XY,FWZ_8YN>L777 ?V03Y]?WU* E= 5?2CF_1)A[C4? M^B$W#$,WHP'=#MS86"I)DLFSA>8+G'"[ (&V,K+;Y4T2/I?1U+JRN";/+J=D^I"("_YPNL.72Y M[;,%Z?K/=%R.3)M^=_;T,-1SL#4>]OV%I>2VD425<378S.,R\201/__ZI=>>S]BK714-X7A/RJ"NUHO=>!4+ MN_P*V#^2VG<%GLR6W4REU,AVV0[-[DT 6Z%[FH]ZA$4?&=Z]&#*5*W.Y7![4[E M@U@]]4YE;B10XU02)#B>%.)S2@2O4H4O93J'2*&'%9J2FC?\9?7Y>?7]W7N M5J;?.8RV;G;!,XW?MZ7N_=HV-BI"PI:_H7:A9/<;QX.Z^]P+7#W M#21]X V[E2G#5\6/OFJW\?I%J#X/L,'N=$.2?,=&KH/Q%O#K\JBR)CM^?9_O MNVU1@1Y@(9+\Q, 29=T%],5X_RS3I F.C0 $@>ABY,<( $ MI_9KOS]KDP H!>634"TF0Y,%S+'@3&UH)N7?V//X1:.1-9,/2"7KXV GX_NQ M-P4EH/PACEWD\F*\,'/E0%?! 4(N6*B!#> X(.9FN7U4$_CWFP[0B2[:58!:N'E8X M\05(#!3*^CU0E3S69P EDP;C"X:&*,VO"QGN7E4;4/Q)%[Z(80L#U9P-)5'C MO8T&"K]"9TS1MH #'O]BJKS^^+N0VT_:^I1]TL&:EH]_")#Y^-L14&4P?](U M0J.^[0*1Q'FE@]*:-8D47O,B!>?IKK=_I_)Y2#ZK%&?OU=?@Y#TF"'"J_ M_C'&!ZK3@:9^,Y:P .Z.-O*SG6U4T$V0+<'5;%][/!(O&[H"\A@&XGXQNW7M M'OLY@;K#6%U%0F\!J.ZLH(JSRB^^8PL0E,!U> 69!:@"H*>QJ<+KFC[Q@GJV MJ'Z;[@6EXIYY%5+;5^/^(**IJK'P-=P.^^R)3_$1*H+*^VH!RN<4*AK_UPUJ MH%_BU]?A]V\O>70X%EI;@!+:(5"1,.B[M?=>]K\"R=@4:[(17X*"A4$;#_K@ MJ%2D&JAPUWKZJY]+CTP7ZGU=HBF\J)(\U'^(] 4(@?Y]_8UK/_X&OO#Q5ZU" M\_AS0TB_#NO[1'Q :R]ZCW\/-'EUX;YS]:9%\[!;)WR+Y M,R/Y1%P$,)K/<(DT&,%(/D9QT.?EN5%"R%""$(^GQV08R0=/;$J&1"2XWZM% MLBFF=*2,Q07'?'R$NZ5!L&-8V!BT)V4SWDT]OF+(ZT%@S3E*?0&+R'@#?3\* MF4-WU*\!;($)T(-2M+S#;\,O3 3(QPI\5Z"9Q@*%'I;$Z_)J'0P+EF';!^(M M&,3:G@V9YON]&GH=\)MY,JKSB]R!F7_9S+I8F;7U8?\ ZI@$8&8DH@E][Q*Y? ADZ+-#K0PM"'BJ+[(HX#*#\ M2PM@3.,@_\D.RAZ'[\-Y&^?Q\#5;#YKGF;4+#<,Q%!!;:&,)+<:@PX'^5OL$ M^I>H"TA(0PW3#\V)9_L-#P;2@9RL7U)I;;ST@'@.D"S?4?-]:]G9#*>R]><# MSD-_N8^*85H(&_X11!>$!2Z=A0$GYUJ0:-^#Q2H8Y(67.V[?,/"9W>$U\SOR MM#5#!XZ\\I>9]ECE3*")E29^ (JJTV)C$"Q<05;@$)\P] 8%&T(4_0^1+> M$$&EY&#"ASF*6O%!)7+=#2F!+JTO1@L0N@?SS3BW M1:FA_ 71XO85(O!Q S6#^__9>]?FMLTL:_2OH.:\<\JN RF6'<=Q\IY3IQ??_;:E^<"@K(=.Q&59M543TR1P'/=U[77 MAM]/1Z-I_O&K]*9IC9G0EX^LX9:.RP.+-8*&'!;TS,;!Q:59DMNB_)C_7)+%DG.^RXB:K_N"FWI^@#'8?21>ZP-6%RTL.6==7 M>?+TT2-_HCY2!V33)6(O24LCZ0:':E'3RN,M]-L*(54E?V%Q0'XI_NW.:@IP M0JG?8H6UR*M<[XD\+WZZ.SRU#Y*+%,T;2&K^SNP:^P?%%(JR%49-$X95R-%Q M*,**98>IGI(V?4GFP-$UJ#:?!41?M$05*,B=QT.N&5#ZU8LWE1F$$8FNYE7M9K5Q="/S93 M0)2PR0\_/C[^&4^29"U+.U9TH"%I]<^JX6>A$M/EE7LAHA4G"L9U,D6,230= MOBVR7L/%&D$^3GX*WL@7CP?&\YN2_<>W%6D+_;SN$(C-;ES<5?;0QMGTV'<9 MQS(OUTG)]HR;IV9B]#ET=&6!Z'@4*[IJM._7!8E$YO8J-1*-F$%;ISQZM\L[ MI*K$MSAJBUM#%XOWT8[\-4PA=P_%:!(FL22GHW4MD1D-8K?:LU[633;.OQ9J M,SCJ32ZD ;3QT''8+A?^,AN,[[TWI'[8).2V8-([.9GA6;%;1 MZ70'O*^*?_;T# G@(18JMQ8GFV,SV-9);I=@II*W;[8OX@.:Y*M?)/"(M)P6 M0(D]5"RXG3>^XZP5G>V*+E]KCR3/^TB.OXB,.2O1 M4<&!7T+]#58=5__T0DJ_?N$X&-TOEYF1/1%;E,-CZTY.-:9B-T3%;>KT+HO) MKUB M-U^::RR1H=P4K8^D:,9M@U"X-*@G5NYQRZ-"CM.H4R7-6P4O4)#VZ.: M16:04V8DF-YY=8;()4>/)8E +_[N4QOR?E[H),+\!&$<7F8,XJC,-F1B?3SL94/@AP6FI( 3(R#U:])Q_HA).ZS)C)L.H A!)5V8(_+@IPCSW#29 M-2/@03A@G98&//_FV?/OA^.*OS2(@G]6#""*.(Q&GUYSEB)3;GPR$SY$?R@*2LTUWK4V]8,:_D)CE;DD_" =^M",@7F,QMH332 M=$.?8GA#O!'9P PRPUDSY20^61+M]#G(K:PX.A]Z*%/4N@;6O48D\'WYSR3K M:;4TVWWQQMUO-?'83T@EYP"YD''RENU1-;2F6%Q IIT?((4U?[0H0N'1(+%YP\XH>2D)&L)"W?9(-L MT(-W/[2BQ>=V/>B$S8M%;YH2EX0,#G-<-\[%]3N<<"*;MH%W5]ULTH)>[-/R M36 _C,<(W#G=V@_DF,P"DG5CF\U=4>Q1WR[5!//.@^5S:CG^LT7NDCT6[5*T M1RLWF\^:^E_+8BY9TLQ 0/AX1E/$P,E.N KL;V1%R[J5'-$-GW-YOFP0N54Y MNUCF([%GK(EPF1-[5S3"8/@W!9+0.G$+M\53-W,Y@$U8F$\%@=R6X I$#H&: MYCY\)Q_Q3:5OT379A-?D"^0E5H CL-\1F>>?7*P#C9DJ3<]JRI-)U4"X3EWVHS1$B(B M+CG$\=)MM<\$@%RGO Q+7#R7WVI8>O'CQX_8H.:EY2U7HH^ M%%7CH.?L7 419R@)SI9*GC6*4L&L\^*8DYWR-*B?AF0-:RJST)W&2B0,[%D!GV0!? MQ31,P6@OAA TI_D8BPW5=U9P>/P]?7=J!($S#FO:7Q1YF2^R2L?'2;HM=>[R MVN2Y5H/PL5?6&@"TW(N/2T-Y?TQ4>]OJ4*=T+.N3(P/'R'4+:_.&S?*5.@+! M6D9C].,*DD0C+H'S_CC1?)R\%(>&US@:)-XU81:M3OU5R[W"D)C004%>UKM' M]&&0CF*(+:^ ^C"1(QZ93>V&#!>&$KC(-CF] AP(?.O@398BWR>_YM&_M5S> M0[=&?947<5H%W6?(P6&,!E_T'W+PO7FTQATY)C\Y% 4R##Z/S B(NB+=TK=1 M5N@F:X,^'%D-7900U=L3Q=40$ MFIX3VZZV,$2@Q68:KM_C;Y,JJ\CJ@3QY4*T>C*)[M M"F F93V]X@ J+[.4=45QPQ B*/;1BC9MV2:T/ @X9<5%V((!LQ@C^#8[+917-7T=SSQZ5=-_)@]>=:\>>AME+&5]$\ H,X[-;S@PLD(! \+E M#;((]'P79MT*'D_X-%1TE,/4OP4Z)3^,A6!S01$88J$?P4%7.8=8Y_H*^3X [O#E4[._)2,"H,A6XGT<3:J!9DLI_NT8!2U-TTV M$U<#U^9O63O+_IG\*+F.5UH/VL*YNCR6@0!A6K.890, -WJ%0WPT+3.2D-=U M)X55>!5G'3?TY>HH_'Q_H DO63K2AKCP(_WCN<0SW]/%XZ7I(T36O*Z[-2UR MYRI1/7@'6P:T:MUS[1LY.D7NT;)AS2YY-_KJYY @CQ^=R%OIR33: @5R];1O M_<[0.ZXS!GT'XMWBP<'PZ&&DD68N200H]'3$\A) A%=C':U1W@6.SI1D+N<6 M(717V7O.J,X\RE9AN!81IAD\X1F8^S]3=ZE3K#I*/)N"@3ZT2O+2MJ"CHY5K MH>M.QLRM!7#>ZI SZ0R!+;P$.*"4$M(\ !:9"\KF M-TXM5]A.R6DLJA+YR N-QV:GB%XS9Q$F")Y:]]P8O]U.7?DA85Z+,D>);^@+26U@N'26><-=ZR#(82U'ZI M"?]4EDLA5/2]KU5.'6'IR.7B: L[[G6!7;'E"J!*B,QH"@!JT@]*8)?EYBC$ M27,BWWG/PW2NP?\$V26C1W%ZJ:[%HJEO.(03#,!=8YVDQ6P2%Z[Q*\DY6W\I M.1IK(9S]BM/<347,A05Z?G"9AKLD@WJ;K8N HT%Q_55]G?GJ5@U!T6[1J3<0 MH!FJI*9I^S?D'\)[A4= 1TF.@2-QT#-E[ CCI 3T_"E')47\S+*-*]Y^T=Z7@!^MF)[.*86JGFF!BP).@6_"NZ48A5;;=D40 MW);-L9,<3"YZJP-GR/0"PP&H2^8[&)\68[%JUTU+:[=\=PQ?IOI2 W/@#"SL]\E-H\DLNDIBAT3R?W> MG"EQTSMIM>"/I%MKB4LI8I8GXC#:F=S.-_)MYN58Y>1^R8/G,$Z.Z$>DIE8K M#M59Y7&(?7 *2"77-QAY*DZ!9"*9 M0$%/L#2>B*9PK"WP2B71V;WJ\6KCG-#K]$QZZ2$1]TDN=53&;J1P/&.G87U* M ]V,UDDQA%APXK +:#8KO$0"#1W?5ZX)X[L61RWXYMEA"BEE#$*X(V:I=1!I M8I%(>=Q]K*A_>D 9'% &OQ=E\(>9@KNMTB:?EIE!B.TV1[A=OJ&^"#DUKP!$ M8-GM5LNR!RC8F9BYD-ID:Q$-XLUKX8OW1 )9DFZA*J.1.;$2F&(A(%EJ(-E/ M0KDN[67"MXCDXS33LA&23YNUVH]P]2&NN/R)S3SGBFK];^@6@B/- C]I@@>R M3 M<=J%(TX+J* QY%_['.Q_6L$)E5SS]QEC(Z#\Z<:SW)JK$P3?57*292MB; MXH1SYYDNZ==:H3Q6ZSX(>=/91+H0JK^](E4Y8*IC+\@4EX:#:&%:N)FEOQ]Y MM811H&J?V7U\$#N.FC1A.2)'MPNF&;. N,D!83NS8),!^7GT#:;K0UDPYQ!F M1*2B(?N#!3.J!>KUAO];IH2O0/&#X*-\$@EX#NCV>/5$A]CXV9(.I0BC"!QV"6N_,FW3Y._ M'UMH5)ZA>'8N2YOI<]7W(\NOT+L([B7+SCQZ_#@(7#QYSJ-U!4JP;-8<&?/\ M=CK:*-/#OMP-5\F37]P)EMQ:C4F!-2HP\Q5"0;8(81#1UK]U58>+@F&<^B7] MFZ"%L.>[LJ^I"Z/0?_V:)CG=T4F>6GR'3N7L9=:^(RF=#FB2G"D6A^PY)FB1 M&=K/6M+"O*8:VZ:-TW/%AK-?JG!:?NBGO[RY3!%C2[4WE Y1_G$Y11'XRXNW MYS*B7[,&'P6+")M*XEQ<_L!Y,I_F*2H0HLG06YCWX M8%V$UXFQ.JPU5*4F7_N"&J9WDHN:IR_E&L=BL. U@QZN6AF;E)"*U=( M.A$#-0%FCA)[O8$.#U%NCO4OR@=#S<]SH9-/N0P' [I!%0ZN'C#(2!%*-!7> M^W56:NUNV\.=JQNC,0O?+'%6/8RI9R#5"QR(P#20?TX:FL ,+NLJV\!9ZBO/ MU <'7$E10?BF[='FVI[)V;U1QM/PF8[709:N^):CW"C$HOO (O7XE2\O9[,>//%F=5)5*2FQ*I[N7 M5G2@,FD109DT6"*Z"8X+AE2/9Q1=29D5?=5!]%NNX3,L T,'D!)P+8A_58! M*[B"O*(ER"$+I@(OLHIG%/%QQ$&$!P)7+UZ?:Q670,"T+MWB8KS1*W'V3<:G],%TG=DDG)5.UA91$R(C%IJ0#6-)8HLE1%E[=&5]5D[5757U3K?GARV1:)7;R!0K)@*F-,-MCA@L M@9HP^;+&8K>7:C9K/P\+V ,XFS]"J-E<"G32<5IP5V:*JK7B7 M?4).YRK'_C:_SS 4;&1&S)>S8R4%"J#;3E].N=:.E\I9\I*L?'>$?2[36CLUZ7&GA@ MJ]*IE;+&;F@$*X(\,*1N(FAEF)VM^/0^I0>/IHF"7KH&:8"8-"XD\B7 ZJS( MNJO<%.";UEF]4.1C=*]I70 M1B'*8H'/A0&GJ/34[I8YPYRDK0.7Q3O:?#T:3G[$>;/OW,.XZM[^\=**[MT' M5H[/E:_Z(:KQZ>)D4\MXMWF\(,PW67 Z<Y E9;/U>Y^J\CEE%8'>;QM ?/EX]LT:7/EZ&MFW MU87E.ZW3 !J M5Q[X(,Y5&EP[N15).X]9^8#J+LZ*040M#D0E0[*2>\0F(<@>T M>3[F;!XI?(ZBBQ#E(7E>H!?&7//0+?>Q(J'](N%5:E3,VA/H_ ?*_Z]3%?[- M(5][R-<>JL+OAU[;LZKP)&H2*%F39##CW MMB&H?XE!H7=3$!J:@JZ"$(']GNTB2R?Q]4?ACH\@(T'P\L79P_A.,>%O717 M+B-PD9'X6,E_A47]\T&4A,L9(%*LO=_@HFY3_K,0,NJ*X357\@>+("&;D/L M1RM]OB&3,)FZB=GY.-"#Z)K9H$J(SUD9W5N'5S7 9,2 \'[:-ZV4[_R&;+LV M"EL(LQ\;Q[N\!@U"<$Q/GU#[(91)1B M4-Z\8B>$5H)/D7!S8,;ZMJDB B1F-BOH!G4@%=83)Q_+W 2SR\E^H?FP"E7% MJI=*)1@&AVY+_AW4P$$-[%8#P*T$#5Q'U "^L6_A *<#1CK([)*V6PK@8^C[ M!]3]D:!R\,?AEP+:'>38L[*,\A*NY-[X(CA<E[KKV.H@7!&X?I$7!K\6,6J>A#M/DF[ U7-G@F[ M4SN1MPH\H.GVUNCE'(I),BF0+JJK77=-F"(88-;9I#&; MB\VV(2I2?A"DP[;KJHZ%_<>,- .XB74/LH]35.,&"E''G+ L<:08R*'<@]9<;.PI@T5--QM*50@"=.R+\OQ80/\,O: MU82LX'89I+\3A#43Y6>69=(98Z\LX\UDX5!4YX[G/#E#6?C%"P$^G9_1?W&K M\5"];00K2YI13.\$/,T,]@MC%=(@C-[9;8Y\/Y1!79V5 PU*ZU9X#:WM49;3 M*8 PV MFCS\2@S'*CB@"T>28% SQVVG*SG+N1K$4QM0((9Q+3$YM0&N"7(J12'B5^H@'P=P\9 MW8,Q,Z 3IQ/RNCH2C>!(M-H],%RX$Z;2>X5X6D_U95$? ^#ZSF*AZD;)@K&& MJ,39PM8ZR IZPTGU&#D\" L"$&%@BJW _%"J*7(X BFSF*2)YRGD")B1PU'/B S ' 42+#] M1>4KGPKM@2%+M<%32=R2R"]=-2%I@/?+8E)T'N$22%6TZZK1YW*/W*B#Z-DW MT2,E4,);E/R-KOJ9*/_D_.@'T/Z@Q\&>R"$9:LA'M'W75$9)-&+[+H0J.;JR M'*27-HP#0;*K[N'C18HD!C0#&0F6T'*T=J&<(,1/Q-38YE#BQ[D" ;X+K>0W M%E71P2]3'*_F&QEZN^[5[YI.>S(0-Y)(I?-J5BQ69)O'T1J@>>H$,B#?K6\?/WKR?5AU<\]@ M?,\.,+X#C&_O:%>^6/AO%S< F,I=],\S>,+P=!6MPB F/0!=>(W^&CIU0:6I MULTB\NJKI<+NN:$6X.\*H63K$O^ M6QO/(QRW+NO&2>!\*DF ==UIUL[>$($?%@5R#Q7"FYRX"P?K87]2)BQS.W(+ M'2D?J?=SG(O6WY2_X&31**V!DL-(6E=DJ8G0'#5X6TNJ$Z']0(GKEAJT9WWW M>3[ 7S4^^?3KO96 SQY_\R$)>!="!RGY(\!1IPJ19ZKWF?MH^QZ,M[]FILW8 MVG%I![PC*G'7=LY%,SN"F[UQ,.7()PZRD!*3E&[LQN8=%'"#O]35;R=-77?, M=9?KW8[F&$^(.3W,: L*].=,-3R<(.-/HRDR0L!R!(&8 ]KWECMZN'^'^R?W M[U)25>&IY#M#AS]G2NX9\Y,)I]Y.BUM= R:4X="6&M83*'L'7:&MIF_M4[CX M<"SW]%@&%'EF.MZN"33;04YVDQVQ,ACXQMQ@(V*@%+(JLF@S)9N)NY#XG!,D M?ET9\D-)(.-DTCX=ZC_'V3N&?DAL;F1 S.L"#$BJ%): 7&&U3=J]7#)%7HJ>0359P;[ M_ZH2_1#J^.A0AZ->O:OZ% @[J15Y;G'*;SCP..^!GI<# $ 3Q=F( WXS[Z8 M7I7ZK5HBYF%,W/4M9(VKZ$V!MQM?URAR=6?<^",2GPY]H94Y:)FA_1H0T8@L MV>W \2B_D0]Z<&(42&H)T _Z8;KN59[VAU\F]81+$KDHIJ35B^BE7, \R,"N M@M3P+L"LY1FVUITY'%W&-DCVAFF'VR):) >!&S'^$HV*^USTSJ1]F.-PKJFL M!->#6@G2,$+_[V<>'13$YT-$VC&(R-V(S<^"B*A/+*4X@XI&YF,/;[A/*!HT MC+-UW*_(FM_X2N(H&KU=42YMC5J'?IWT1]^/D+4]1^F%O(4Q2$#6' M(E6$F31%!CMMK?4I#G3?M7DY_RL@2&[/11="':_6AV&=$N-N]54HCF1^FP=4 M7=I=_?H"$>S;Q&D_0"$QH>_F=@:*@'R7=:7FD;NH:^!J16ICJIU.7#6]4 .X MBEVH+/<;'&=KP\6-''HZ!>"#WQJ3IG&9VWF2YZAYPIY+U=56^T+?LC!@>PB+ MX'#J+L]?7<#JX(YTE^=GE\D#_NCDLG%)RJ4-YF"8_GK]*'OR(&T8FBO_^ M*URTAS+E-[\^3AYPR&!9=_5U7789@-CCR^67WI7?8D!?T7L>^B4X3GX(.56W M]UPZS7&\.J"V:4>V&-;7CI,QE1[34JV2-/6D1PT>_;$"WMZ>RP3$F;86"[//:/3K2Z>7A'4BU+T4GXC8@DY-X/19HP+G-$G5TT4.3 M5YMO6X&7WJAA&[(YFITWW6 BTE8-^!J=L'1KL59TMQ"2;-/"NJ#6X#:"/]/( M0+VH\=6@3"(^3@0JK4 W'W$K73VG)_'DSFH(4I"J6N<<+U,:4T44]I68QJZC M[P$7<; %80NZT_92S]]9<.KVP!!\W0\5Z?C]\+V(=O&:?XX%=,^0I]\>D*<' MY.F!0/*OE$#Y<]%R%Z]4#=Q1#%DR-B$R%Z)?2S 7 K_)UD.1_Q MH -G(6X^8-$7SMJV<8&+#;+,%QG:<,H?Q9W#7/U#HTD6K13"H159M E"^!'P MK:2#+T!U<9+N0B7\Q?< ^U*&@FDM#;P=6AR)5/. MD8AA0J6"6PE-BV;:TQI-:EY3ST4=GHS('=BG2.M!D.ZA('WRZ-%="]',!S[" M/J!7=-"1U+Y\\?-#N8^3S2"R068&C7^U&MQ"+TJE[]XHG0OGLD9\X[^>?TW_G5^^<__@UE8D M]/6#?1(4!\3*_LF)-Z1'L_(N1<6=Y.R3-V7?WDUH@6''?)GCN,(@[,\I;;%] M\+W;Q-J%F3O):2I6'#KU<1_E\Q>GR0,?;6$RN-,I_5L\, V!B[%QBS@\>0P! M>/+X*?[WR6/^7Y:&3[YE:?C,I.$W7Q^'PS'0,N*! LMCV[(:BG*7>I_E758@ MVNOJPZPZPQHSA6P&6PW/7 (A/U+8=L<%88%%%<25?41;$UU1WV,3Z[[&(FR* MC \>;?=](@ M!$^6 %HCKF9O8"FXM$Q1Z&%"Z+#D=+WR^(JI_W(T6@O:7U;>8 D7"92B/V% MA-02EOUZ@8;;^&I0,ZAQ@Q#@(52)2DSVF^![H?F..(! ?: M=PXACYS^=D9XE7=I0-F#"*=L^YD& M=@OK -P63,Z\#$S3HK5WZ?WVH]'X Z;^6!]XS/^@=;@LK!&XM!P=&KCNVC.> M(B.!N:J[W)J/-M<&=28YL^2X,Q I%;D092E# ;T0S;7GNF@TV6!!R$('DB5O M0M[F0;<_EM02M<%;H\GVZQE$6SJ.\W7A7P?=T^^+TU"6W* )L>%X>;>T*/K4 M5HB]TSJAFVA7N*X%D[R[ ;K)MSYVXZ-E:5VC%XD"]?Y\T:-$Y=":R+ \[$84 M4@@9TH;0Y,V5=8:8_:G&U'&^TL%1A+ILLVN?*L@2Y&R1NZB%]PVM=B6^[4R- MB(2$!\LC9 .$3NK_<'8 S@19[B+7!VC"-@]P@@8D[#9KV-L!;96>SZ A@[MZ M%B-3[,B@@_CH%DM',728Y B:5'3A:)O39L\VJ18VFVSS[JA?&[;%VPVI 2.7 M>5:2 @[;$FGW2FV#7%=R:LG.XCXOT1^"7^GS=)^159CVC6LAR\_LU]C9KVR+ MY2_6##B; 6E.OK!IU#L2QA\M?Y.W2GKC=>=MPM=^%2RF7CX4-!M+I]1M?,X24BEB'?J* M-FU=RI;YT$'$AA'A\94T?*MNUI5LT^4F 9*'U!F>$N,WM!$ 8SW QR4J+*R% ML7N)_$"M3H?;Q=A232MR!ZQ6KR!B*'JG>B'-)-/5=5C>[A'MIY"Q/,"M$BJC M@4S&.$XO7DECVE,14.+$O'QQYD;H!SB0+ZY!EC8K"'T(;4A>YB& %-];\-X( M<@_$IK4GV97:3_,!=NP/!]*"B@D^1:S0N*.ZK<:P"9LF9IWK8M^[K0\7"_@! MC9Z3;@X[+6VDY-''.)G:@[YQ%V.<@,6"5'"-$-POQSK GO:.<&^W)[7,&MS9?P7$1RH?C=!- M!8T3X^!C-\2W2=";)JL6I1,"7BOG\SGCV6L2LGF^)?JD9EG0XO)5KEWPY&QB MF2[1ZT1E?Y.\?7WAJOI@B%<;<38&%L'=&4B?R6&XVUH:F+-#/H2@ZE)H]G>0 MXYDF2R/$*CW ZI$"/C[II/*AM@'*HN?L_%G-U4"N\V80VX*760D"/@IL;ME+ MHL_5%A'U&%B+0U_#OSONE E;2H-BH0*O0R;(5(XB"66$/9T'1;:48;JLRE[) M)'@5?= U0C3H6FL#--*RRG MZ[:Q)4Q>$$:$? .4]DO>L$^(Q)W9#NW-!6=">VMK$QX@63(Y6@6.Z<6+5_2_ MOU1*;QMU]?GK[;7?.3)N>O+N7FO>;'AH52M3,!5Q.-1L_@.Q:3 MOI,HSUBC+6614C>B"#*DPFH5#WCKRDI9B6^HY3M673.?)DV/N?BJ#O$*/]P5 MLAEZKVI,;)632D+ M_:?SLX=/H9.%$?B(NSSR4HTDNJOT4,Y8T37]V7D+; MF?(RN-6-]X'N9E._+Y#')''WE/PB3.WIMVYON[H+?VW'@[^&?4FYYXBTAEG+:EU'U-5VG6F67"[/B93=R9PI?_R?W98@"H0' MY+/CY*T;(%#/DC.GZ%[-Z21FBB78 MD#?3&O"&M1I.Y]]<&N#D26IG]@N_)FT(^QL>9+M(E*ET78U1=*Y M[>@#S83Z>'=X09I\D36N/GC\B!?1.0EZ D>3V;Y,Z2UW;W]N :0&-DW'B@W1 M!"",^G!=7[IUO73KJM,QA9S;.KS)FDZ>/CQ, ^8+;B7K_#

&/N.*7;/.5NCY>!)A^N@"Y@/0A9< M^0XS*[:>XD'3FN3OUS8FQ'/)Y'*Z5OKV[B+;E'[;0IBDOK9YGX6CWI^6,/HA MRZ4NW[]<8\,A^3/'5,0PYA"SULK36BWSE#'D6HF'9K&-@6B=?0 M:6B7W%VXHA-NS'1L_K0YL"OBCP1>LZZD>J0OH=\ D3SJZB/\?W:1D;V0?6GR M-9[$R-?KO/V*SES%A/PN]V,J3_(9VH4TVEMX]WG#+8+I #>%T!"P;D<0?=I) MR16ZM?=Y?!A'[H&LL(4&)&/'G@QI[%G=N"/K:WAK["IBFW">F.^!R+]'DH*1LUTF_HVLSG29 M<5)!;,"CEB;<.T8'Q9? 5XD!*8X-8>7H$EB!CAF03>C MBWQ8YS6+ARNN<$" XL-@]&=Y8-#].BZC0 J1Q ^_\(Z4R]OPZ+_P1_\NT[BO M;[N2?&N%2T8_MOAN@:28M@U1L1!PRWF!$.[F.$N2HZ?824?B!2"OV\L+_O\N M=(?/Z5SEJ*=IU1O;9EBYCXFDDT>'3-(ADW2/,DE!CV^G:>HP,!I$[:R!_5QB M_"'4;*X9![GFK(^%,)_*\+^JL%*TO8;=LIHV1QHT )/4Q_ FL2^X"(I1(*S- =HE3*=Z3%/Q["#D+ M/80&E";)VR"-7WB6*1B!KI'26=C?7$HN4K0Q8I8C'TP6"S9JX\F/:(=%S:Z9 MB0_+R@791]T2 M=ZMKK\1QHT5X*[7K0.!#%6]+D=H)6%R+@AE/<" M;@J2ZN'B:X4/?UTLDH$-RH3S.6*LL#<$3",S3" T:APD:_7D(AW^A9%)2,^4 MF>MX+P;CS)=HKFIH]]+0$WH_< M,U!5EW;1%J3.4-(%I=F36_@LW'T9]+E>&5XYA?CZL;3%*F-FN-T962DX[.'9WE*VB*T^F M,U9U;X()[[:8)QSK&<##-"T8RS;P:W$5M/2 W%B6Q&).5TP($0B;K>PHVX'Y M=5U>LP[PLHSKX0)>LGDN_4W4U)OE##P5KF#!$7G73&__U*_M4% ;$YWV0F(, M:Y*9;\"_QEE1#-(LP"'94^0"8^!Y)+%(]/I44<0QMQ5?<2BG !%15/,F,]K 0!UL C=\ED?KKC/C[K&_Q( M?3<&V5H+:(=,QT0PX29?PGR_9BU&]W4J)4%.\("BZ\4JD5'B?>4(T:EY)7 M8WQ-1I:1>P"#Q<-\-%.$XN M253ZH@'!A<;9Q,CO=1&%H+&1"RJDMX8C& NKG])^KK*-B\M)(G/ ,>H00AYM MB(Y)4O@D24:.0*EUII?0Q25N3HN+CR)NSM2/S;[*<9<6Z\09 M%_H-QLYZU"!$+KV0.N69AGC(L?/H8R !Y25P1S=B.^Y/.@!FCUWL#QUQ;,6' MCKF !\9_'QW%!\5#312Q71](/8= RF>%G$+GOYLO\/,OIT?O\FI:-VER6>!G M;7+ZH["#R#\?ILEKP)0NJJJ^EC.J^8EJ>LQ?Q)^UC/UR4]5K>DGT%QJY#?WCKI,-^A3B)T?"0&HD[77N[318!-= %.0'DB9_NXC^B7'KL&6J M/"(;4B'U&OX* R"!Z C,*<\9)47GS,_JPH9N>VX9,C_BYWS#/.[)NU!Q^S%^ M+_CR!\6U#BJ*V#CASZ:$EV"FN;YR]J2"^85,]5:VT;IQ02!'4.KBXWXZ;\[/ MWR8_,NXA7-&?^:<5J=?+-/EQ-?DI3?Z[OJH7V4V66(\&\KZ;];&L^\]U REX MZJ.Q9[4:Z+]T,^-7A2"9Y+X$P!_]T%H*]&.(T_?!<0%3T*V0PX3WW\C#(ZE) M;Y$1. , FM1)65=Q4V7('_O[&J?8_.?%7".TC'KHPV>Y%)&G@Q#Q'WAM$1;< M?H#'1#^:^Z >.0RHF] 4^@WF?+,MU;WS'D< O_PY$A]\EJ^X0+F.$#I<&#"; M-;G&CW'D^#ODP4!CA*-Q3@W,:(V]!R;PCD87O+^0;SU7, \$:MVHPZ@OJP,O M=[#T AVA%45ZWI);P6-NF EXJI1"9*^7R C"T>TX:I^.RD;W@__39R4-0NRF M2$YI:8)]\36,FJS\?PRE*_/CR);I61\<21S225-R1D,=.!D#O@TNA8S.2>#X MXV5<)M0B.65.;2\VM8QGRADHF+-2[.,+V8JI[ SM"W^_RA>98#NTKL0BU@8) MT?PG"N+XP NO'1Y+*O-&BI[SJ2'KS#$^3D[)D35(%2ODH+3]435M#:-=? MCUT_9(B"\$](76[=+L2SV8*^X:Q[ /P?"( +):B#G]RW?-')(5]TR!?=;;[H M$\*B 0Z0;KX40K-LX#O^FLOFZ3'[)*XACY=Y=@VX%:U=D0F#2I3%,=,UCO$% M*6HN=NTG)9JD,>$ %UR9=>+#1A'48F:LD#.JEYHYW+,D'M8*]HCU 5B^\\##,;^'M%]C C2.UA6B6$G('! MA]@PIG.W$(4R,@*(9A?O[%Q3.<1G&JW^Y3KMF=A.7#@O5KFKH;?0[+E\R&WA3 MZ8"]+QH_LHJ>'XB+#NH2?492&,RM:,^&@#M+2J"7SLU)"CRC])-;O5#(@L-&:="I*./$ZL<,NGB6&(XD&D M41K-L]*PCWBSK#D;:I>73$>E:\0&W)!A4,F^F:_>" *?)X!CA!8T^8SG,;1= MI?J\*QI7P4ER:TJK!7VOR8CA'M$F%O6,Q*9)&UWF$$6)$.";\[\]M :-J($I MQ:.'YU%)O7P"&+O4^UL.V&^4/=W'>"U8PJPX++,U6^.B)QS;?D7^D-24 /W8 M\^"DJ9,D_9F/AQ[S#G0.%Q?D@S,;"&/;0ARK40X\N'Q]ECQ^* ??R:*QUZL) M'/%^)>CU"$CE4@B'\N144OD5C577E.T)WF&$ ]^(4CH5T## >,F#TXNS-Z6D5""A=I#"<=PWZ+UFI:W)&D@31R.3!N\NS MAQC9I6-'.0T$F,C)LU@/\&<5.I?2/WDRK@J28R$"[I])/(:31KRF)%XSTS"T%(Z;E]\%+#2*J63:$ MLR]?)X^?/7ITHO?-*-.2=S7D7^ZO V*&$E2?)1?O3M]JTLBENM+(/^-8K,?4 M,PD_7S(6/,[Q&<@13]N3:;V+D3HHD:S)("%A94\]XX:$MY@I+'=Q+-U; SWJ M[9S>B8JL/-(^JM(G@ -&\EX:R'5?PG%T_$L\% 0D@H&PO[0FHR(_X@(^I^3& M9.= V2FCD"DX^@.?MD"ZE5DU(*MU)WV@HIGQ@Z:B''JT ST+&IF9!L,0Y7 T MB]/-A-9E^/+]B5R<,H\+F1$34>DL7?APH_->T77DR*.FF*:3COX13!]9>^6\ M;S/VV3I1 ZL007FAS#2:&TT2!@]F#/5!>2C*)ARHTW=G)Z3P"LG"36 RCE" MOF!!A:J<5P9B%3DN3*-D1AQ+'# + A6"5GT,N6%#S)N<8AX';V7GS MA,.Z,T,+C)P*A%!8<_)KIO%IIL=)*SR5EEWGF!E)HQ#H.B*_D1MT!(O!Z<7_[XD-;7]3Z\2\R[(3VU:PM\ MQ83+!HZB!M\"1E0PH2\XD1(("UJFR;*G07IC,8TJ#5)U+#JATR4KL!"&.($? MY&F0$8EKV%/-G-1!$5$:$.1J\0>.:[Z *X>[)GD6#<72N%)$86-)=B,..Y$(>V=T<; M^OT@VC;2J@85S6):?KP#B7'R)U$H])%G'M?O^%CSMQ*^[!H;E[[O1.G4'2OYD/"\-F+SI_\9 M+M: O#P()@8/QJV>TZ[::MF_C\"7_IT$C$ESSCX8J'5_SR:<+\B_-QKY.#H; M-C\&KW=6[,9ZWM"T@80&S\O__Q^#]V3%C$CUW! M1[=-^,L(3:"'+ 5RL@533\*Q[\'4? M*U4#QVJ_"P6KG8T/+UMP3IY_X)S\E9;M'9DB6PL6'KC/$O)_T$KM3%R.K-VM M;PY;;6P?FL\6*'_&0?G[>LDL[&1P_41?053LO%MR!/[2]0M#38=AY_) MQIK5GS;3NYGH89_]9-\A/)6<8Q=1H\-V^%N)>1\N[GW\C7H.> U_UI,FJR2>*3WN ]7]#YN[Z5+?ELLX^+-X8K>KSU\ MT]3]O:]JNIDOZ^8& MPO:=4BP/+JAU]/K2@,K1M98O?GP$]X\>U,<>^7N&*GY\0!4?4,6_%U7\U\R: M?'W\[7T,4G_,S)X>/_ZK3NV>IA8.:9-_\[3)CTU]0Q,^Y$P^8K>R^O[AOA(O^E)@N<%F(%M.B\$'] --KAYMZOF_LB M+XMK+3.Q/#:H(@!R?1."_B^%F>-P<>_EQ7T'0O"W6H:F18,H87C#-719>;B] M]_+VOBSR9HIBB#=:6^OT;)@P^U.CN']JW/8S*UZ,HC7D;D*3LHG0(T(FNCM# M&NX'ZRQQJOT!N#+Q[0^G#Y,'W.VG09$C?G7N"/A:LFJ5@_.,W.E_Y=*YX:R& MB%4ZIO.+L[.'1@!TDDBSBZ#%IE: ,M?ZY8_65$$JNM#_3"O1:"#TW)F%_IB* M@TM-K6F+]!K4;S!8:=!=+O?=K%UILJV#/7Q8\3=G:BPK/I86$DR<9JJY8 M>L&K"TENP14DZZ8 [7&A?+Q&V*) >6.2Q@-=,Y%Z\C_2*$J>6SH+B.[;] I0 M,-HA:5=PLRQ*(+U<0Y"LZ1@)YFD2VUP)B)D"*F#U"HI-0.6<6TN>G[@@X4S[ M1_CR(Z-+X7JMHJ7CRN6\-*/ZYHN7D(@WKAU./^&>G3'E#7C\>FBYMW5RA*X0*#2[GGG!E*G/'%8U(&'H$"EZM MEXM2%6RU&'*UJ[Z;B.JJ+05Z.+6'4\NG-MJKPP1Z"FTN MV*;@N#:6DQJZ/6* MGI*'Y^]H+B%D/ M7<+D=B53EPXQEK6"ES8[YO8J- M 5QF-$5EVJ MF7 (B"0<\2%YJ&AG42CURPT[ __LE0%1K@Q]VDHOD;7$%D5 ],K>3#8V.NO8 MQSP"W$_\'7&F^CU=*FUJ-LT=I6'0?$4ZDQL/71 ,9 GC::A31X?H!8=T*)L$ M]!5"PC0B6Y)93:]'>%5XI(3_N9[/DT7&U#KYJE!J8 O:U173<6+=,Q[:DFT; M-(%UC$K&;L'KT(L1ICJ906W.)V:G4]?LDK0YNT%X* M*P@?,;A$WD9C1B^EOH?GQN$6D3-$.SL?X^S7Y C.C/P0-3<<9?'[) M+^!T0DAT=.82& ?W MX'!1/SU>D2L9P"",ONS23)+6"AJE.'),B38RDS3'&]T?? !1 M2?LF3/CF=+2V= ']&RO68#RWW-O[5M#RY%#0ZF"$52#ZJI!Q(TT^RDNGP M _0+61-"9AN$'IFAW[AJ1I+=S#[-(8XPU71]RY5]\: MO7-@T$S[DKM "6>_T7)$G/I,F$DV2:FQ29/!<$!*)&*X*T:3H3'Z/WMPO&LW MJRFXW1M$!9B]%LW7> !&:R-2KDPK44IX@M1=P7<9>[HVO:+A;U"'KNL;PSZ M@S[PVP !3;QRJW)I)6<#.USOP_7^T/66+'SR&UVZKLPGTD)-_,WDI[KC'J#2 M=,2(RA=E/6&VVC)?+W&1I;_%Q+>@D#I]R224-DWEN1?E\ \9J_BV_K,OIE?@0Y=1 M!JZ,)\EUE_)P4\4+7LI&A'"M8-,S0^ ):CR:W5+5K7,*V_=M.E MXYSLR'-K<"K7K)1KE*6* ^$HT@U\H+@9N3;SDJ0W#*\;);E/9K4+<=W_6/&E MX$3/@!,]!(_T"U)Y7ORMB^U4\K)D_712=",[/S] M5 KW3^F4/I#F4=IO!@V\2)AVR:L"C9Q(Y_V2W0C,QPPR. [7=4'3!B)"09SR MHY7]B.^+]/,I-]+OROU+>VPDW,*]RN=%1ZIK12H+T?UU:UKH1;ZJIPC&35$2 M(SW0Y'(M:J[:>O'V[*&F3^@R_D\M+08YEMDU5^0+EAP]6(9=[S1/+*M0M^:8Y*<=VAC5J%D4*:RB"8.ETPT8& MF0$ @;C-%%1,TJ&G"GK3D4VTHO_JJP46GEN=+4"R_0!B*+>^98-6ID_>_?A0 MAHV9 >.[RDL&TG-^>X[I*B17Z_QH:"NT,)]FZ/K3(EXF827N+LT1*4C757UM M/8#$ XDF)^"88HV6>OLD70\.P5X*5^[W-,?Y0KNI:??=YYG!?U6E_?3K#Y^K MR\UJ4I>??WP>/SY^NG6 ZCT[.EM-%55FDM03C!S+)R?R! DH,@\^9C'CYG89 MJH".=:YIFCI4U._HSKW[1FWR>/0Y!0X!ZX4@D;=?+]'$O)P ME/?D*',?W2,!QG^,D67]1&& 5#D,'71(#,V7PS$['+/M-K09MXJ&!1>5,YC/ M+$YX$1< \X$#_+%928(F-\G+D6;^"C(GX-N8<:69%4[, L/> R])7G^/G^[1 M ?US+,7#^1R<3Z2F_?F$VKTIRE(9-0;"<.O(UJ2,M0.\Y.H! 9 MF+P_H>"/:XZZBX3CCON>!O0EFFN.N5;X$/Q1@!(G15L&G=MSLNU"\A#Y2@?W MD\"O]'V/?\U=E?U90:SSAY_/W'%WBD :?2FZSIY#<7:7+1Y2L-B0N-D^-; M^I),2Y]':09:DA8ZM&B7XSVPM2?[QC7#-KB<-<7.M$Z@:O/.V+_.7O]Z\>+H MY#G9TC2,53%UI0Z^A;M*3IE"0'[YIS_GZ#79#\)+]_'8KM M![_]]/JAB[7__?CR.#EC82AUR2^*-L]:]AY!G,!?#-@1'IR].'N8+$ 6!O@3 MAW?16QXK1#-%\!F]M6%)@<'E& .YYM[MF D.!MLK)!>Z18,^ 7USE.D9. M%ZY=$?K%.Y?/H5]NR&G.9Q(WQ][V:]@#P8^QCFH?F"&'5*1!0I6L#.5?<,![ MH\GSPP=C=]'EMU!'\(3TY6W7P,SDLV7G!+9C/67BBW? 1F1<["8X!256VUZC M24ZWH=)2R]-U4ZAPD IY)KU;%OD\.7^?3WN>SFN><"-F"L>KA/7/T=WE[JM\ M3=BN0E-Y$D2,05WEW-^=[-H;K%PF+US1X5OZPWR=-04*5MNL%! L'=%FNE37 MD@E(A.0NKV@">=XX^H]L1NJJ8-X<&P.;V;.B)8^S#7\MQ]+94/T:$3\C^VAO MN*A807K',LK+P5)[5I2L@T4D":N,W"O>,))ZC&O'79\N\ZDNOC_$:?+-T9S6 M Z-#I3'/0@J8^;[,N;8?+>/3D!2%(Y5XRI B996U5^;JT&97NN\:992S2FM6 M%K1&C'Z!$IP*VUZ7*"!&[N0*]AZ(]M($7Y<*1C])38OEC:31Z* B4<3P129\ M7(H$(V4B,JCM-$LVK*G2,>'KX+_LF'-6^HTA$JFHM/C[QLHTYD"R7SG38,U48J97X.WH>3P/:M[35 MTR5=;@G9+(IK=W''Z2FV2'S4(3'4_ + W5@WXO\J2)JM%]'5)(5-*\LI57;8 M!LHX(J[T_'>VI,YK&CI-M52_2V&[<)"IZ"?-H)$O1JPQ6W]7<],P.E]&=!FY M663JEK9+K!WS]R$!B;5R<* R#B4X*)H'>=K#=XW:T1L)K/GL6VADB>,$QY\NS;9%[D. 1"3L-[:?K) M$5V!8RYCT7_RY!'.ZV[=]I3_SBI0R6*:J]P377W]'']>Y!QJ&M-]9KJ"7<*X M4X/*DL"#C: 2[>]T[^E?EYU3AF>DD&89#?CI,S83VB*3$3QYC'^? M]R#9V)]=_1OB+5M6,V;:Y,PA4G6B"#+EN21)A_*>UT,K^V7C*G@NZ$ +%K3M MF*4N^.!R6'8>B3Q]*?2<']"#/7"^_A:?L6TUD/+O+W+F.J[B#1:="^[<'7' M>"&.BM(A+T;G,NT;E(<&+D2M.3X\=WV94MR-UM-VC[8P.:H\FR3^W7^O&=\&S9=R;[[K1? MX[_?/O"-^-./_S=/CI_<92O5?[]EWW7^'QT_/3ELQ)?; MB ]W\QHS@]2T,PMQ_3[A7IV))97_Z.Y(\:I,HF>&_@CYT]DJ_]]?33ZFQ]-' M&1Z[9AX0Q.S1[#7ON?6_G[@B@0EP?W;^=/'E-O[9O_7.J_:[/UO_1D7S%]I_ MT3GWWQ^"_ZF65_'R<_%Q,LJ;(JC1Y MLSQ^5.Y^,4D MX?W8Q2]FMOZIT_VY CM53%=9CFP=@>[] O8I7=G>CX]F)Z?:WKNB8!](^AF M00==U@(!; _6Y;VP+IM_Y?^37'9-_3\WV9<6JO=CF^Z%I?G-P=+<%TM3;,AW MP*S59;W8_#L;D59EO"<#VP>\Z?\NXGPBUR(J-^9(>%7"RBIVB_\/R$H'5YW7 M3!;7HF<;X'+-M3#0.-V;M 4\F[_5UP%D^>3Y\Q/EVPU_=%OUCCSFO_IR8_4^ MCQX=)R\:K7.QP0Z>F"G-36T/B*'3-(['8P^AG^0%/R+Y <5GP P#.-LP O0\ MKN!)7N$KY\=GQ^?'"BCGM;*/F+3G+&NJ?%'DR:N\+,E'^'ME$/>[A0#>>A+" MP [V'PY/G&,?6@@1C!&QYQZ!H;E8XUM2,FN^2RTV5K3M7P'I138]3'&0! MVDL9GM M,+7OG"G:3=07><1$0I.^S"N,(]X2J2NVFM@7'L,O\[N7Q?!/#\7P M^:$8?O2P[F4Q_&F_H.\X,?*,Q4A?Y8%@@03ZI(O[,I\TH1PZ>8JG#M]DLDE$ MCK:B\#($G.'7>2LU4).LNI)*RN3'NIRMD&Z]S*;+07F]:+Z__W"97/C?_D"_ M34W,DA3E4D=]V \EW<>&7&7C6(DJ8^/J(7S_]%_T449[T7$5',V\F%IQ1O3# M+OFEA[#PYB]7L<3B5^AO S/A!Z8#><6V 9[Q\N+%Z^2TE#)OUO*9_@,[@/)Y MUCI^R;R&X *])7^U;V&YD%9LK)8MZU'GUFFQU7!8((/':%X=_W!\JI8#"A1^ M6V9-1U;#Y719H]Z]L[HG*Y.C,;W)JZK=E-31\X6FM&O%Y51 M-]))"^RH-US5-;S4SP.;U89_RZ!>\ O8M'E%9LH\:+G4?/7+%L M)(VV+9I/&<-+KC-\[;M1QZ/!@7JC?,9^V61LL67UZ!LWO%>9__19ZOP)+KW. M7 IYEP/R]#AYB><'MB5]^L0]/?84Z!5/:?/S$<,-@H@KP'FJS,0N]?0L=W[* MA\)FE\7+L]T>IJ@%.SGTR;=CN_])'LOLWKHLGW;!3ZL=L4/<[E#Z^^H^94PQ MEBAU*?0,.4D@Z]@F4]Y*;WRWJH9IEUB=HRR7CX!Z3N$CY:Z[DG![*+S5Z?OSL]^ MDOWX^9?3HW?@GTF5]P6T.2&=WIN;F^/U;'X\!97=?]<]/6BCC0!2H7X&\1-9D(O<:J+U*2"^6,-D M52M'62ATL/AR7*V:HDZZH9$P,?_XE_Y/.IQT_)5O\1@^PC3_F6.ZE*IS^P5V M819L0XY 3-/VB-#0ER]S9@FPEA4/LH?RG_2#DZ0^2GPR>/=MHWB?TO"T%!A>ZK?NG9?W3$WV[/MV M:P>5Z'B&K01!*-?)*W.3\2&(EEINZ&R5!7PJHST)JY+K*M0O6^^3QRMSR;+N M2ZYQABI ^(M&T( ?$J7SKE;Y5,Z#\)YM'PF/9J4]?1JI(Y1<\WK;OO63IKD MJR]!7?%ER"^RI)C]O__QC^/XHS_XQ>Y9_ M_?3;639]]NCQ?\A&RB_ +WIR^K9HKUYF[);]X_FWWSS]QK[TYU.U>+[3T^,$ MXTIT8'?C*& $9("0LS@MV*9@S0=3^ 3/87+R^2=M/2[O&/ MSM_G9,O5H!SL8&TH5_8<]JR.DOM>^>&1J0'Z.6EOU:G534X:D[\)OQ*W[DBF MY"MO$F5!9!XG-R@S/:7;$4Q76F[N/%US,)U,ES0BJDNUMXRV+307GGMX(1,K M'HD/%D[97)W :(;_BL9@!5FYW-!T;ZR@TS:PGFDQKC6.:=Z5G[R1MZ^R&=-S M,25MP:3(ECMI;R-:"QOLZ+G,,,86@O) M;<)<)3G4IF$7(N4; Y&=NQG%R M,;>F!"5GEDLBU M0%L'.ECB;89 @(2Q#)J08)?"2P&TQ:.U*7F4Z@>VB'MWZ@#3%L3[XQ)<''=C M_Y )-/DXWSA_LLEI5&OE<'/GAKV@WE]O^7[;S\E+#!>V%S9--/MS2S4X1>+- MMT.B. RX !TT#1=KA#,"(DXYK3._$"#<% &U48;#MCOR 4^2$Q4BJCB1/"P3 MAO;P?+"F8 ?6TTA;03^?\8KPZB*FH5U:W=$TRTPVU3T+WY_0VH&A&=P2N7%) M?U!N?I+8S'BBZ -]ZKC80:O,8['(U6ZY0P*^0A]%&6V$IE$IQQT5\0]W=H6+ M5<92D=^KG1U%@$M,W4U*Y_'%HY._5[G#X! ZR^EF6G(0IR7"T2QKJ#-@7S.9YRX M8([7NC&:5[#]@M)4@@L2^E_9CGA#(MX+66O .%#6]T MW\9/'5\P#13ZLXF/P4O:B'56 ]VWS"V8!988F[5:27J438G]T?BOJZ-% M+<)F4;,QQ/M61;M!FPOZ3K.B7V77=V'=[-AZ\A S$H:Y^\O?*[9@_./7@ MHL@1FV9]:ZRA.DY$-4$IWRYKL97D8=:5Z&7?0)E+#+4#Z[=@0>36X?O16H>* MF"^>W+J T=0QE,8LQ'@\+6>!@T6_9,[CE8HQ93!V;V+>8#F5O;1?@G/(6]V* M2M6(+1W968$4&C:*R:MS$J>=*3AMO!A9U>X=R31OF(KT*M^X$8R_-I4&H[S+ M\*?[CGL<6$21 XGAM^M&.@+@^QB 3E>BW=$,TGBOA"!U[(['^MMM6KS.+?V_ MCB^D2$8RI M*3CLK!W:ILF&D0<<9K6N5ZL\JU1[0WU.IQFS2ZNH315\M'$FL!*10J($DD[[3^OEK9Q=%E[[[;G9 K(.I:_<-*AKJ.=SN28S M:R\M*Q;-P//(,_E\>&;ULBC+/+_ F>UB[[4:^C>+26(K8F_&RC>M&0MA.+(SK_KZX5G,;3&KV7&Z^9M"&YA,BVS@HTA!+KI M\9--+*?B?0P.O-C*X[[7G:+VQWL. ME#OJ=^4*!]DX=-.($F4#5C*8IJU$QF)]^]9"#VT][VXR)=L6/SW&JOM,IC\U MQCSO3X[9LNYQ?-^C$6G"D^3"I#$N>XFCM=U7)!OS%3*]VINFR)WMT 9:8Q8L M@;6>&9D[GBS>(J.!FLW(BUQS'D5J_48N(3T '9O$Z,"DLQ5HUL5;LD"![]LC MZ]JA5YV8/J(;NLU:4O;N&D(*VF.Y,PC'G_Q,0(\.+]#LP7JU8ATIXQ \3"4QQLE0ZI-@Z M-'ZN][SZ6-T6:0:QJQ#*DPB,'Z6V\&B*-E<\&2 ."&S;.N&7]S(-^>R0ACRD M(>]1K451P6.JV$@0S;EN +!TPLR4IQJI9+B2"6[=*;PYUTZ7^:QW72&%< M)IZGB6_]8R"BCG=MR"Z3S)/Z\1Z((QG'FLT0YD!DYM24 P"%#C;F#S0FPN49 M6ANQO-1?F-/.]I+%B\5HRB4.64]HO>5)NV)))+N[R$$QP]C;PGMEU09-05JD M/<)X7*HFK>ZV"\W)EDCHLS5;RY)@VK#662S:B"ER%FOXS6@IY^T?[&(OO@__ M-5G2#([L8:-/V?+0 H/5]^ 9U6?[%$,38+6LJ8N$JHV7+QJ7+-$HTY;!1X;M MS)F8SD!T.Q>;;N(N8^-,W]O2QHV.V:NH2Q@*U<8L6Q%BTD,X/">A%UM9#T.. M*,!"0A?*:PD)XT>7679IE\<90I*;,C0:62SH>]QIM4$33[$P+&A1S9L,8&14 M4$2=G=03(\>VY^YWA083AKDK%AEAD*E?PT(+[_EQ*.B75UG9:2XO/L42$D($+%P9 MR0J8A%"K5=HE[?1S/Q38&?@$,PF(2?(-1]$ZKOE?R*T;.2C1)<-L44-!;E_. M*;UL /<(;HX^($V6]&2-W06G+S-<>1KT?>-UCH)P-QPWY=AO&VC(2KJ/E5FU MZ-&=SY:7?*;S:H'VNG8^G:ZUF_IA*2UMSN0^0T:KTSPJRNP!\ %'11?J_P8Y MQ=K_/,AQTLIG,[UE'WL. O7QX1#PWBCQ%_D\U[RNWFHR[?(NXZ['8:1A7$]T M-7=%Q6>!"@X%$#J?SC:L!US,Q1_[D+\9MM M3?Q2I1KA&UU1W <7%:^#@ZHH:;=0?%FWY;WIL@+LC@$74 M'8:"6G<6E8B2O+$EZ&4N@@I9T] S-P&H!<:X-.'C\%$@25C0\:,Y#6(=]-(D MY]P'X\7#N=E+!_WL3.8$#QA< )9@TRE"<=R"6<$J@M((9'NXCD.!.:L9,I*B M1$+6$#74VN:XI9/1SK7I:[:JA_IW1V!XT=0WW7*0,[3MMU'YP%IH^ 1W>A;+ MCW&9D88G4&2&CB9_SZ8#(Y2B3.8I:OQ$B]>,K= "37N?BRM^ZK5S<>]EP3FG M.O9BLL[%OK6YH8/(P$VI-,L<+*ZK9J^99L3#CP*19K$T&SV688X5S<4'Y0ZL M<5@.@3+?6<_@,Q;-9SKW .5_13K5$6F34, M$#!T2G10:%:8;:(M?W7E?#VN2QOX$7%I(X7O::ZL^)Y+Y@8 M,+/EIACHQG6]YFFZIWD5M#?VU>O(CK=R.QS[PB=0%:<0MAEU9W_7UJ>^T3E; M!]K?U^[4%,:_[RSLDCR^C,S='7;:A?@@RK.I>2PUXS1CB()R$QJV)8"B52O@ M1H:DN7;#:!Z.^*?T<&>7K\E6.3)KT7%C9YA/ =L@-$?Y)&BS.K@+OMUPE>,4 MLA"L73MIE=QT'R7@B$+YS=;%DD20#C*^#'**Y]NG'>6=].FR;J6MM>1UBMU; M9(:08&5R;KC>5Z"!J1MN. [%*-W-ZT:P.$XJP+84N2"X? 9'A&:,_57@N-'! MV,*O!I9C*!ZV?5!;"&Q;/86E@W60^7-HQ$W_MG-I$+"/NNJ,^1YTJF8!$L4_ M0FFB,F];&#C,ZY;DR&<:/B,IRX8YOP9:7G*81=<'* 68 5KXP-]1 X]%]+$Q MLP51$:SP=5V$TXME^D[QK?+:@=U;Q@ /SRJ-*1WZ\5E[!8&J>%+F1>(]!80L MQ)2JC9$/=#*02I&[3^X];.:^$NZ2>YF9_/:0F3QD)N\V,_FYY60./9%%)CFN M9@"%\MLRP:>T*<&F_J[R)@6*8JRJ\^.^W$;Y; M$HM*6M 4$P P@Y648_ CV R6G!:J-Z)I#84J7]C0_1&XXX 0Z\E)JIP_T5$Q MM!!0/S2PQ\_^?U+;D0]&U7$W!=I/J/ZN$ M+.::B ?9.\U"\GM"Q]>A#6JU9Y)>QNS^E MX^52OT&0+X -"U+8H0,>B$HF^XT.)EWA3A)1 ?E<>#D4>E7,(_/=93+'O^6AW/F-0YV$&08ZL_1"%ST2&OJ0L.=#A6OD\D>CA5@,891 M#M1"KM@]B"ZX&E)GT:4?"0!&H]6XH<<5N/69T-60Y \)RQLM6[ !^3 H@AUL MR%8Q/-'V*X@H(DH5K"D7/3&8W! M?B#K)9YN@*+=2R#)GD^#I9K<7N\HK8B;'*/5<]RP4TV'CU MJL@[ _!4=HC)29O5,2A[:",SA,;X? B_'/T )-6I.)Q,V.3Q.?8&CT[]7X^/ M'R6D&$L+2_ROD^,3^T 2 I8M2$,(%#^EF13&D\7+BO38/YM);YR)S*L0X50 M,[BL)?W9QR:YBHM#5L)4F:.,$A/25@H. +?5^H6@MCMS]99^H8.EXK<$=1K^ M71:7$8*@*EI0?JM*40G0#]T"2R/X/$NXV!8"?=/4$PEJZIK(_0..A2.G6FC'J=_CY.=(;4"P:)IL M3<=UR?A)1N!8[9EA^%(N*11ST;:CBEDM MPO ^1\P/H=D&19RMUZ662< _-)G7^HK<-,R(!>4#MQQ6%EL*^ZDUKA:^B$TN MA= &-:6IV3]X&\\PR*0/S_%.DH%!'6*XUZ$T[(/R50$ (':6S7/+E4'GJY'/ M]1_\IR#2[B*,9(]@2>A:BAT0A-96J''R1Z>OL*-Z>#"(HMNE;:;,'!');$99 MY>HDD="]$5N(RS?I$WH>0':.6D%Y)<(G#">:#OD91FZ^DPTJ5NSY^*H6?NZ+ MN'ZAH0G%4$"PBO#2KUQ ;/P^"S.G9J=>+ M%S\G\[\-'LDIK6JC)+"AX1FLU?*M608[?/#V14 M/,K67DER.(>V#_&G'-.)0)2WKK:9.]O06+(0F,V(8U[*M(*;;: 01QSD!/0H M$&>KNA P)KX=NA9%))LD;+H)S^,.OAM%UTJ:WY0I+V>W[-N/.&CW,Q_W_)"/ M.^3C]JY2\!/,GDMN_0"[7VC- 9Q IKVN=B9GG&L/TU%X2+8BXF+EC(E3^$A& M7N+MF%OCA6QZ2-^3$8D^2@ &X672R8E&;BQ4<\A(#6)VJ^LV#X81E!F5]4D0MSIN6L M5N,$[1]RK*/SAI/K0C&Y\D.7-E)/?VO7,[_ICM%FZ_FQ5Q@X/:)5Q!)B\&?X M3558DTMS!;M,JPNLHW8S#S""+*;U"8WC;;JNT#DO(S#B0Q!UW8)C/V]P6W^H\ M.=6S\2E1"3\YJCP-8@GH3U^U"5ZT-Q[WZ]X%+1.K@^W7&MD*P.A1(5^9.0"T MU5UX4*_NJU4S1K2'+@3>9.MB!KBY1;%I1^"/U"OMMZ$Q(\>-:%V]E&YAZO%= MDJBI3#(.2" \(R%'0?:'_>5#)9_86=LD!-#GEBU259YMF,(0TTS:E\HU*>6^GW M5QNT5D>H1QCEW=O.UR A1V,JOQK<@U?M-;3KV]2(/Z<5>\FP: 9.2279#9#6UKMG;[W/P*Y=/+XH42 MV>#0 T'."><#=R-D8>(,*6.^[-H=?/B;M1L\/66VE;.1? MT!F8N>0OFKAT5N<&]<5.AP&J';T!(<2FQ#T4@&A>MO=X@/ MND@L#@2;#!U?;!4CT4ES62QK"U2[D')TW;W(K1D%#&)Q:7X4%C>I(<2)Y8!, MF:N^VNR:+YT_II.\RN>([;F2D?C8A1SF2C&PQ6,NF'6X_0$\>04M[IE^^)B2 M";I:1[*&>0@".'S(9J=:*XUL#3_ROE(^2+'#+.CGGSO)-[5+WFD0\L(BECM' MIKP*S#@-"S.D"PT*]ND"N+@)BQ YG88JMR%"!W# 4Y/.-8H$TVU)_NGLQ/MD MYPSQ/PY-3BX"(FU">R!+D**$$[SGJ+TJVE4:Q& 1*0'*Q-4FR3(N\GKX%$GK MA"=@;+OWQ@;Y;3#E:$;Q-(*K.;XN8:S49:U2X&GP%0:0 014JI2[O;86]LVB MK"=2@HF.;0R_F) 8'\3IAI1@XU9A*,QIHV9UHXK(Y09GM?L2:2'6,B$>@X.= M' LMNH J5L2G '@<)(QE\6WR=TB -W!PL*JH*-"^ IDPUM+J.03== -UY+H3 M=UTVO5)>X.VVQMYS1U%1FI3UE"7O/&O"I(BBU>8E:FK^58.6_D*%ZK4FXFDV MS/XXVW4&-'8PH,);8:(4R6'6AYH%\+HT-$HKXB$TR%F,YS&_-RP2%F).FIJ,1 M>53N?&R;TD/J)W=[H#M;#$,^I(6;EK!E$*\JMR][* M1%DKSO* %D9AE+*HO))++1;G=UA:HBRNN(*^=K7LQ>"0*I,HJ$D68C/Z&!M+ M)Q;_NR7=WFBP'T7^N3WUVYAL992VO&>'9A@!$VN,+DA/[93$J4OP:&=&(ZA* M/>+"?28$XG?.KQKGL52+[.B(,5),/G!7M+C1,54J!54< P- LF[*V0W3!XUL MF+5FX1;D(QOG(HAJKX&KW<[D1LLI%[O/P_ ^^R4 WQ%=$_;4%/ITN^X=<-&& M7E*'4PLP.\C188*2LA &H88O.PT8(J:OQ$=:<8L1%ZGV7@(YX:VEE;4%"HM& M6+<"-0<7:Y> B3^R/%;9M*G=_%U@^C9SP+W>VP.WG?O[F*A[_.B0J#LDZO8N M4;=;L84$6RF'.[C] 3>SBO2J- MMQ&2_ MOHT1TM=?O>0(C)18N'ER0",T_,8,FTU@^[ U6W'9SV7'L88NHTV=M^++"'6S MD#!)+W*L1FK5/1)%])7@B%4U+D:)P<1=L>S9_E$.8&H4"?J$4-^(L;M=#JC" M6[6'"_4Z_J"A5"=?CHY F36E$$)MIR3%L'&;+IE3&5GEDK064(W3L^+L9BZ; M:K9HI*DW&I#[L+$UX$/:T61M&50<\LC8LKVN<:5+K5OIUV*+*9,*AB;_=AR M;8_.F&'P\@- RVE&Z\\L"^*D^5)%J\HR1:P64D"NZG[;TQ =BWVP)%OO#K+G MTE(.K80DEUO!T*]I(?16F3 3MUNZ>"GOE68R,H2+9RQ(:20PQ(^3T[A4CA%3 MVC#>0(-2[R77D.^JKG&AW&+C36[X LC:PV-'U=E(8YD@D3&)6RH$L5%AHG)@ MQB@>\1'D?Q:M,)I&HX=1()MF@4)[UZ?)4OFU\Y>M8M,R$2X;9-7,NS/]$?&;$& M=O7:_B@"Z4L&2AP)4$(#:;ZX.B#_#.+LK./"]7#DB<)]!CV7YQ'?#BU7-F,K M_/C+]_G^S,ZD@.&U\#Z*+(?;&:=D6E MHCXJ6VB9F?'CNN>UZ>=L08RBC "4ZEJ3 5=YCFE_^B,8[F@Z:"1XKYZ55=QB M)33 F6V?**B;_CY/-[[:X5\F,)>-=I3'6X>4,+ M5@!/GG_/V2FMKUH6:Z;UU89EAD[R;52%"X45)FVB4*>:DD^=?^TV5!\@/,>- MI'Y-$W&J2>P;]96U2G_T"$0P'B:E]Q@HM;2E/\BB+ZU:YY]]W662>%ZAYKG6 MX@6UD>K@T+;)T%:@9Z]HP[F7,#=XH0M:K^&OM4R>6[5(HFM]I2Q7[+HB\=4/Z45^5N/'D!XT-Y$L]%:[M?W)AXZ!XZS\1IM$A.2=+#L<7"5<3X$_!'SP:0*3 M7KKSK3>\@ZF :*&A%&3(F-H6!D%$O1>4^'D\5P:^#*XLC/@A2++F6:=>[.!O MG/CC. D&9UP:,JZXV'.[<$(=-)$$U M.-^[F% 5!P0?!0@B'R&PFFX'Z-[F["_),RHCYL)ZUT6R.LG =ELWDDA2S>/) M_GI/QQC+8*Z<\B$,5M.--%!4>TC6.]S=P(/!.G4U^6=I8-MI.VFDP80Q+^[8 MS&4R?%DEH!-<]N/D%\>U9Q??$RUN5Q0QT(^!2(+@?:/29K;* M53#:M9S3DS-%\&JTRC?#VTG9RXYV3J=@YNMW>3NJUG$$]FS)B,7C5R^RY@." M7[(>\UD^/)=@S-ZV\".??P_+>W^356;V127+8)4< /HB/D6/7MCND.*_%N!5 MU1#1JYX.@!$B#*WC$_Z$X\+!B[MM ZGKLLRSZX(A]"#(<6"50:/:X5($N416 M2/VD1#80I+]"[!X"164:'8WJ%UN/FV7.#CIXD8V_/VC$9$*S$29M[K8N03U.ODRO4A\! M\:2:DA=:+S/S&S1S#PPO%Y4"E8T3%)7,W9\U3YT@#%; MJYO<]8M7P\];-VK6BB7J]..*E 2'AD)KU+4-M%"; MZU*P%":N6@.UJ#51 M"^#(# SW=)V5*CQ)"4:!&S'X1NF]L??9:LUF9 J6FQX&V[3A=O%ED@UJ*]?+ MHEU:"$?"/X:R;J)P4M2\(MHNGP0*.>Q68CMJ[4V,4)>KIZTRK_L2/+035^\V MW[WC$&2 M.)\@$\W9Y9P!C0PDDJ"%Y.E< !GH'WKWTEJ[6[EN"VMFP3LKN<5Y=);TQ/[_ M[+UI<]M6MB[\_5;=_X!*I[OL>B&&U"S[=%"VL!,V-%IX3H'-A]&^(O@^NFTT]<-;;WYM4/0.Q2Q.E*P_6PFA'IH;Y?07L M57#1*4<)D$SGR:4+46OQ)T\5P@93^H(M7&80.3LD()B!L0;.4Y.70$I(GK\F MC5WN%)B&*)+18]2\IP (N=DX=Q[].G('I^M38#*:0E<7140;]$( 61TI+)B( M[8PSG"3>/VAD9T2%PV+&6.]F MM)EI':]%;SBBWEDZS^+,F^;E_*J 1L,0SH8A'UYIO#<0) RF*""D)=>KDOK= MX56N6)@W-BH5M@-JHSMU3W3C&&IGW90G-J1(EC?8Z>ASK4GGZ3")"GI 789D'.L!?$X;TC#S.#FF@C1@M[,GR _#CC1UJSJP):V.#::$.?YV%5Z"V M)A2@3SN&]325A?P3, "&HUR 4J=K=5RAI^$LH]* L:9%<;.D7+CU56S =H 6 M2@.(:P1<4P9LU?HUVZ76:5,+1D=WNQ^$WAAULI0CXI]6X(TKH4(P?*"8=X+9 M[I4A=]W*1;LW:0LG<[YNIX>T*-K"Q6=Y-N2F22>2W\?0H^-*&Z5(!KY!H M]/'7.!2]-=KES.]9Q,7?:9J!12 $EYBE_LY>DZQK>1 M"1 ,#@5!*TI7>@!W4AJC!0_<'N.)99W7++#<,M)[6?/O&,W>X>&Z M.L?. @'I!?71'V+;]Q]'/OKQO0;L@ZH-TGW$4C$;EEB0:SC,(^[>$_F *L+ M+P@966X(0O5X:X1!Y<#;N_RE8-@?*B0W4(W.VD,]6A]H3Q UJF[:(! T*+3; M1[MTPS/";OHPV>#8;PJ.?8E9[PJY-/:*XC6G2^ZCDYP@?2Z2B=1*AQ/6O7R' M/V =$9LRLG=E9*L-I_DS6_67'-BKPP&+7(0.9OZYE_=VO!24^4N6E+TA1;R: MXL'%;6Z3C QM7 MO<)]OG$.Q5M;T2<-$Q6-(H3#(L#F.O&]C[5R>>NG$"ZH/R7*3LS#O^1%3J2: MZ23J9JGA@G,"FB8^ U&R=[C_?-?->,!X8:%(Q3(KBO G;']BDN<--5:+7.6/ M^INJ./H5R":J#%585E+#J-6(QKD2G[L*EAHQ$ GP,--_NWWZKT__/:#T'QJW ME;3!R#!VOGRS0N; M99IF955K#D!T(1TD#Z89QD%B!<5"4VOHP\.X3(NE3LGBNE@RXK?'PPLUH [G M]<:ERZP(+9BX+KA-DK[2%"@Z;))>3H6]Y7U/&_ MOF8=6276M#1(R?(IDMS0A48S8 ^:!$R3GOSR>)NR".L$[I%*=_P2=)Q#X]6GB4;':B>PSRAK$*9!^13M*(Y6*9!7X_5.AM[S MQ_$8I7Z,8]VMF>0"?D*=?:F^O@V21M>W-BL^^$B%XWW,^6IK(CDO-7A0'% M2:[X2QS;9\^L<46F5). A2AMUP\GJ9B"_%8)A13'KC@]*47N^ ^@>[ONZP6 MD-.3[*E,=B,$U9# ?Z 8.G40>KDBE\'[^Z\O=MX9! F+H[,,OU9%+WZQL1CY ME?J?5Y[G6Q6P.L_@+D@JGJX.__. U^Q$W(XOD(:%VZ ML"PG:-_,#FB*L:2S=!5X!EUY:KF-\$T1FO1V%)26AVQ<.#WB[V9546[EG1>J M\];XG)OAGV073S52RJ[[!;*-'78HI72?23 MG!3->AOPD?\=C8Q)]**!E_"R7Q;B=/Q:$[*P*6UZ4MJO?([P\U\>3+/G!DX= MC)<=RF-G0TI6@9]B7!S$]PD);Y40"&VW;0Z&3AIBA7H=?5Y0.ZM>>97$,W\V,W]?M[HCCV&E:&ID1A=3GS\'TEP._ND1SD?$TYR@U M_/%@FZ8_4!TJ'%!# SQ;TK8HV[%/MA]0%W;.6ASR?%P[+L8]YA+I51!ER9RF MN!VF,&N)8':)2/N%_Q^\;YQV07L)!!7_RW[P]1*Q(.?_GV\+"BJOA@"\I*\% ML'" %Y4)F,=O\;" W@&AN".YN:I?G^JZ/B=Z#<=!Z^I=9Q#9&7,I*I?;"D3ZKR^!Q]]-FP]/F?@ M4DDWNW?;@9RN2CRDHQ15+@&!7PA,M=WZ-G7ZO;:)U6VQQG_C@AE_L"&B3C T M!:P3=9[F% 7$FTQTS2;H[,@@TJ]NF'0H.039($_%,E\J"+P(_MIC;/;'O8J& M4''$D9#Q<2P"!^%I=0APH0GZM2>1^LCU#"4(FY#IAS/5[P&;XJB M(C7?(\Q-P;K".;9S+S9*EY4DOJO!_/E=$4=S+!=DJ@['/- M;=OR;#=,U@6R0FFFJMJ#YP[KK__=I.=TS'@&6)='NEJ:"[C&%"AMG'@U'>&D M03TM3-@E [C<#]+F=MR22O5&V8#I( M5AAAO])&QT;1:8R3.8I/UU8\=<@@8GVV1!:I#4%S1E%KGW!%N0]8HK.X58UT M66:UV0&!XBVGA10A!4&:[[<(7V"H%)?XTNTQ!D_;W0P6UH,2.>OG32(TQ1%2 M>D L^RTNE!?#4B7+W?1>.,I.2B'1[;>MZ-UA(9D[Z<3='I 'W^OW>OO\;,I]>P>.P MM(@?OC>*,4 SXJ !AVH0-U+KK615_\S'&5FRNC1O=U[5'G?=K'^@+H#IX._? MCT:#XW"%1X/=&RUPT_JBJY8FYH'$,=U $V[.DZ]1S(UNEAKU2I=2FTR,H73; M:'=G 90]L\J[Y):1,O43L&CHVM )HBZ3!-"YV'H"@[WP '8'P\\Z &FZNBS$ MM'76.0? Z% D/KB__V?UE4'C5E7GF5V[" SE>2U&P1MVC_Y\]>-E69O?,23[ MT#NUSD4JY[^@SCQ=[),ZY> FA0@K!P0 M$PJ;E>W8@=R;=GE21-"-6W, 71)Z].O54/Q1=C??X;90&VD>KZ(WKWX&-PK[ MX,!RSE);YA=@'%$*E[!SX5E2]D>"1X41UTUYL3^"*7=M"(1AXI738O^( M3$ MOIBET#2!2MKQ9O8EG#8MFG%-TW;TC,1;8#[RW-ZR6[V)@RJPP1Q^XX::(-#J M(Y50Q04#Z#1EU2C.#3IWJ0 XJ:P/A7CC#=(2;R&K3 O46+6^362S.0->Z"SC MB5+MP4^:1VG-#7&];(VY<;.]Q9^R M.2_,38DT[1:4#D"9ZX$)1 O@)<.E6/+9UB*U?,Q'5$E:L1)44E]D)?J.2(!L MA. C783) 0.YL7(Z\@TC)AR\1FC'*7X_"]!SO>?8)5TSOW0-!A?$!$;ZPV&D M8NTTBX:C!JE!(5*S.7-R-#BZD>QVV"IM(EP'7EB?F.,;?*TB[V=$G%R.K]XJ MN98[)/F7E7FF_WA^!SZ:NNU(E,\]?Y%H&Q>Q R*[:.IG=&M=Y.YY4^H#LZ=7 ME_#_J6Y"/G;,?_NA3OT_?M9&L"P(D_NR+EHB; %'CX+H!M=P@O[D99DLGWN+ M$(=:%ON7/YT<'IT\;Z\K_-"ZLWH' O$J3U?1Y:=7M($^M]XO+OT'//0?Z.)Z M(NJ)"(DH'+RH4,HVJJM:P*H%6^?'<6?!_^C)K">S*\F,2FAT/ICK#6-JTKH& M)2;\]181U+"GIZVC)R\\1D$.C*Q-9EBIH]X-]U F"PR%_"Z0^8D9FRX?CL\(2H/LRV VI-GG7B&9TRJJICPN&=R\R19*M_P&NTQ M5.5C$JS/:PGFUVR-VW2:DY,,VFD%-A$/IR1;'#B0V@9S0Q4_&+# $I=9,I^J M6'+^#?K\TL :CM%L=2B+\\5>A-\ZH!,KU*>V.5(9HUD6E]UN I<;2B"P-%+B M@TY14DLY!N4B\0CC%LA .."M^V)C5_NQ[HW8)3)*A1/;I5N*U/'1I&5@$0;$ M$C"28(JS_WZ$A\W2+.%I0@7&9B0,K0&AH@P"$^3^**JQAGA2"JGC>!D,C41^ M;_MXU6H:P+"=)/0M[G.[I#]L>&4&L4A;6 ,6HF0$6\(2LF"M4#+JWQ4,.:EPT;I5':1.KQU$ M9S-N0,[*2;- W&9*[C$L%;&^Q5*P52+!LZYDG.H:DHD-E8W:>&KC\[%?>>YF6L0-?#=X ZP"I M36O#&"9MTFJXX_P%-44CW'596X \[/B7KZYCW8F&9>-#!X6M" R0>N8"G+AP M:)]?-NQ-T'/PKL%\"&E-L&U<-';,5/R&P.V2*++?G+FNX@K,?6JG0?E\JU)<*W;94J%=CO1I#^&XWOX0; M]QW>ID42(9!$!T)C81^[X+T\@?MO<+4JZ1CMH[ ])5Y-B=I8YMDBE&+D_A.V M2*@JWZ]F<-"?Y(_3,%/7LN)*EK6 +-:9,!Z8@5? T!-I3Z17$ND"2.B)^UQL2(')0_?Z<(!%X$'8CYKZ/:E:; M9.%&0VI5GL=,-%Q1,# 6R#34<5J:15$;%\JB9W8V3;HM2!RR9Y:>6:YD%@]% MC =4 '%B=U$%]BQCMB,YLTCVAG*YR>#PIXB P[!IQS -!RA^3(T$'T9]XOE% M5A8Y1X$$;K[5G4];SI(RF"+KSY?G.<\Q?UUJ&_UA%/ G"R>'/8@XH>%C'%A+ M4QEH)M/ U[;@)T&\&:V1F\1'T _LRTMNNQ(W/P6W&@AW$NM!J$;SP]EP-CUS M]LQY-7-2R>AD17D%'WP)V_0$4#J,'2V3%1M=BK&PGD_2, _#8.<%CBFIW> N M.U51WNVG*!0%,8[^UPA1O_WM1VHV VKM+->S^3"*4P=O(_68(BV7VD[ L(XT M7R%1W 2ODR1X('>2K3VUM7Y*%M$LBW54],1%EK%G,BB@DT@V-=7CZ?>\VO/J M-4ZZ]@4<_;L.'R6)"6F9 CAW":;.NB)LB?*JR-#IL Q3[5DOK"N0QI^2I_('&BV MR$(1?*TJE+6),@K,L&Q*>)I,N@L_S[.6J850, K]L?9<6I'!J?3%ICTQ7T/, MV!N"A0FYB6U%!#A]6,9 I0<.S+U#@2.9@\?(WB+'[24>Y%=9(33CPHT6DBGP M&?Y.4$ <2CV0 :7\:.A=L\"!:5C?M<@F6OV4G).XAD5@R+1MLK]\_:_35SNC M$QP.MT6DWY?%;A_E@T^%WA015J<\]VD+QU[QN"N>RX@N5O <$>N.1D33UM#(Y-V=IK,8'"EPO MCJ Z)C:,$$5E:==QF1!R7C$G?+:W355EC,;WSP_T/C?!RV4V//;'.)2>8N+# M(%I9$8QTNO^BX<\KEK5S#JF5-)PV8NLR*VVHQQC<%,Y BFNTQ@1$IIJX,[0G0ZK%_AV\3G &:S.+H#0;!67A?SMQ@V/I>0>(/B M)S2O24Y'(KQNZ+ ;.+]6BT0Y/\((I=''.I1C:TK$WWEJU6GC6:(JWZ0"INUC MD5+[P$Q04N%DSHL"81Y_)I1H6"Q%]_!_&>F5RC5K&63+Q=WR'@M!ZI=MB4.EMOT"(6EXB$:CQ.$B\KMSL7A2YY3GJ M$$'$F[I[* 0OD:?M@:8A>. 0;L9K/+"3;;9F=%3WU/46EEB.LQA04JZE%]OI MEK;<9 _):\Y#&Q=LO-+.@Z0TB<40%F^-!2!/1*N\M =/.%)\!RL?94"Q@(.-_1)]14WK6C9MFG)3YN-Z&:1"EUI#@^:*$N(!5A2G(#AI,O$';DFT M&2Y7O,@2#H>AM7K.&;POJX)@B9/%.+0(RVC@(-.89"2R YXGN0/: ^%F(SF< M7=Q)YU:%1!T.DANY]+O?E._52UO,(ZJ^P)%5N#@+7HU#C?S!58P.P].(=,+' MAH,/P !HC+# #2-$;?(A0(;P'?N@*<)W="07X#"*.Z&?;%1_#6H"21">,8A^ MP4%/M#T$.715Y0\20.Z@KPKMJT(?T @A$6 !@@^*#T]@)IRE).M4ARRC":"3 M\PA3AYB_9EA6F5:0:S-4-!9$6\J;*^"ZQ0=G7M_E3BU MHY##W*/,!O0B]*C.R@PSF:#%0%UYXEB.#PZ4JI40F(H0A;B/I]5@%A4Y>02+ M@E2H!/#;X_N241\2FU[NM1V#C^>K#6VAG;,_ \42MJ8R),L@^DG&I+8"RE3EX4\"Y/%_ M#L/<'V3C U^[3BN>]5&92Z)X+5:Y9B^L;QG#";4E1R@\^@C=GPTO8W0K'#?. M13%!A7H2$-?.%E,=.L[X\2'N*TT= MQ#X0'ER"*-8\Q35V?27N3;>[/DG3WSU$U!W%..QD0R^/@4[? MU5[AGFFR=# M*U&4;!Z/AD.O)H@#1WC9**[&99&DCMGM(%").?E]Z!FU\%TD"H$@L:@HR:B- M5;]CP?GMT<;>!/,X0M@W&5M#,[@D?D%N?AQ@7(?#B=#D D4'LFKF"5GY"KF] M/IN[#L0D&F>4>H%-$FPU6*V-F]7<.LIIV)F8P5]BMDA":S_%0:;X:F//PK!F.R+ [TP.%_8.S M0N'4KJ/RSA(I& B:8?.\[D[8*1P\HD]1"!<; 3+RG/D(#GX)!H-+[C@HD>,A MGEX:C80,X6S38'LNCB5MB&MLG9I2 <^(;1@ N\@9X(];X:2Z%CO!\WE6U9JQ MF!3!'&(ZLS1L9*-V59HU,0EC>>U]*%.]&;P=O!SHG"QFEUS'(H37D^J#62US M/WUE#98*.]NJM>(_4B%.<7MQ\E7$UC'K9%F(MPC':]K*A\OYB9_?.M6WGN?X MY*<7;Y]&/V&#[BKZ-<,"@-9\%(3P#]U0.Z_(_4 WG%G/<.$,E@YUQ@AGZF;[ M*E9#O$%<-<659^-&:Z0933]V<5$,1Q9 O+<1'A7N=,XC?N<&#Q!J&L12"Q(92KJ-O2U=N<963F&SI M"**GR$G.GQO..2Z5[;B#6]X9CO/QZI48MX$,4::"EG%!;T7 !4*&IPEU5. G MJ7SN&M'Y8\&XL9J;<%P( MKX6TB._/)'X-,_AKE9T?*J&IS@B45YO&MDL0:Q(01Y25UAOI#.)X 55Q>+?$ M?COU1U7;6G0?/S86< +Z;9@(L:-H/Y@9'+R1?,@47,5*(%I_-*3&SPO,"K;@X_!,9#DQIWWAKRS47&!6/ZA/F,XMJKP8 M=IA)$#^P6F:!7RBNW#F7?5!J8].J)Z!6+@RK20'$P O"M V.B>0LE^R'X-/) M11K@S.2&,95=70=ADTZP>/F\6NMET T%U$!\JQ-9\+0]A]E3+K-,IAM*-[X7 M"PD@VVW.9LQ^&RZ7DG[^ERVPP6II*@?C491MN%8A'!2Z4E[N-3H1N_#<']PB MFJ5^IH!%%-RPX8R_1P)X")9K7MI6PUC&UV3:G>(.AH_-U1:0T,()B9-*291C M_W$K(T#)MPF-NZ;'AN ^1DL"W)N\; /Y3EB:@TB:0&XV3>-UDF KU[*I[4^> MD\;9"R=O"$DH)O:PT7.6T!)#43]<2,!7?84.>M%W.> RGN6$%^?W$(LMY0]S MX!8R\'O@6FF:DCM..V?'W5]GB,O5H6)TB8G3NU<*37C/O:?9<.^2CQ'-A]L6 M0.J7+JGBVKZQ.+>DTA6U,GGX=JB 35)B"8Q&9<%.+9.L8FM(>-8.7O- B[6! M0Q';Y][K[+@!JR52[[*#V!?&""1(0N^F()+*9EV:\ FK3H8/6604M[QN@98! M> @<3WJT)$WT6!;+>TWF_FXT)AOFL#BGRT#J,0(GY#++6 ML9.?8C;B*,C,&Q O8.R 8)2J5Q9<(*2\5"8Y#)-)B>%OBGRVVW&XR T-*LH! M.&%/D4Q9K?68K)0.DF@:]1 +0"VZKA79BHGU\02*"1MF:TR,^LDRG<)7 3SEU;5X*1?]QR^+ M]BY[3E.)])H;TG_VWUTGT(5(EH"12RX<)&P+9V9 MX]L60N@RP1S_X-,?216,.B)URA1>&G.5P./ O>=YG,1*=HZ/)@V\3F8*M$Y- M2K.1K&#KW('7J>V7D8$\(^6N]RJ;*<-C83>ZX['!8-4<2[IR,\TX 4EEGG:\ M,+=^/-C&T,UVHK*B)7AN+=\K_L!0MNL=ZRSE3>?.01FJ!S5^/B MF;<&BY=S=CRT$)Q[ F1&*^>M*)Y/U3"NC9U?YR93T:;L6-A-;,%3.HA4Q)FF MZ<@N&,'2G2]&!0UUPTD(AM$PPXE^7;2/2C6<)^NK*1MW4/(+M8Q->LK P#D+ M:AQ3^S4ET5W'V@/F)T6#?+AH>RW2(:!^DX34?76%?QLW('Y8<5\91V_52*!K MF850\ULBV$]S.\8HVAV.CKH+)4S.]3"8KRC-#/-*HK7GYCRKYG:(MHDP*/.R MD;*<_RG&%<9/D6CYZ>T137@5*E37;-&7!4.OCTZ.#]GY7E#IN98?N^NC]&6 M- -2\$GV%,MJ# Z09HM14ETJX5VYM">R2K)YGV3\90R))G[OH(QE!SZGA[DR M^Q HW%1VEA,]C)Y6S;*I;0F@,[9! X2/(KM*XFR(W.]S[P,OR1V?A&.D99LRMI4FU:AB3QG$-A*DSGV=_-%EJPPBV M!GI.(6,RR:D^)N%XU)U;B)_-.2Z /@8VR'-)7NX.=W=C.\J<"%T9J,4RG*30 M 8[!("<>_,9Y*:8D>!?%V[DD?)(L2>;]1Y2R3+O L>H)]J&M>, !J -@U1V< MAF"U#'H'"O'O'HOY \SV.YTNJY&X&'>STC2$]? 693.O7)6L9G00K&5K;O,? M18WT1UD!E4=.7HBBO$)>X)^EWMW3X!2 ]W2.WYP0KQ?,;U :G@YOZ1P4A5+A MMB#;D@?2VW?HX 2@MK+JR-];!UVO>4-'04;:KP>\Q:H=_-RG7565V MKK,4#/[1)%06IFU>.%M6W8)*Q*UK$1E$_PW2\0+#]PEJQ/G<8/L>'E [3K-: M*S)B_U0$/%N%%1])TG(W*)+LG -..>)A97R'I**<$:6GB=GDQ=+OEFDGP82F M6_$2Y8G8AD1\9#=^?;=]=1^9*,I"@=EB,V08[CZSI87O,$@BQ=G;$N&0_B0> M(,S!?6012P3:!&LWH57C.#>65/4+++2K";MFG4WR:^Y5:7O]:N\S"_0ZC_ZG MF:_8N]P]B:57$V?\D%%'U==H;-WD6,!\M2:<;87(2*@4(!%VBLN!H(BB2_+!-KN^9%D\KL+ G6B&D*WW;KK@LLIZ058)=7B5BN M5 [QD6K17.U@ E)Q56-:'WOP4/,\)YM;EXJ( J;D8AR[4NX[UKF79"IF$VJF M(ZV5E:FM84#)7LP;KTA*(KD!QY$JP^?6')<)Y>C,"\P.GL!> MO#<\C$]V]\'S2$ICF?I!)N".^@1B\R!%=QBV MSS_DBC; T*6V$0\89\F!>V\NMV\[K,O/P$"&E5&)OM_@8DO:@DEP["9):_VT M*.IEF7&G /8"B!#7&6]P9-&_"_R[$_YW8Y5L36:*AY3_T61,Y;SD%&L,:W'D M!>R<:O7.=K)S$)0-=\8QU[V9K?'4=6SB@FK3M:K9'Z^(!?IQ>$@8X$5A M3L6 ^8R,G+!?_V?7MTH&'WT=+;Z7&14@?@2'UOK_H'3%_M*_JOG%BCC+6\/A MT8Y$&: &@0@ U=5 M)HM]RG*&LP3$B4UM0QH894+?^$5X,%@::5QYD50O>O#=ZUA1L8/,9WM)(R:Z MH31PU?Q>)6XCX(:)&--(GOR@:O78SQGA#[4XNK&E]%+#E&[>HY4RZ$GGGD-* M@#0@L_2BJ4\ED %4'V_K[:TD",=1DF4OS3;2R.(5:7HEMJI <\$-(G1(CUI8EJH];H'SH>03 M7+;#0O($E11>*#-RYQ,UH/NJ0S645[=:\,1/FAWG:JB]2[/M351,)YVX?NK4 MDH)N6[6P:[]RK=-=B^<%AK908ZQ6<+A"K'X'\6[<\5%]"QIHPJ%)BCU'P9=/6J9>B:@T,8!A_3YK)$R$;" MP_+'D[:CZG&7"1Q?80-+)WU7K%V"9LF\*J0*PB&BU60[V5%>MNQV?887]RZS M: ,:1:S\VIL5+10M=TRW+T'JX(-&5TJ9"*_4;S)/LH6T>W2/$)NB6I(YR;9! MGLEG_7&^A.XHB7-$'4M$QGW\T@C^D8(3>*UI*K*3!18+5S84[W_?F]LYP4"_ MQOW)],<_FH_H0-$QND8%UT"\15;K*355YT;EGI>1]>6"1?>@H!?I3QR8$H7. M9%%R7-V(31E@C>B8);%T(XE:1_T,=EL M6GNE=MX9XJS@,_GGQ<*D-)><110FPU7>>#/2O8XA>96^NP6]I1YLN?ATC_Z> M$B(6V&^K^G,V0S^&92FV[P(QXRZ-52G>>%\T:JR"6PLA4'RY*9V.E# .Y6&Y M>#>3O*M75VJ+"KNT$JU!$LR. @32D^RGTBS(@+?9W^V1?E_CX%LN/.&Z, J& MZ\!Q,!1>#8U"OG1$$J2E>JHPGSMUP24OFG_ BL[*&$9@HNN+0V!.J19:SE85 M55XOX []*9_^W"OK707N)>M@A7RMEJ5BCLAY4F\-QQ7^>18A(@EBH%N\A;=_ M@0-Y_@K;AE@]PB\5?Y/11[&U'BS.-(FCGP4_]W\2C.'BU_\.&TPLU()XIJF% M)5U%M@W4(9\R9HZL@DN_=H>M@@#]-#H%<*"#MRQP65R7QN$DRY6 M7%1*_Y1L" .<^M>AF4HZ3SF%,"%N(8<[ :42A8.0T\R,A<)D/JX4Z9(P%@Q3 M+X>Y?:&LL"L;<&@#51R6&5AZL2BK[)41"$,LS:.WDQ\**D9 X/?:C/<;$%UQ MH:A-5LM5W#^H8"<=IW=%1',-GM:;D; M?<=-\RX(8MQ,N 4E[H:S?9#YN.,^']?GXQY0/JY#R%,"J0--L,AW$-(H4 *! M#%$!0*I=V[G(()DJL#>%?C' :?)S^!A"VJS$L:O$I":*Q9I5*U)GZ6>X4Z/H3NSPT8FH>K$'9UGU^J)]53)&,Y0D#7 "YI\ MT-" !YED#$+$3J&X'B5$7 MTL*8+&HMXZ2KQ&(LG69"$7B$;E#QH>N]R$H! MBFJ#\;,E)KNCC6KO)D>?ISS+*.-VD:2K>136S"UCU@WQ&D #K#F:8C>9,,RN MNM-^S0/U8-GHB0 BK%G(0;;'YG!H=YSLT2"\@@AYE>_+(A>8_53"\:U%B>/0&]*FLO")-H=H M _IE)]P?E]R34%;.B5N1\37QWQDL%^"/:A9-Y\6ECT^Q'B*_GW#3+W*4&&V* M?F9ZV):@TR8:DQX 1FW">$5-T\IB:5"5DAX2LHR4&,&KT2I/6Z!0PF'4(TCI MSH]FTA#J5'C=I"6V#9^7$"DY^:7))$9A%"M56W;.H,B,'@GC).L M'3&"^YCY(GI-)]@GYI7B3S$TG;]A3F%(5:Q^P,M+:;'$+$E=OE8R79[$Q,]X MH& K.H>Q-A:#A8[PMXB54).\,Q0RFFJ+;SL:Y\"3%/)"&_,J+@%?:X&2\A1T M"ZH;O9L>PQH,B!B^?1?^^,GHR?QM&O.Z.N,@HZAP$! M(LI0%TJ#M=ZW6&3GGD'%@V>\EEQMEF-?0!(X#L>CR2WJ.7^5(3!=GE\1=&6: M,\VAZY8M4?4AF\]-B&EKC88Y!H;9M!(G$8V@<()8*"2X8R; "FFH[U:)#R'F M#:,^=LU8]1:8H?/#O-U=-,%K3 O&N?>+"ZR\M (431R1G>UR&<>E;<7BAA"X M)+C6281#8%02NLS\NM/Y93339]=9VN;5)<*(SI+2-SN[=W&!,7$-?7,O%_XS M;)%Q4\0)EA^>5,(I%:PGU2.\H#$5 M9>RDMLA^W:6'[!0XS27I]8KWY%TG3=A%U*62#6\#P'+Y!UT*O$[Q@7)*\N'#60FCC%*7,8O&J;%'"!\J03$;0G"9A&(3U ME4H(#]=+U,K?M\VG';#9W060V-S0Y[E.$NE/XWZELVEK^R#]C%_E CL&_84AX-G'$,+$:V?Q!A-,00Z MD2(@GWTF(#8JA7A'6Z')ZDT2=QT>F^)/86%Q:$!W%!=+O077PPP>9/[FI,_? M]/F;^\W??+:!9L5-U]@+6TS2KEJ<6*',7BR.Q&EZP&T.ZS;T?/V:P^ATK&S LQ&C2&$V6*;0T2WVP+X +JZT<$DX'^< M=3Y_BLX;%R/+)$[VX;@%!8YU49GYA;&A?W^(J6MR2\']F[@B7J_& 6_46P/> M(+\'W78:Q.6Y4RX*&H(2NAH\;3?A&W?"7V[[QX*FJ$RC5[2@HG0>CA=\2?(@ MFD3*)E]Y4/(.9DXJ;,7VT22 [K:=H6$"Q=DKC3^TS6DZ7\$[N\";]!D,^+(S MWKV"=6?PL>NGAJ9M-YQSEP&YUAWK>Z=9]!UQ3!\>X@1Y:X MT7WX[VO''-L. +B!S^G3"RBST&JK:QH<5P"G029>E?OWM_F.X=[A^;X_?)\2A] MOW^83-^/3]+A^_1P/#D9'9^<[!WN?L>*D+]Q"IL:_?C/',TY%'AG-9# 2X0? M +WY_N3@8'AP(E_XZGD-7!O+[=&/@^@:[+OO_N8V$=$N(MW&?:/.$3Y/UD.)WNGR1'T\/]9(WR=M]P6P;(X/>[^X<'H]W[ MI[7=&Y":6W9/6U^!MO9/CHZ.A\?F_>CP:!=^&@_?'Q\-#]\GA_O3H_UI.C[9 M/URCK;U?48^\890!C&.^/QH>'!QM 87MW8#":/&1M_K[)K0UC.AVV"_61&]7 MD3(W95%*@S:V=!O39%-663SD DAHXD7MJNXGFGL M'L8&F598*"/LB3$YB9J\$X#AG+OL$K"@"$00VVP6.J8/)SN4J4O=_&QK!5ZX MF0]G.EA'#.0G/[\X^_%I,)$9#"I2XF&/_-Z(\);@O]C6!<<,MK#,J2%PB7EQ M22=\:227CA;=BJLT5@Y/;.UX,=0%-Y 7O,?+Q.T^=M7PV"E+K6CT 3[?^ZV" M?IU'OR52RWZH4%2U&RFF4 ,T9(H:&("&QIE.FW0GX) U_QOA0/^._SD-!OV] M\+[WDB)'%D;[[+?3E[3+=VZ&ZEN!AN054(,!W*4+^#TYPUST+,F>!AA8BIF MCU2\!$V'Z^\8*L0!C2S!8"5#6#[WYM7/;"12!+ 4J"?J)<5 ]8"7]#NFY!UQ9^@/#B7YQP_Z;^75:ST6O43;5E@^N7*@Z&G_' M^$Q; -5Y/=SB[/\-"PCR'9JV^I4*:KZ&#MM+)N;P*!F^/QJ#5;1_?#)Y/QY. M3]X?'J4G1Y/#T3A-]M=TV/YO(/3.DJFI5Z_6"A_;]B'\OM0_OV&\J]1)?3!3U<9H[WQ MWG@T&KW?'Q[L@=L#?G5R-#YXOSL]V1M/]]/1T.P%*N/-B[?O3D_?'Q\>CHZ. MOJQZV,BA'0H#ER50GJ?>_E"/'/Q&H;.?B_(MXB-C;79=O:3J^9\HU0RVQ?WK MN8.;Z#F. 6)WB-N*M>EX2Q'OB2TFQQ (T3P62:0@=I@BV = #SQ1!%TY&P-CRL^Y/16EA*O*T M=#X\'$%VD:4X0 M1;"M-U-.8T0@+5'-#G4RR : !K'[)DX71;771;#(\'0E^%Q R/M MG1HR]+F%<'3S=B1-@KD/-[H'8^R4@^ Z&EMI!-;"93VSD$]^-8>65^.UXYA: MX4U;""+CT7C4D43['6@2>E6,?;%J[T]*O />V=QF?T_D@A%V%&V$17-&D^F[ MA=*6D! SF\)A\_B:K2;7B%T-T2&A$7/4F>*D1 Y.D _!)(=\U(#'?^[@98 MB83@,)'-[O&$([Q:][UC^%J;3C(6,].FS+-JAO@/\"?%%&>ADO+3[]YIP\IGJC!$0<]EQM9^ M9^1)E'I7"CPM"/@@69,16MP?/<%'B8:@QL\W_ <;$R)Q9;_6+/$7W^\>#(86 M_%):J-KK"80' 1*)VBV60*.2I.2*1$QM7G #76[."XFA>>!T51<:VMMF;I3\ MQP<[(QY-'[M6JQR..:HOBZ" ]94K< VL*/'&]NC_X. )))PF'+FA3!H5%3L' M?C@8Q;NC787T)K7@3BOUC G_;&F.#K"F8+);P-'O1\>#X<@5.,L -AKSX0$6 MUT5-057]UK[#);W7&"F#'4I$V (W\!A,*D8HD0+&9I;,IRVBT5$F0HB)8TE] M3*DVRQ/IHJ3&69IQ."7L/*"B@"!V1L<@.I_LB?1T-_'31^[.P5E83[M:9/T: MZ&F!K2^VB#RDAS!4?J]G'Y#R[:.#7\7_].7X(PT"C?H@4!\$NE40R#NAT=[@ MF!?]]3+IGR!EPEC29VM$Q%[PSU-2SZY#W?=LK"<"(HGJ*BW4 DWMWOP0@H>3M'3;7<+1SO 3 MYO$P_:Q^BE^]AB&1"1?!4>#$8F^)*]V"X*IF#LHVX8&(1?[O)O=P0=U='@W4 M.OEMO1D!4TE-9>>(OZ 6HHR#1'9S+X,>_K=N=:_MLFQ@1@H!KCTF^B0< R.M MU!(&LG^UGF#-3IS:VV_ G-$8J!U=$;J3C\&V\EUZ.;>>] M]')L.^^EEV/;>2^]'-O.>^GEV';>2R_'MO->>CFVG??2R['MO)=>CFWGO?1R M;#OO!>3807\O7^Q>?JA+3,7<6=KE/@[A-O4T7U2&?^&"F^N/Y1-/85+,\9=_ M_6ZT_]TMC^3@>'!\K%4X-E6Y_$A(,6FD]3U;=F;CC73TW=_^%^L??^JN=^-_ M_-TYZ))PDC>1K_^UFF=W;K)8)XOCGBSN@"P.'AM9''6:W:T8P'"#2QQZ.X?V7%O[ M[@WZQ\1LV^$:;]F97,5E3TYSF5H]*YHJR=-*/%[&0N-_+]4?]EKU&+2L>GH7 MGK'K$7KVI\G$F.GT?GGKJ@-[Z9>IG[GR\V(:_8HP;]C0\.Q.U=F6G4Z']OJ< M,/R6[>YS!,CG9._NX1@\*4*%^S>V8GK*[BF[I^R>LK=E=SUE]Y3=4W9/V3UE M]Y1]777)PZ3LAQ>?>D? /25.JF\$E^PA1)NVBV2%<^\YIGO5F7Q_=RIG>R+7 M:URZ=R4I^!M;EH;JSN ST6@TBH>'PX<6<.U9H&>!NV*!X^-XN'_8LGO*[BF[I^R>LGO*WH)C MN$O*[C/?7^':"*Y;/6("9>^SWU\0IN5A<>"5"$W;&KG:WX]')WM][+8GXP=- MQGN'\=%AGX3KR?B!D_%>O'_49])Z,G[89+R_&Q\/>Z.B)^.;H?YM+1D?Q0>[ MCRZI*S[L6U.9I)S,*+'K3>'N0TY]R.G!!E-OR>=[\='QG5=Q;]G%]_3?T_\F MKV,_/CRX_C?1_VY\M'_4TW]/_]\F_>\>Q25;5)8U$Z,-Q?3CN84:5 M]X[BP_V3/JKC!\X&>_%)WM] MQ45/Q@\[50UD?'B\3L:/(U5]DQ-XL2A@7_])<*8?5F9'R>2/)BM-&F5YG>3G MV7ANHJ2J3%WU@:X^T/5M!GI'\>[!G1?);MF]]^3?D_\&\C_:7R_FZHF_)_YO M@O@/AW?NK&_9K??$WQ/_Q@J_WNSIB?];36]WU'8\P-SV6U/593.IFQ+>&TUF M\-F^\;J/V#W4P#/>Z6CWP0UK[.FXI^.>CGLZ?G1T?++;DW!/P@^:A ^.^D$, M/0T_[$3V)G/B<62R?R]QUVEQF4=9'ETD\\9@LGI9%DO8S(K*M0+I^>2Q\1+I.:7GE)Y3>D[I.:7GE)Y3 M'O\4[VT(9MQKY.(TKTUIJII"%$4],V5D>!I8]"3+)\7"/(VCW-Q=T.+;(OKM M'_]WUV5E6SP#\&IZV,3L3PZ/]Y[V\?>>"QX)%]RZQ>2P[PKNN>"Q<,$M=<'N MT6&O"WHN^,:Y8/^DMXAZ+O@TOW^+N>"V0"F/KB^?7_%K4571V$R+TD1U\O$. MB_&W;*-]*/"+Z+OMBO#=4L6-CN.]T=&=:[DMN_J> WH.N((#AH?#G@-Z#OA6 M.> HWNL9H&> ;Y 7H&>/!Y_MMJ@/UUZG](2?ZAY/@QCX^^O,OM MCTUNIEG]M(_?]?&[AQ[%OG6KP=&=XX;U7-!SP8/B@MW=>*\?Z=NSP:-A@]M& MN^*3_=T^J=GSP3?/!T?[?7*_YX-O/+F/Y8[K5M&C2.__P]31O*CZK/Z7C^>% M?+$'?)$6#0XLV 89\/V7#';?^\Z_1.WG*-X_/N[#X3W[].QSFZ+18;QW>/>F M9<\^/?MLW8Y&=]^YTW//M\P]W54.][[S+Q(4 MW-OKJ(5^>)40&ON(EJ:,JEE2FF=]C/,S./^QQ##O&19XP][N;(<]@?8$VA-H M3Z ]@?8$VA-H3Z ]@6XA@=XSK/\-"?11I,!_3*IL0HAWK[)Y4YNTCPCU$:$^ MGOH)$:'AX*!/1O3,TS//K<*I@QY9HF>>GGENJ7EZYNF9IV>>6S+/;D='<\\\ M/?/T6? ;,,_P4< !?'T&Z8.3#STXV4?/>P+M";0GT)Y >P+M";0GT)Y >P+M M$^2/-D'^N\'=FS1*8.W)N8DFQ6)1Y%PR745-!7^JBPCV-&GF26UP0ERKL#J. MQC;+GO99]C[B]#4P5N]]^U\ INXH'NT=]S';GH-Z#KHE!^W'^P<]!_4-[GY^:L]!WSP'/<#T^ZTY:-CA!U&XY8.9T7ESJD>C/=-_/QJ5)/NQ]E"^^EEV/;>2^CP7[/+UMX+\>#@_Y>MO!> M>CFVG??2VV/;>2]'@^/^7K;P7GHYMIWWTLNQ[;R77HYMY[WTF7>[C$"[YWL?%/+WQ.7Q1&7[G"<&)R6M3?K$L^*28XR__ M^MUH_[M;'LG!WN!HNT:RW>3,QAOIZ+N_O3(3LQB;DM/F>Z-8\^?CV[=A]^RS MK>SC=U5L; &R?+)[6S8Y'IPE;/WF$I#%$THB> M[/;D<0>2X_BQD+GBS6R>*X)XN>+-;)XJC3]&XY_\,-OG#HYAS:Z^?J,(%W?>PS'<+^3) MXZ;L_9ZRM=ROI^S[O_M>9M^US#[N*7LK[KZG[)ZR>\KN*?MQ4_;#BS:]3*I9 M'$W@OY'YH\DNDKG)P3M&R+5J5I3U3FW*193E%Z:J%_BG!Q->VBZJOJXD[6& M]5_7X+BMG?^C_6&\NWOXT"*DVT;"5W?K/0P2OJZW;7M)^"#>/>E)N)?"UY;1 M;BL)GQS%A\.#GH)["GZP%'P8#X_O%(.KI^">@K^J&3$"&XL\NL3N:/->)T7SR[9<=P9X&WK M47QXLM[C. \O.?VN "\^2JK*]'GG!QMMNV,W_>'QX^[1 M7GQT>*?3@[Y%.K[OY/,=>]L/D(Z/C[Z$9_&MT?$CDL\OY^3\<] M'3]L.MX]B$_Z>HJ>CA\\'>_'HZ/URK9'D9+^ME^L3TQKJ3>.]@O>RDI_\^+_UMY*6'\?'=3N_LZ?\;D/^/)REQ$.^=]'5) M/?U_H_1_&!\<[_;DWY/_MTK^HZ-UZ?]0,])574P^S(IY:LH*:7IT])RZI^M5 M'X7KHW /-$M-=8-]-+G/4C_P+/7>?GPP[/ND>WG\L+,BHQ.PF>X^8MK3<4_' M7YF.3^*CD]ZNZ.GXH=/Q<;S74<5)/NP/=3*>FV#8W&V7?SQP5Z%H__0;^%&' MX@U&)V;1,>XNG&'G3[ZS,82=23$ORF?R[J>ILNO+/3G8HQ!'&)^1CQ_RW%BM\UCY:?$1+ MA"U<(12.U[B'AC>%:VJQET_JG[5<_A$?!*LJ%\FSTS43+YH\F8 *-B&KV$=]=E]C$ZS2=%N2Q*@G!_@H)U M=_A<_TH_CIX_'41ODA6ATT6+)#71M"CAH5GE/S6.33-*KBBB"9EX0=X-Z6IEF:"/#-? MQ1&^G,)$2UT4O/7[O9%[4DPK3.9S_ ON'BBSJN%Y"%[ @23_$ ;1._A, &9_ M5L/_V(>_A*,LSWM*U8GAU5W";EHN/GIS"+_AKQ_BT-TE9\X^GIWRVL(07>=[ MM]\:(*/ZZ>J1V4+_2K+P3BHGW4I6E1*A^O\&4JVT:X3;7,SW3P> MIYY-0'J5 M=6[*:I8MH\NLGD4OTHL$/ES5\+U9-IFI *E(B(+D*E 0X$_1F9DT)3 ];.5- M4TYF266B%^>E(>Z%;\,;09C"V[.J:N#E!#=:S$D(V]=$+Q:PY4DBPSI!$PS@ MV2!=SN%)Y[!*Y/"]>&]X&)_L[D?5+ %)1E*L*5&[P)HX4@_?JF%12UW)$IY* M7_Y^=#(X&AX?1"#V^/LBF>T;P&@"8;HLBXDQ*0ORPX/!KA/DA7^P>T,^V/N0 M,9Y%W45?]-W]FTN,NUFG3XLTD^4:X4B\=-.==(C'3YJ<[-G'D[E)2G1=9JVG M[N$JOL1HZ(V#?G;W/:W 9["WVY[W_'__SXVL>V];8NCODJPZ-SL\-CN9PIN? M)?/+9%6I?W8RV'.R5U>%YQ"-AH.]@S]'WK^=N>\M9Y%\W/&.3"0?ZRSYFOZN M9.]#?GG-^&Y/G^R",17Z1/NCP='!%[JKEKK>JUD?D>JF8PX( ,"6!9"36Y"K.%1=YU@$F7I7[][?[*[M[>7CO;?'R1'>^_W M]X[,^Y/A].A]>CR>CM+1T>'N9/H=OY6_@:;5T6])#M1"-ML7;9+$<1*_!IJ$3A455:-V,X;#P36#,F#HI5_"\:7U))@S\=FJ84^?N MS)L*O4O:0!Z!8S+QMD<'I543@ &K3DT /GP[(P( $+ D\2R(TW\K]O MD5I5,)(931YU:28&+SN)+I)Y TH6'I;"O\N,A#RL$X,#9;%*YO5*K6@,A6 H MX)Y:T 7R^E/4 &P0G)95 M]*XT>;HU I B-J__=?IJ9W0"KA1\!RX#K@RN!9Z838&0\AJH*P$ZGR"SSXI+ MHB,X:/)?X)5 CR -.2;#7#%&)H:[A?.GX(OYF& 0#806\&KTS\'9 +8.'U8& M:8!#D,$OBW*>@J%@4(05%;E[X@+B!Q?)BK@I PDEXD2"-C\PLS#-Q!%ULEJ)ZE!4BV0L[ <:Q"]0 [GF%88%;@H_,BY71K^CB MX&SYW&C-M/K"WB9DC= 0X.(@?!U*O M4(7//8KUCV(,E-*,_PT<@S^A8 5A)'2^0BJ5?W91C,I;(CJV)!+V%9$$2/B[ M*X6GRR/@7^&I%&7K.NG"QG#71DR#.?AC^$R,5<@;X"D+8VH\,=ZC4B8Q+GR6 MP[(Y3= ND]W3?\$Z6(M9!0 M,2-5ZB,6@^A=06%C^IK3721#X(7X/;SN)L_0'2Z;)=(FD""J,KR$9J,QR;2! M'SB?%V-2VFF&%S]N\!E 2A_@\";&,?PE2 QFVTN!# 8#IJB1R\ >H0 ^RR\1 MW+'E?4P)FH\96T99/BT3>%$S81'(!%8U2Y0WJ( G#9H10?!_HW1GR'= K4KS=+Q&J9[(Y78B95B!5 M-#,S,7UB9B>\U@8X.K7+8&9EIH%'@VZ^840^!UJ&< 'DD;A#8\X!01FX] BSD3;^ $A\J%?#H,B*,9^I0-3?07B5P;DHMN M,46^ UQ"SO=%DLT]A>L^#4J:76'/\0>60<)$[4%N>E;BL24D*\2G)QDQ7K%D M@GM[BIP(;LT%2V:F C1T\^*"=]IF2A9!Y,F":36I6KNV(0.\I!B%X"4JWD3R ME&)$%>4Y\.A_$LU5W/]IAXQM@\6L(H*+1@DDAA[K M;^'BE,]Z91+4R>X'UIHK-#JDB2=8 U4A M@!6$B@TT(_HW<-Z=(1BB[DL0NQD37 Q N!1ZW %BS/Y<6(8H@T"!N; MLX!#.ROY +X#N-\I[CFK2 /PBBFN M?EK*KPQ@P:I!E(@Y4?ANHX?M#0;&1C M30(99BQ @#G1@ UN(L8CR,G8G('[C?X/EA40W^'G8CH_E!.P!+X%S\;%B]ZQ M2GVN5(AF$#X)#SK64V*M6Z+,-[2WBJH78!M !I0Z5"*Q]@[+&3C7BCR,'3!: MP/ PEJKIT^PF ,LAG:;*2DFT0$MF7!8)&M/+8MG,+>&@^,"X2&G^ .F*;CG[ MCRQ)HG.X,:#)VG&=% DOPJ]W$R;'VBA2%-O'VJ?R9_P3 M9>$79:AY\-2=,(R=NUUQ_G45.Y$*3ZP-AH3PCG0>;^]OK<7Y_[NVWN[RM4&[0#G\[>8?XF MV1EZ \3K4J3A2\L$*S\FQK.Z,##-ZH6="$Y>D%RJL* BJV8F58>[RR,78[4C M*\#9HFEVCO(A""YH]&/-VY"< *F5'.M![L_'6$L MAT-/VKF.1T@0-$ @!6( MQ6K/PSIN&Y-0&_P45'OH&DPDKX JJ?P YY=P:!4'U0AI5& WS M11P=X7](6B]0O(/!!<\QY26E:5$+>"'S2'R4 @TU#M%4;7TA:Y+WZJKT1.B" MTV*!A&=TK>*&5AH^T P)AIA+/(8Y60!D(X(Y#+= 9BK:B1-<0.:GC_#]UDTF M+IAG'U!WMV+LR1U<"F_;>=VYZ%@Z:%+"YB/6IG*@T;\G"13R:&'=$I;[/D0!0VY!R8;%Z<=EVB-T)/[+D%@2.FTCEZ5W0P?OZX3?TQK1M? MVEICD)(4VC%\4?:E00+>#PNAV:O$Y?G#(TW!P!7 \00(B2$TYDUDDD!^G=2'RR:P _PM?)VF51LKHPZ") M-Y\=_LV?N#Z!3*6.JFJW1Y>]P_)0XD46QE:X*1&2=QP&T[K#CM&YR4W):NIG M]FQJO#!VBSV7!RZ_:C"AXX5C8JHAA2=-A _AAN@4^7CQJ^@A[RQ-297O2 C. M^ FU#96 A/(KC$NMU[5H<%>#[T3J4N3 =@I1G?JFWBIB$/.7Y./B?WEK2^:L MTL!734I^>A7HW AO+UPUN!67_!)*\J%8DG?+N7),.4CB"8^1T'*'(:D.EH8% MR"RCAQFPW;0Q<_]6\'AQ!V #3DC*D7P%GLB6'*0G,XVY2'SS&,M+0D%!'C#7 M&Y4LXO%(:DZ_6X7N5L1>P\EUN,F#&9L,16(WC&>"4PEIB#FA.&2.D!>-M-,OQ3Q$L")8;G/ND2,;:5KB6;DM^I$2($AEFWDVA?->@1-W MK]D)M(Y)29TCD7.R+>!\4%X<_*:V (S_35>JT<0$D7-(<2W5P9%!;@H> NP$\9',(=O,[8& M#5JQ42Z1&!'7-\LY=HP=!A3L%>UK2HSMH!DA!2:V!,U14FG(^H4/T#&P8\%Y MAY*45 ,'BY_H6A\6B5'36%*F?N.6MG5Y!D7L\N%XL#9[$[M%88'+O$A2+FG8 M[#A''+%JI8&H.J3F8)Q699P;-FXY4(ZF.*V="CLX2$M147RN";-[@^@LK%X@ M4P@;3N$!E.D 6D2.(TT&@KED6=IH2%5H.944LLJ7=9IO8"G+ D,OG/6TI0[+,%H%GIZPA%L0%^:46/9A8Y=L MW=>U>#KD\2)I+5V(&<6:O(=WA)X-4;R75"8O28QB>H]0M;AJ]-:823HB(P-] M_5I[9DC%:68));1+HN-*LZ[;Y^ MG\QM*R!MXOR%Z[7<&F/^=;O_=^3UGMVL!9CJ/@$B"YIIR=3$GEXT MZ\ S+9.U=E]^,WS4;QPFIWB,Q$KBLB0?=M.2X.G(N6"OU/%DK1K=_5XBV>&7K9U"/TC M1^5*-8W.:__YQ=F/T8NSE^!.+,%*/1X>Q-&/^MV7[KO59W<["Q'>3\OS TQ\ M[?>)KS[Q=;^)K\]2RXZ)_QL+*2BEOC5J^1T5BLU!XI):DQ28L]!F=LD:!/8* M<5BIA&I]C_7ZZ-G]X WXX C?(.# 7_YTCT_AGB6"5;,G^J\%5:(L$!6?I'JDVMXV0:#6ROD.BTQJOQN^TW&+8X>'5&Y35 M_\M:P>&S9R"460!O3A%CI:DK;HC-Q%*^FH)?3^7.DEA<%YI>QA&$-U"% MJYA7+#:,+& *'=F+9[YK6%^W(C8$%7)P;_9T"I_C5)Q^!%':DHFFK#B'X9QU ME_MO'0:E"9UZZ\(81F' MM&&US=H]=\C9I9D4Y[D590D;BS:UAR'=XI("A-026W$R@[(V.=7IH#C *X,E MJ)@Z]3>TOG3M$&=Y$ZP(GXV]]$F)1BZ5*GAI.Y<\X2HA+P]#!;%2W\(7XV5/ M+XQ[]T;%X#IYNU5#L,XU)9&LU3(Y*SP,@S9C%9M4:4-ZX!82.G8X'W-S[I?R M!KR2E.-,,\B"VT:"'.M%$TR)+:DIV+9PZ]KB4"\I<5VIGY0C+DL44H010 E0 M+'M$H(,224%ZL6R4/FX??I$VTU2L MYSP8QB[VB!4VE]DZ^6@J*SGAV[DMU@8&K.<65$0R;@E8G6GEGB&2"68<+'@MO@T&>;4K:YH^5+WFN(OG(1WPM@51"!0I#6B3?&" M,XYXV6^*>3;1J_ZI8C"$[8KI+X$/D]*Z5BZ@7SG : YX,4>!/L3<=E.J+4:* MF&H/"E_U&6XDI8(?[,(*<*U 2M[LJC_W$.2&Z\;5%4D9%%9Y M4CV!!;5PX8PV/3%2F^V>L:=PA\Q]':SME6G&1PIL>]#G^/L<_P/.\;^5M,E; M%U/8&G/ 8H]JPY"7.NSFW=]-C.251J)Q'9RQFVC0%6.\Q&X MX75F$RCX<3B>I2$[!QUCA.6DDQE$;^P?GL K&%H&$\;GYJG]_H;W2H\V?45! MYO*@NAP[\4ILN=;1#;GM0J7FHZG4B!(\A\M_9_S==B*(F(*:-'P<.TOKQ SL M8S=@@@:'B(G['8OY*SW_K>W8KG#[.0J68"R#)EN@B-E!D"(DJ@R6.3:3!(OZ M+ZGAT#9.@J?/.%9/A;;E;4C\3S+];9-+)[SQ (:;94IV+;T3CVL'OK0#QR$ M6'-Y]X:UMC;MKGE'3C -KA*#U1.-C5";7M"O-@;R=2A?X5E)5S6/QB@R;@MF M0BAEKE(=*F VO+V%7@4Q:>TF60\0>Y ->5#H-N?1H<+Q?PNEH =G 99L\ORG:H<_)VOQ#J-,^7RD_0@ZP&$72!I3XX$UK M_5U>8Y!F'_1:%./,]H]QT0K='O*,@95 M2V#NS9MRPP20]3R'P5VCKU(WW:@L.>EJ.97>*MPLQQL]XN*,>QD!(Q;E#I?" M9?FRJ;4WFV 0,^Y?)N 8ZK^"Q1%D#@]\T",GJ#H&.*;DB__F-16,%H3$_OCO M-UMZID_]*%"]MAV6FHMUPH($CB7N',1B-1BY-9[L%6@^V^;:7ETRVG9S,;+, MTJK$CWF#,NAV%#R5Y:"KVRP4!O\Q>H&K6)!9WJVTNU*LEBQ(V B+*VM.T$67&P^4_SKCQH(CT!H) M.X!1;M"XUBK?U<42#@BAJ3PDBE.P<*:U&/4D+';PBVJPBW0Q!*?CT_B:Z)7J MQ#7Y&ZBQ4#NXC68*_G..\NE!IJ\.^_15G[YZ0-BLS5+F8;A6FM(0Z%(EP\C34-T]4S.FD6C5C! MU-X -GU36A\)3W>TNR.#SCQ+YHJ&*\66I^/.9D616J)"D$F\"1DFP O7V%#E MT<.*"<)P@&/3J;5 ; Y\$!M@+$_<;ZB05E<=Z8)U2-@P]N#O,*/PNUF' MLA/$,A,B2':2CW09K"S ,N%SHYM>*72*SNW1T*_U\N@;VGF%MVH&YX/8OPGO MVA!5+,/>!L\.1VQ)ZTR8>C)XJKS*2TB-O1-D5<*245Y%2&:\) 0 DWNJ>!Z@ MHO-8ND0JBSUI,:+)'!*XDE) 7!#*8[S ><)9"^J7,7:P$>4# MP3E=<;6X-[.(@$X5 5 29%=S%%&:%CIV;\3QD#?3B,0$&BX6PXB+O1E57($Y M9?Y%,$_4?XJZM@)/Y%5@=L(>"M=SIIW)%VOU-W,ZGN(\N>1AEC3?C0#+!>A. M)05?IO'[N7SC;KUV1DYR29;.-@38<(8R5 M,OG,'G[(R8RKBH6C/$W-%HY:3+N.FF.O#I5B:>%#VCCV$6C+4G6'CZ_:8%3L! RA.MI $-^KA#],,D\:8[R@ND5/C M-M4E(!GL$"\/S944;5//BI)Z*P94A4^C2,4@LC%+?FGF,&IY'];3L?Q'2!)D M7#J5+X88+(3D=.R#UW/G"8EWL 4QP$6%#"3"7?6R:J.V>6J'E58]W7 B7K>-$'TN,#.-/R7;!D,+O I_0JB YE4N@1&B8Z(KFZ594NI@ M(T;6X[XG&0Q 9ZW/$3,B+_(='LKL/8 WC?.5 ]!6\KLS+@YYP3,%' P\DH5= M/L.VKRS;8307^Y=$]1D[?=E?CL.R]U:RP<24-%UK,]U/"%2:PS?E?_O=RPG- M/K")D.@7GIAYZGHJ?RTN=]!/Q1I4)!H)P#=S;4"U#>\8I$T3W&KQL M7D4]M&CI2?DB"W^K8J613]((;Y+59&; RGKC)I.]X;%GT9,W;]Y(D=V\2'(& MI*ZHG=C&IRSD;6Z1C>%EYB-:1V2":N=<:19-;F%!5?:79FD2"]Y)N/_2-&DS M-R0$D+>MY**:/CN9FM(P@^B?1(J((7FT/^2G4><2<0YZ-G.P+RN9-J?R4:0[ MZ2F3@WG!PSL"/;>10K!J<6'<6#BO"D>84/TN=GV)_CSV/D,EYEU+FJ4D8JXS M?*B)RF*G3GRIW=5IMC5!,*V9!E%GF^LC0G"YS[S/J>"*4RD8K:M5W.G N>V? M=395,$F:9E'Y'*]FAC_LJH6PC2;:)%G26?['?Z^'/\#I6YMQPOIP#9C2>S'Y M!GS!A+V.IH*6!WU.IK?R7VS QHTD#TQ.__T5Y?X$#UW[\[U83X9#9\RTP0%+ M%\8?+.#"T-.,1PM5B/K;&A'%*R)L>'JI.P5RD;)*8!>,VPP\T6IDLBK\0Z0A M/C:HQR=>DEG5>;S6E:LB!#-7$'*'BHS!#WF %=(V"FC[FX.Q(E,*]@1 M#S*O=M3GU?J\V@/*J[&QGG!,D:3@9G%JAXQ1+7_B"40&0A&X0L(([(:%\8%O M"&?_O@(2GZ>3$<]@AU,6+SU%LC5VNT,;%RQ"ZL/"16O-EJ?]7-'\-,E*@8#A M,A752NUN>*EPVOC(H/("K&+8&M56>R_0!AVNB=*4I<1%N"'"/<\:L9HHH071 M .BP\H/]STW+TL?X(0JO%$K6@F6]DN?P!^JAIQQK/(/4ITZDPM/5L K]-#49 MAA"Y>%A_8.:Q'VMU+]$AR3& :8N1B@PM<%2R"0[FRW(_*ZUI:^S-X1BD]UKM M'I<>)737;=1G>WS+=[,V/?@#XF@"CDD%.@1GHK&M@9/"-2I._L8#T@?FY1I#BP74S8'/Q 3%Y@D%$G MZO@Q?)=6N2A0]\UIVK?E-9HTI?.;R(>E1TED1S_EOAKP,"'FN$2-]ZE. E%Y M0D6<(!8<;]$'05HT^/+ A)43"M?;=:*M%=/G_+5ZZ\0/E9FQN3K>"";;[(1' M#H3HO/+6W1%94^1T9L)S\T[>O9Q#S&.:7Y1&[TJ2YRLIE@'2OC!\YFMI\GIM M0S[?AKO?%FW=.1)C:SCS=]>@XI!80E:UP$G!E!B+]AGBNEG(MSB,E",56$-M MTW=:9<&^5K,KJE1U^6*U:V2)DO^$=#Q7 /;^$;?UNQ*R.X8QKK]AGD;%=$GN75)HE"&OC&^P([\WY3,NV M! DVQ:Y8MA#LY?L0X/H[AVCH_1+'$.<*(GM,J%@=W;B$'TDQ7[%(]$)&M&'VORIH=A ?GFM/R/(9I8S@ M\EQB"Q?2Y.!SI&!Z,'7E:>R#1<9ML!ZL.?&-+6=F12^8J243N9F%;T+.B<9D M0<-T(3WR(O5V.!>S,Z<"P@Y>[PQ'N3N98O(?CP>?F:^\]$ZTX9%^H<3IF[=_ M21;+YZ]H$\IXL25<^^9!],H%T<2A6#CUZ\7#)"6)@H1DDY^:Z01Y3BFY>VF[ M(%PEI#<#2\5G6P*NG3T+3J_-&QZ'S%X(Y@%#[>',62ME_KG4HG-7A"0"L&NG M>,J>;>\O,BP#*%QBZU;9QZU1>N"DH7#@1F0P+S KZ..N7OJ)V'68A_6Q67)[ M,DQ*:= YOXF6MJ MIAD6RD(;N)(%*4@/(D"9;XO?QRQ&5G)^Y35:AW;[O(3(;FYUSBQ+4;?OVR!#=#, MKP7&-.GD7_A*%?GW%^%:!1#2>^$/;@W'N.IQ%3-QO,J"G2GB\86816 M'9:85BLYLD0[4513MQJQ-IW:@=Z;J-" <@T(P.#JIRHC=5WDX_A_00^?OB4E M5K1TG@3G>$ JK35[8$_"2\>@!PYR6G.(6%J'K6D31*)-$\\Y1[JF6LQIR7(7 MLY;9U!9VVZIG6UE,P180U31=E$I')EDY:18\E[WB&KY8ZZ=I RF6^!DM4 /1 MX^SDN93VE#Q-A$ +1*CK^&X[1IWGM,121TIU7O"W3%KT,-NCO^ZL+N4X5<>M M)P(BJ!<@*(L8:Z%"0FJ;I%H:7\4[/76$'']82S\H U>L8\XWAG044T*[H5TUV-6 397 M=+VX96G^5[89W/6[OX'$R/Y&H"CR99:Y,^JCS1R-+W/B"T2_K!!H63//@B%DZPCT90 M;CSE)*O8GNI02G:8EX97)-Q"59KJ"G@A%[N;UDO]5!,G&FI#&I:5HM??Q"7P M:ZMF36^WVJFE_+A8YM?*XE9=-V#'0;=7W*T:K]15:U3JW+/;:"[L:7"S4T;< M&X/E>!$-LZBEF>F*:191<@Y^X#D;H-][(^.0=3 D)-5^/%ZTK.H=N1BQKD%K MF&3!PZ.)AU[]?/J7/QWO'^\^MT@$%$EQ!RK!3(\ZM5//7IP"$F#:!=\BP329 MU><%]+AT2M,:MBMV:O&*:&%;$X;_E8JLM\FA8@?%NB!SK@+7;L#63!KJ!Z21 M-N#],HS>QB('0@Q)ZJ)D@D,%E4=E42QL%S#GN:TT9LR_<"51R3-L.?V#Z( 2 M$JJZ/[E33'<0W$V52?M#7E!+@B8*G''%)V.J Y="KK!KCV#7UFHX?I2A]&;$D M&ZC"*B$+QFO[())RS7.XR&51V]K,S172UW$QJEJMQ(]9:K&L%"_?5NN3Q8'C M!SB30U_4@] (S1II4ZN3S2D'=,YUY$%VB+!7I ',UBGP_B<<5X>M@?@M&:J: MON(93P&7^:.[;,ATK>;)ZT'X8DAL-X5LIP(%?ZQ+">39"%,Q)7M_E7;$K1'" M9X9U'HXJD9:26($27AF'SPE$89/VN*6S9B%XXT$BM6.\C4(KP"?EN9\X%D4? M8(L9N5GG35)**=WI:1R=PH?YIV/F;*!)\(CD=Z/ASM^ELS8--R4%)L%DFK7[ M\_XJOI$?? MXOE]H*O=O]!U:YR>, M^.-E84Q*XE$8F9EP1$=#BA0 2YJZT%]P](M^$P3)ALNZ%2%;CT+6I2Y,7CCB M@)0;C=>:NL[@2$/[T60,/-K4Y@N'\+H'^M 'ES<><>:%8ML3"3<<^\91AX/]@_XB MMN BCBD&W5_$O5_$[N#XL+^(+;@($$W[_45LP46 :.HO8ALN8G=PU.N(;;B( MT6#8ZXAMN(BCP4%_$=MP$;N#W?XBMN$BC@?'1_U%;,%%[ [V^Q#''5X$C:RG M_[^;$--7V?5MYC)_T7C.%ZX>[#B'K[+MZZ(GCW3;U\4J'NFVKXL,/-)M7^>' M/])M7^?U?@%!SMFC]?_>">U>[3H^TDN\SE%[I-N^SBUZI-N^S@EYI-N^SN3_ M*MMN2ZIOS6Z>%'/\Y5^_._CNMM<(]WCX_]C[TN;$D:7=[R?B_0^*/CTWNB. M01*K9TY'8(SW';N[[2^$$ 7(" EK,:9__]\>#%JJ4*4A;)3I?O:ZVV 3D(QSBR@3D/>YPBX3BK[B% M(@%^\\WA@N=@)XIYV3G"%3$SXMC.3$QY8UQW(RJ^RMXMRZU7XXW*FN'6BD=V48.U#1"/W M5M$003:V*\Q'V?!;[]E_8S4D"7#2\22W8\""G?^J*B'M]LR>V!9]U MSVA=*SYKF'=(0FES_/S*<6S>>]W:;D$A&_OK10EMIX3X'X5Z/,KAJ*/8'3VQO0E M1=CT=1/[BB9U2) C4&P1T0N/>F 1VB((UPAE.943\YO69?0I>HI6(: ?VQ,4 MAX#FBRE)EC:Z0V@= OH1C4.Q"^B'-_[$(:!R(266Y$UK UIE9+EA#"S$RKR/ M*'Q&F/?71E]QQ^OK5HIM+PXOQ]R<'"MCDU! ?G=X_Z&CO:'' M8UA>SP*O!6]4N""*8BI;R/)B,"\&)U1"2Z54-E?@Q6!>#$ZH@$IR*AMOQL6+ MP1_+P%BM"R\&OW8" =YQ[#%D O-97OQ]CZKF>/'WG>O2 MQ4*L:R.\^)LH>>'%W_>H1S&5DTJ\"KQ!5> WA?.Q5K-X/?BUHV7GE PLLZTY M\47R$4LD@R5JF2X>?[(6RQM?N7CM\XJ[L:J0*A6*O)S\EFA\W:*PHGKSVN<5 M=W>RF))*(B](OR6B7KZTE"RWR M3/K9/P;0CY#9#?_^K<440B2@4K/Z>O:&Z6'\G17K9O%?L>,=)P'R8?65Y@T3 MW'RL=;(D5)'C%]PDP#^LO@:\WAY0CNJP:27;53 M"478K45UF)S;^,(/A,!= M0\_OMIY"L^9)?J**[99/\F/:A=[R2$(U=[$03)3,XA+^!-1[/U;XMZ(BO(5]Q6L0?EXSWL#R(Z\9 M;R#3>,UXM4>U3!C/B8-')HSI3(RW-07>"?(Q*XBR-RRJ$&/M,OOXRO.:XN<$ M37(%P?*&R; <>V2<(/:N+@S>#$^<\'+T*Q"T>'UZL^K3R6/MAA6L_W:4IDZ2 M,["6]O3C7_C'OT_5B6(AV;O>PX,-!/@2SU1FLW^M1*2BI^=)N1 L,YNB7 Z- MFO[[?_\)CWZ<6Z554S>M'7^O0VA:WEFW$A66#DDW+:+TTDH;WKRCZ$-E9/O& MLIR1_6T4.\%V":2#(&8QKA5"GY$>4\3L*\_I$,D\V4SKI.WL>+?YWU%M"KXT M;JKE!)E$*2#3>(''.T^13BQV17IP;4=KC]A7F@'J#[)5 MFF;@S)'Y&? 04N"O93F3$V \.A S)0!/-4,%A;$IH[[*A8PT_M6TA(+\5TI0 MS?Y L2"M=DS!Z1(6IHV 50*!H;2$/:*2?I-8[ =93 EX"&A&N.F2\>,U0Y@] MI(&EP2R 0D++ L8:0G,$F?I7.9L1_:%$GN+=F\(!@Q]1NW"U[39M1S$<#?)Y MI0_VPJ&/;EMF7Z@"D1U+>Q9:\$*80=O5=8&.'IZJNS@!B]BN[L!03-L1%/71 MU9BT 7WPQ[Z")+?&CZP]$\/63,$VV\X0*". U, WP%WO'5V0';BA!;?"$^@] M*K#0[!/+3M&GP@P+BR?HC?ZG8(]LA_0GG]TU7E2875B\A)Z"PC7 H-F>,JJNZKCPM7L M[6PH^(/W:6JV. /Z1JWI4A4VVVR&4Q-/,>O!?M5 OM$P]Y5D1\/EH>>!?.FL[%4P#!VFV8!IL-,)1U483 M1Y_A*Z8 +X"W87RG$?H7LVQ#(G2(09!<8X:DP-S9R 1X](B24.O#*YY('YWL MU+.9O1EV">7&$!D,H1$,&ZAE@":-.8F?X+$XE>!E<9J,]VDC"H]?JZ5RHNAV M6$! *)'Y;==Q@56>.# 1]!@9YA5>:I.^!G-&WIA(D!8,RAIA5"T6_[%##%14 ME0S OZA449&Z'DOAD3#5)[#^3 ]L4Z=2!]_C"QRMC^^">P:NI785]!# 'O*L MP>Q18. 6RH(QKU1\BXXQ#CPEZ'' =ZH!JTP5'B!H;0%URWND#<*@M2%!##T6PP.#=$SPYC!P+(*-:>#) MJ@M^'@QD7W.HS(<9ZUN]%F2>8/)@=G1J3#HT2S"'$&&X-FB/G1Q_&* 37H?1 M"9.@=5.XB<@#&]@1,KWPJTHO RZ@B# ##18);255"Y WTW(8QSU]27GW6$0U M00;^P%W,K1B$F"-6'9VI_ A&E@1M].U&[!J2+G5&& M6?>ZKZ/!,#'N \D$0P@A8TH@_8%NC@BA7A=>J(2B/YWZJB:(9%L+;L81@;2J MO33J0"MZ'WG&S]1.-WV)-2WV$,PN45K^W_#S$]&]*>FZJ=+WC;U!VA\" MO3XCU">"3F]2/EL"9BBV;:H:O9.24M5-MY5N$1V";&L43,P;K.?' W([7L8&>:L6$#G M&ZW$.'"&MG#FH2TDQ$B%(2!>FYRR/S''+63_BIBE?.FOZ8>EE8Z?DWFWPA43 MU27I+U82\NQ!)SRZEFN!P"R=.4_4C2(6*M+5@6\9@CM!*?/%B'JE<1X[8;A3 M:-A:F@T^#&V,T@1_[:6*P1-:7IHY:?-?[#'!!Q%CII4/43"SB:7\7):7\GDI M?X-+^1<#K+.@VZIYWF5G7=X%1G,-KE^Q5&:Y]L!\Z.8 0VC*(W% 9%WTS0H5><1W3_X))//TFHABA!5GOFFG+XUC^ MP+P7BDP(EVLRE N93DC+6Q'X'Q9#U^D%]J< M.%_6PQ<(%W+)\61E?7KDO^L62Y3J($*XK?\C&G9>,^(H7I%XFRP=M7_J( M38=)I\*+CN-SD(&K!%<)KA)<);A*<)7@*L&%(8;,;AU4F(3+XND1UW)!-77\ M\G]?\E_>Z@1+&;D\>:KA6D__7H9DS;EB].7''?:MUF;WK?I*U-P<85JYZ$AO M%1U1RN2GCC7>:-'Y*E3I/K6-$I#$.U,64VR1F/P5KY@D,=IX+YKE1.$[.Z<. M'#%$HAQ8H@D*;&K LTB(ONUA@[#E;8DU75LQ6O;W+;8\87"YN0BPW"M-2PKN MM=DHN>!2L!HIR'Y2*':\WFT1\ZE"OD8S[GBVL.UY_-H3SDE2C&>:)%(Y8GM MC)Y/)1EQB@7+R1(F%G]M]#+TXJ-"/^A\HO778.8!D'BDV*(6K+=+0[Q'H7QX M<\T2]FS!].>&C>7MT8$//P^'2SR7^.1R?SLE/NXH=IWR/&=RL4UQ_1+*N96T M%9O5-8K$>VS3"S"=T:E,CIW]$BP2(OCADM-) L;HO!6E,:[T3+SP>6##8P#: M,+AO:@R_3>'$7\0 ]@]J" ]H##SN(VY/(P$'0-:143&0VA">KDK/B6%8W13U MWC$#C',/JSKR:D5UM"=Z:W(0K%]FG(_=VA*DPE]OPZ^>#1 [#=WZ+02?7,@4 MYL,GKQBDFKUX JEZ J6:H4"S%[THB3X0]R2\L;1HDE'8^( ?8ZKY<_?AUKL* M7@O#]'"E(V=2^(<5X>=@[F,D_2AV=1C8>3%H]B)5^:8]>3#1\LRGO0&:>ADT M[/ LHM2-((C[Z-YXK)-##'JLAT=D'XUZ/L@U/. )F&"Z]@JAJ-^GV;]P&N#, MM0&>GX$"$E)I5(;9>C^$J4:/4_$W]0LMKV-P]AD\,W0,IT)?,'$*R@S;"-\] MD)BQ_:68$LM'9AP< M9]OYPE&^DLD7#EJ44,9P0Y9,OG!#EDR^<$.64,9P0Y9,OG!#EDR^<$.64,9P M0Y9,OG"%22IC..[J*OFR@1V='%@H23L?/CL5.(@:5PFN$EPEN$IPE> JP56" M"T.RVEDY[BI/C]XIWAQW=5*,..XJQUU]L^AL).YJPESG]J&L,J/!H58YU"J' M6EUV3QF'U.3 JEP*7BL%'%B5 ZMR8-4M %8-=A!U0CN(E.D=1%L(U<5Q[CC. MW6 E*)'%5"%7WG*@.ZX]7'M6HSU2JE L$8JV^1 M##'/,5837([E&*MSEMXCI-BB=JNW2P-'G)P)S;\].O )$2>YQ+]>XHM J5+@3UO1$3@5'M@C#H+Y MX9T+1A/ =*8$G73\:U2*R8FWC[%8QX^$E_==0_,A5?T)O0:FE0&[OH36FARD MQDG&IA9R=HS'*N8#/-8QPNH$*&O0 BN\!YG5QR\=8VOF,N+VP+,*W\+@IV(F M/W]J8X'RKE\2N#0$:6Q1+& *NPD!J*I-CR6"85J>/QBF5&T24H$P6Q6KJ5'Q M@=L&EJD20M^/.\^!WBW-'KAT?""Q)I!/\-%FQ^BMH6'DWP4(^Q)N:R!@ F/ M3,35D"C,AIN-T*TP\QF^M6*DVP345OLU9C\N]%9J+*D\F#H\!6A.7\34*@1S M/39&WC %T@9E<+Q>1W ;KN-:)$[ZSG?OT]G.FW>;4#B"$.B"JH.)Q%"M^T\T MB)!Q'*M 79C;32/E_!@M$)J<. FE\'__B4!&!*5EQ*DUK1V_[AZ:EM>^*]$ MLT/2#)%":<.;=Q1]J(QL;YK%-L1@:?%/I,6WHGB8D8N"&2 M13!NO=NB,+?^ER\@8WB<<=K1)(K"E;_!Q4X!K!-8)KQ"O"_,]!A)=J Y^#"B^E%I^#"EPAN"AL+QX13XRV,0R, M 6O.; M H6$09Z]5C!$SDNL-U MY]/H3A%W=\>Z",<5ARY+)U%\/D!Q$HI;';_BY,7<=BM.;!!CGTDJ"C$>);$1 MP,T_[3R9?^+[_9/*%V[%D\H7;L63RA=NQ9/*%V[%D\@7L6([S)7E\ MX78LF7SA=BR9? %]67BL"^<+1S#90KZ\H?5LW:>S\8UZB>D#2%QG)<=KX @F M7".X1JR?"EPCEJD.? XJ<(W@&K%LGODYJ+"ENW)X:K1M2LXQ3*;WZWT@ALF6 M"A,',5D=B,EVB=J",M2:(4 M!Q8!UXC0LG,2Y8)K1'S>Y%.XDSAA2HJ?13+$;);CE,3#D<^&4W)D"&W-!NGP M(#R&1!A:ID,$FA(BHL8+.:&@=#H6Z2@.R(/P5\=4S!= M"]YDV4ZZ0PQB!9 >)-TD2A^N,'4&.+*W?P2TRI6D?P1[9#ND;PO#+K&(H"J6 M-<*GT1'90E\9"8;I"$TBM%V= H>HV/A.P3-:,&9XJPYBC&\! O2(([1('P>/ M_]=V'1<>:A#2HL@K.#X5Z&?VB14@G]B$#6R=\"%'6)@@MD-'?0&#LH3:\X 8 M,+9O1X8*X_V>@M=_ N00?N;N"G=&O">,*'&^)(\OD!2(G"_)XTLY(_$=D0GD M"[=CR>0+1PY))E\@P>9L21Y;^(;[9/*%F[%D\H6;L42RA9NQ9/(%U(7K2P+Y M(F5DGKTD"3?D(XYN3_[FN(4RN5$[#E96A_L<5'BIZO4YJ, U@N.&+)EX? XB M)'%' %<(KA!<(=8M"EP67LSI-G,3#$^,MBX,C 4U1!2W:GL<1PUYKS"]:P^N MM%7"Q%%#5A9D;)&4_!6WE"0O_-@*P)"U1T#K! Q)G$A](##$5EF;>/%"/K-8 M;%>LPO%"8L(+D;<+1G&E>"%)C%7B*94D;"->9#>227;X62_#WN"B/7G<\,%9+, MB:]@]WM**I2W'!:!JPY7G55X'3%5SDOQ^IWD*4^0,)1 M15:&*K)42O](C=,$7"C=I:L+/3['%1X MT6]\#C*\%-9\#BIPE> JP56"JP17":X27!C>E]AMX)8GGAUM8W84 SI,B=J] M+=H,^6'H,-OF,6+8<2UE%61LD9C\Q0Q+S!@QB8M!-A\B M)@EAT-H@8I(8_7P4%LC6>:88$1Z2Z)6X7*P?(V;SY>+M&#&%C+A]R 5<>KCS)FWK\RB-)*3DK<^WAVO.YM6>QS,S'_2BG1#E.3)A$ZD]LF#"? M2SA*A5@Q868C3'%(F"V$A(E,) E8_R1"003839XB8]W M$D(KR7B4$2Y<'[0C\DZ$(]%LD&)\7%88*K9@PYRU-DBVX>@C']$$,4+&D"?> MNRRBFG MQ90QVX(BM%U=%YX4G8&="(JNFT/%4(F@4*091S!A%+>9>H8BI+1( MFUATZ# @Q;:)8]/WO$P\[_TN/-IRX,D.@IVPKW0'!NG@V(!Y?Q1_;/A;VW5< MBPA-8I"VQF!W;%?MSAJ'1[7D0.%4C%&8,8*''(-X+$!2;V9@3HB*VQ+H3!B MBVJZ>DM06F"M; *LTT!<5,8(Q!_"VAE%EVEK!G!* T'P=RZD/%@=2B@3Q,E# ML$%(&%6QNP)ND; S5+*\ 8Q?VU=&0.C0>Q4Z-G@1A:,Q7"K&\. VC,:DJRNJ M[J+UPT\!V(PGIK9@F"@O+1>F1R%U4$'@90/7@N$B> [^I9..9NMCH!UD^BW( M)[RU[@1P-B$$'B".X5@:_# $(2?"$$8,_['=Y@,,EHHY//;!M32[I5'L)'P3 M/+5#S Z8]JZF4@7T*$8)!=1 )X(W^EA.>(?2QW?-O@*$3FBZMF80&X:('(3' M(>*3!QP$C\";%&;\<%BNS8BM.##\IHM3HZ*L(%R0#28 /\-<6^2)Z.:@#Q)& MKP?*ME#T\3=4P8"M'O83&RLU$)1?E/>D/]#-$4%4'5/M^0,.1C[)>5PP#;[(=%+F.YB-7L?TJH5TYJ@X$0?_<_2?J5634K55LRYE; M%Y5ROAL.-#LG3>ZU^;__1/84!080<8Q,:\V/?NW'_B1/<51IB,9>Q$86Y:JO905RXEQO/LP 45H1>:()FBV;WSK M=%-@SJC/LPFACZ\8A@LTO"8#TP(S;0@PCCZ[61!D[I-MR0G2J/;I:"[T;DJ2J#% .8?HV$$,E=F+$H4(Y M/@])$#DW-*T>NB65S2&%X25X]A;Z9L?$63'T/L75T;-%?=(WY>@U])\;D M7\5<+E,48,8ZC)9=HM,@E,;-7AP( 9\-TJ>P4)!.)C(B>,[77"8[IC]H M_X"%)?HH(_S"I$+7" ;>784%U^19LQTF!S RQ=D!J@(T0Z$.2SN!L?N87N& M[,@07B38\(?=9B/UG@+SL AE"86#=!$7$W[U[H2WC:/'E"^!+(@&W8((W4.9 M9!B.9A.T@+W0XR-:%1@_FB*'V@D#-$-PAD2'J?5!C[H)0@>]H2%[%V-G0@S( M$"()DI?G )600'K$O/B$&7.%TI\&]KK9A%^J%S^/]M)B60!GW2)]3PD9KATOS%R[#:$:![/OI4_PQ$O%\B!FCUC&J]E1-[(VM,Y)SE7AT9"W/ L5 M%=C"HIK$B-6%,6%= A^*?*ZBW3)&U'[IA,*R8G(WG@<-]OSY,7]+3?M &3&] M[2NMB;++V&[AS5]E"'_'EH9F:6W/GJE4_UL9X8;JIL.^]A[MQ02:'1G.$')4 MN%.W32_%)G3$X'D20.20T M/6B]?+U1GA1-I\$N'9)7@D\/C(F,%2YAAP\E_E3)Z-V/< WGP& M8"VZ&*9!HJH2X5L0@6$94LK^,T$^^JWXSW?47=^8,U+W X>KZHK69X$CCKUO M4",%A@9-"5H7>#6F '%C7V:F" 5!:P"6B@,*!(6 MIO.6B^%.X&=F1#5^TC_&GF9&U$+':AJT#H0HQ$!F'"25*7R7)\(M?\ >W2^! M&HK6&I>+IE_.@BV/(_[K(SC/5 &KX1!G5]%I];+>)<3)"'NNA>.B 8S7MQ42 MGX ,"I!1L5WFI[TR;(CM_IT*PE:#A?=,R"1E,2Z2,Z)O")C*+WPP*&J+ULFZ M"GAKQ6 O\KV1$99U)(-8_,>.3I?6R'R3@%=:I ODQ'KB*0)1M]C\YZ!J!S5I M-M19EL0W,\R$4(YYE5P*6DU#(GP#ACF@!5UX!&&-U\%+V OJD"6=FX['N!R. MUY,$_-8.X+@CTQMGIL%$ WGX-G:M)7Q:R)?.<:;?J4G311$#CNY*++B^+F<+Q/'!^87'LC,^;(>OI0R9+5&7CX*YRM)< M>XOT(E;PHL7UH2V7B^U"_XT1_NQSVXLM\Z/+P)]MH%==B"5ZM (,T8]1BH^! MEWAA'6T;D69>6J-: SK&7#.69&_^40*ZL!"_I0+Z 7->KX!ND05=7/G>1@%] MJ:J<& %]6S23,,R@-]S"%2PF:WKJCITTGV=MOL7/)FMZYP:S,E>_/J21 U5Y]B$N UUY/>B+0N MIHJE6"7X,YK@=9>GXI#@!!:PTJ/56%*:.*%[9BB*EA,UU7<%3 MPL@06VJW&76HY90\ERH4BK$"UR>P7+6NX"MA9(A3 3:@7+6DE\MG4_ELG(=Z M1\3''>.KGK@7;Q\M,U5L)BCKLWS+X5 <]]S^)ZW;K%9[WUO'7/?@6^1Q9CBV+7O;? /P47 M0='5F0=5L1,M)HZ'X%GH>\+3=1_>_3%-N6CH]I MO%O[-%>A!'*J6)[1U\1=P>NCQ76+Q\2XIV (R(P0*5G05R&MKV.MVA4HFO423AXINIOU8V< M,1I93_$R/?\:<81II M&K/3L^52WA&$ TN#46J3SV[A.7:JQ@ZAIX>C]DW0YS_TBQ0[!2C=I$<)X9F+ MQ+#9I=Y1;_!T"]6A90X-S!@@17#I.24#"\?I'?B)R<, #_.(G$3?PG,UZ1FT MRK-W/IQW6-[XFA"]V&F]^'OH(+N,D"Q.=XCA'>RW@-U>AD6%]ZM8')^E]+IC MI2>.\7W-<=0M2WLB1D@FX]MT[#E#X*H7.P,1SKX*,D!YZR18SEN".!^[X M30L>S?[S5G"<=S#AZ^3MU?I#28G'J9HZHBGLO/9@H?<%6;X3#GV#QU91FN(8TKHR M,EUGIZT]D]8L,H)\.U=\YB(_>@080H+@MS25$#W M__Y;+A3+_TR.:R+J"X33!BFJ M_[:B>\>B=N$]Q!-V< IXHJ5F/)E:N,EN%#[KLVWB(9?"HPL:CZ>&MZGLCB.S MJ2!S]F%H--)#]E.\:B[C7,9_3!S;._?4WLF(97PL[@S!1Y%UM#X]/KDM-/$Z M]M&7>/^A%"2>A2Z4^6EVO"3,Z G_ZU_NQ81*Q(^!:IE]0@/'L7YB7##M%24:\I9N3EO::J M#&B-X _AYSTSMJ&YNGV;/T&1?*&=H,E=;KK9OB7,M=[*X MP]9WF? WB4':VBOU.!H$#)11<)*KXKVO:1JNC2[;_V)2L9E6^K_"(RR02); MS\RP@^R1W@MC(/V!;HX(2CB>_ST^=YR=T3TS5 A%.IBT>R]_4E1*%QYSA4^UGY:K:;B:J:I]$D8"9L=0W/\&A0/1;F.?4H=VV7* M01<0R+-*;.IY//7X$]:]R<1V>9_V@@)FWNZ9"%(N9'<8%7*YR:/;_N\_D2/J@G9%-!NFM>.O1X>FY1V-)U%M MZ) T.P%/:<.;=Q1]J(QL;YK%:[<_*IF&\=F,G/]+"'T>,S\B(,_I$,DB MY]![MT6/HO>_?.$DOI#@X5(/R@K\Z4TL)V:*^17Q:L(AR&/._*L(78NT__?E MOS<7U?GBNDCO;ZCQ!^6LPJ]L&XTGJ,HRPAHE]2P*)FD%_-8+4L>P.PE<_0[ MJCUD:BQU3X$$X?=H7&>LUPCCI9H)4YW+CU<0W[@,FDD,F?9?N^P+)&7?+:3K MV(6%*B'!,J^?$'DKCH52:,G7[IH61 /$ZGM/IOG;]'*N\%4>%X/]/ ^?A_P\ M!$E&>RI4^KB4$BW'$+8$RI2,ZBS0%Q*XYY3PS<(8F9:#FN83$5J:K;JLV /_ MW[\.Q'U\/Z[[M7&9!.YK$4?1=/L[RQ)AL*'1YD*C'2_@^I1HC=]% T[8+QW+58 D8[#9^5G3!AL !/([7/$ ' M=VF930P[3'UVKNHOI!?%2,)@JH2TO$:1ON*X%I,$>-ULEFZH#F17HP.R&.K% M6%X'I+#J^++C+47/%_-IZ2R&6(FW;X>$%D(T7:^ QM]Z]LWSPM^%,5#*)KCA M]@Q8%V&HV%A_B*<;R?!?&3Z@8N9K4?,*H7Z@U[UV<[TX^]-8BC6SF_<\#>C-$<[@-56M'2T0(H6!)Z5C3[+VP4TKN'2A],VJI!! MQ5G01X.A#DR3.Q5(U.W;O0I*LZ&^SREM>IA?)2R&?$*)/QP5&Z(P4UVW;AT80MWH/S<=3QODE%!W ML)&VHZETZ!!WV%UM,%>@*,OGS]6+?5AB@J^Q_:,OL5A ]Y_2.STW#A%/W8$O M&,^_'<$G=GT)V8J/9W\>';%D1[.%BF%@+]K8E9GU][5XK.^LDI[V[;"G2[6,D]@ZNS2V$Y2(5,05JT@36D>Z'GF_!,W"OF4\W_F^XQW&'V M=0AT>M&NA1:G@TN5)H0YKD,^PI[-WST9NF]Y00FYJ15O+.9\60]?Q(S(]26! M?"ED\CG.E^3QA=NQ9/*%V[%D\J68$;F^)) OW(XEDR_-\X78LZ7SA=BR9?.%V+)E\X78LF7P1,Q*W8PGD2RE3 MX/J20+YP.Y9,OO!X+)E\*7)]625?7GFDR8MM,.L@PELVN6\ F/W<[L_5DT4U M=?SR?U^D[)>WZJV8D<5)6/BU'@VT#!&;EMV. =?'MN5YCN[_+X!+> M;[;^_;L9(N7RVC57U#Y&X=XA:USCUF>(7EK4^Z1D>:G'Z9.2A2L15Z+X&FP^ M*5FX$G$EBF\UX9.2A2O1FVI0GY0L7(FX$G$EXDK$E>A=I;RW5O+*F7+B*+2H M3B=EI2)#2VYR">%F]J/-[#9+RP:N%LVW%)2(+:*:#/]N A9C\E==,\@.!2O" M3U,_TY?LT+6-?^9B&6RS15IDD=D"R?2_4_1XO[,JTK:7+5IU F\F<;E9N=R4 M,E)IV^1&YG+S$7)3WC:YR7&Y^0"YD;=-;/)<;+C8O%YL"EQL5BXVM(2S16*# MQP(0BDO(A>L:8TC-G?^J*B'M]EI+'1<#BN1O= 2= M'J$8QB'\)GZ/34L2-NV/;T9DO0X)(\/7V/KFUC"QD'93^,;P3.6%# _/96 1 MVM\/UPABJH0!:;S+1 EC.9?\V"2?-;MMB>1+8I%+/I?\U_0%;(7DE[)<[E>S MS)LP,G"YC\H]5OJYW'.Y_V1R7RR5N=S'+O?2=LH]P\/8"KD74W*!Y[;77?KU*6$35I<6;BRQ+]%;-TTB5]99"G+E26&U(@KRZ=0 M%I$K"U<6KBS+* L22I0V;CMRLH3#*SESA9FN5G.%X0JSB1XFMG*75[O>.CTH MIQ*,P$H[DM<^\_AM0CDE M%7DC#]>=E?N.E,KF8J];<-WYS+HSNTMN[3-?13N1*/'&Z0]K)UJ[ M!''=B55WO?>:\ 7Q3=.?S>ITY M K#VF:] =_*IHCSM>&CI_6]'@*Q@^C3!@T01::>CHP^G'.>9@)YLID&#=()_)^HLJ( @&":@J**YC"EDA MB^\-GQ5("1.,@DD%C$!7!C;9\3_\$X.0!XL\TO@K.GX4!AQ$6E=&INOLM+5G MT@K+QX-K.UI[%":>-T5/.J(+*]YE)?;;A/Z\:R(3RD>'"%-88'A*4^I#\5JB M8YK0K["LOVNX[$]\$(S*ZBLZ^\;#S/&^^O+CFK2))8!TG)N.=_)=43#;=$57 MROZ#WWHGX\$U5=.@*W2*0UK"OF8HAJHINE!WX OO##VX2_Q'^'8$7[#;2OBT M2\5RV)]'1_BWT]5LH6(8"*1[30:FY7P7VJ8EM%T+,:"$EF:KKFV#N&<"E9Y2 M9RZ\'RR\4M*$=^9^&Q7^T6P'Q4SI6(0))DKXP+^Z8YHM&Z'D!7C[DZ;"T"CV M% BU9H!LPO,LF)9BC>!AKH7/;PM-U]8,8MM)$LCLYY9'.6GR> .B ^(78(2/ MQ5)@LJ$TS2 142Q; M:+GT4I1US4#4/<,9O]T9,1M-HL/("'5"0GY"%#?$4<03LX8Y3B'G/&%+ZZ3M M,/F'I4"L?FI#@S\B"(5>: M8"2%,\7J$4>XUNQ>F*2Q)SJS)&)"(":GC_:D#7[#'"+\GR?K\'YP2F!$!G0: MJ,9]-@4+IB#0] "T#KX&;V=TX'*P)QKU;^ 5+?B1^3Y0(X)V0G4M4']UA&:) MWL"NR0B_"*2%U,"P2QP=[,+0H%:%/+H@D_#8)W@HU>@47&GA#4,T< .B.C@$ M_WK/K^([;4*HI6J[#@P_(]R@BH_UF!I0,$+4(@X5JY763;.'\[<#ZP'/4AQJ M_FRW^>"]"F?/9C8V9!K.H\*,,;S9U1V,#UR])3RA=^_# RTP3# Q!6[U+J&1 M@V"X_288&/C5$:J+G^C%;""V<&_P]BZ8"&"-KL'E+:$/&>W(%W60#\=R^\N,28@\ M_#93SP@'X(4M W^%"!"$6V." @(_I,*!,N_),*J:&2!P^C($DDY'V0;5I+%E M$RQ-NPTW,,U#D4!*&>=ZRY K2 IVE(F;9E M]NF(? -"+X?GL!%ZE'7FBPNEEJJX\':JWHIF@6;I+O$""#JJ,2> ,BWBC19H M <9N E8[1$L0"*T/\2'E)Q"F'407?J""W D8U?:Y MAP%,8C2X,H^F5.X'],AY9*Z. F.9;J>+G@H(.H[A/&5]0N9IU&(23[N:B@X4 M88P$,Z>9KAT28455DSV(0AUEV95?L Y\WY;&&I.UY<, M7Z0HJ=A']E1*)S 3.!I0)]"<.<]+CAPLMN3[GH>N^AX:9USSO32U[&C8A:J7 M-*"PNRC[*@'S"CZ6N<.!,F)_8.",%U#S8%"=P"2EW:8I,+I3&+/9!Y(YXU18 M-]'(^$%""LT-)"\^'VNN9::$.V+0-UV?[:(_!]N#CCX%Y@W-%E5)?VA/Q'"] M<8UE$FVM ?) HS(8!Y/RD&^?BE6HL\\(^]2 8-H,@/_I5I!DWF&J=O"5$4OYF#L 5D:<1@A0FE@ M..I"J[K$^)&K-O@JEY6%T?K!+Y1# ]>"V7A/M?!4JY9GE:3(RQ:7&Y*&P=1L4T C-^!1D^@:" ->&K(%(%]($&M )?.\M?16;!:$:5 >8/5M< LMHL6%3- M_@"8R;?(>8F# [!4I&V>TL>/][Y,8O"2#E==L,#WS1 MV""80-/+]&V.EV=_>I&A 2&]ZT D;E !FV)]G*;U%7GBW*/PO-+,DFET,&Y( M1P:Z,F*K**^;!!XCYZ\$Q> @IE->I$]V^=( 6^@)+3:I.L@QKAUV)ZJ),CXU MND:U8I!_*>O/*=#)(N6A-AM_G<66\KS MOIQ:S?LR\=R@JBN)F<**&#,A=_*8#?\J0A=,\/^^_/?FHCI3#%\NAM(L'^P: MGIJ(X7\@E44O69)+ MUXH*5WQU3C[X=0W>4S90K$(S)^<;2CO;;.2DDM@HET6I(99DM=66\MFA\KW99@W_.;X3KVL%1_:9V7=L3+F]W3X^J0J5:O;@]OSDZ/Q#VCZ[/@@-I M8IFZ-U$_0 CYS1AG>L/6A79-C.RP6*A!-(D54&9='%/M=>%*8F'HN)+YQ3ZE MR[U]H6[JK)J0$HX,-1/OP&=HI3>7PBJ%\F*@&32]9KGZB\MN:YSTV]=BO_SX MY56Z%!>2/])BI2@5$S#%&&$>HH8G[M6_!+M+""L!SF"_\$T1]B"8&&+9 W*E M@7?B\W=65H+[;+=I:RU-L7!U]AN^TEOJK++W>DN8WS$;#)74A4@I#SYD@YPV M6)N)##>TK$$SVO[ (EU(T3"7UTT;QFN'5(XB+13_\19@4N.:.BM%8S& *) ( M>O4TMMKKE7(@QT[C%UZ!42 &9HA3 Y\>KX&+N\(W;&$ 2P #TT?P6YM8EE?N M9HFM1Y_([,95 'MR\?=[!CCA%=BI&*=8>OS2[<( %Y$,5J_0:4D*DEX]6,W! MXB_6[NW41$EQ7"!N>^I"&?DJ!@9E9121<6DYD)H%O #R1_GQ$ALTNAB&]0Q< M:Z,U4*]Z2XL[%J3TV@ +>QUB>-5;^)T,0M6[6X,J#+4 =-B5/KQ453(O!R8) M-@:TQ!&V"$P&5*QY4-6GM,+YTTH%^+&@P'SI-B&(#EA?&=/SX@G4"XVKY_F^ M16CW7?CFB?=EM7*QZXMP*BQ(GF[:?H%59W414Q=PO2DDB!8-BF@U?K;HI<"( MV;C 1)@:52L!6)C.X,&5HURUV>@]IZHDN\!,RYEB@6XR@DLI+/R"=B/183:N M\8@] VT-><",TYHU)KZ889>N *)Q\J*'CPX*LO'8@1N_7/N"MU LXMMN%"@O MV9GP 8'JPLN4#KTS(UQ0D8GL7(_# M5H0!,U?8*1T82*DM_7Q_9$% MK9 :^X^D7'=BW.,$)G&2^/11)?B9X>4 M+O.$K4@;"RZU]VDDV5=:M(5C;"Y3&,L,"<3A\-^)5V#X@Q&Z%[@KX2!\B9G\ M"J\!*DY8D8#:2#_:NQ6(=S/P<*'D8FO\=Q5M)Z[)5ZB"GRE.^+SLS;*/=#G6 MGP\S6'TZ'\R#^ZX!W].,GD!"Q5:5O9\A*[>I-_0[F+P613^G8L]:5L0\0ZK8 MT=?2/J*(&XW\[+E.]BHUB%R9[U*<'3R=V4NAF2'S.V],*Z+203-C8-6\)R]A MBN%=WZ3OV 9C F>9CZ&>G74U@F>%E-WH4-/C]5- ^IZB#6S@\G7R+#RXK8ZG M:&S1WY^BIZ0S^6,++9.P]75%9]T6M/\'P_&0TOEAT1(FV5%ZV$6"/!YV39TP M*SPD?I=["LU-:'!!(]$LZ:$"D_*L \VS(&H9*+1M8W)H,Q^ ML,(F\=IKIG^ MDKOC,WD)$Q/OLM$+*T4SEN76O7KQFC7]!;U1<[:RT>8BX9JH)O@LAZ8VVCK7 M7BJ@)L0&"6NRG!TW20C2TNH=*2[ DRQ07=OOH6*FKP+I^@CDEYF"4*9^IQ&] M)5PK_8'@T27#TGK:VD(C3A6F8/91EU7LQ&3A0= Q"*K6U(QQY YDQ[X1F]H1 MG-/ JZ:"DF& &]U0!5=AMPG<-]ZJ MH#:JLZ08[BJ1:AO>BH^H&.AMMX0GN[ M(,0*12.^X4+'0)Z)I6IVI)+@)S0M@BW!-/X*B&>-982^W*=%:,M8N-4M_ @_ M=IQ+D,C&LLC$YTPK%7G^.!'0L8/1AI#*B\W@KF\PUGK]\KL 9@K$RO7\$"TS MSGYZ:EPX\I\^H#:.&O<6Q%40G(W&QF,Z<:%EK?$@';'F#(4XX9LW[(YIF_<_A"ZP()"P][3-H,. M7 '$'FP8V&X,"=.L"!7M*:6;1]/,[(S-NG^_UQQ)7]-BMCMD\3S; ;^X-@N_ MX!O46%0BLYUFL2>=%EJTRXOJ=Z$/9M5LA0K?ILVB+ET!O4IW<20^BJSEP&=L$0H*? MM2S MRM"%7!W7N<)^+733 >Z6ZM*BGSF":'PT9A(+86VE'RPV:8;GD?$'UP9^"*8* MR9,7_0=+8JIJN<2.K +Z3PWH.)XHI@E^-.&O4%()T^GRK*W0P3857 M-""@) FP/ -HB_JDTURLNY5B()T*6*BQC47WTPIXY[OV?6TT&[%6>7S5X1K MK#PP.YOSEP#"M:RQY0SBR"#9CQ2VF&QH-ANVO2 (#>Z?"#HA8/.7R /UA2'1 MK6TLAH1HN>W05@1:'PR%?UZ5T)XHT]N1RH2O14Q=:3$=U\_JEZ%%Z'G1H9?$ MPAQ=" EU]L (H9"2\!1_IJ%" AI#ZKS:;5Q7@X>$N,PX$"F'>K73-7U:*I9B'1_;=3^SY;+2MD #WW%%1O9_M(*B=SS0$+?@P4 M*TP2,/+PGT$+L=[2RVL+LGZ -FLYRPFV7/I[F5$A/3&=['VQ0P;+]$1[VJE[ MOC5<*K:P%370$[;$Q;PGJX]01XU>X+6U+BS! M>ZE42$''V8@?ME#O(K1QD<"B;MJKXD?J8"PS@Y2(5??E[U'S--\\4TN'H0^. M#<8-1A"MJ0/F+^T.9G$TLBZ8PI (I0:M!%V8#$1N' P%D5G$T(56$$&H,"V: M".QL,C-D8PEIV-#-R%@5=#@#5@"86:8;$F^)VUNQQ+:@L2.T00M4W%.INE-E MO;YB.]$1C(>(SZXBI+P0S&NB92.82'XFZ>$) @FZ/"P3 B3%"51^QL2]7I#00J]FS9(3 M&(^.0N>W0,!5+L/;"H0^Y8\OFE2$2AYA0P*S!>+9XTJLQQS/W'8)%EEH@H!A MBJ*.YDP +E'#C2N!DOG-+K9MJAJCBL:L[=2 _HS[,)>PMQ'!QUW,$;)/QP,S M!ATQ%+XQ\PS3!.!9L.A(M\B:>BLHOF.E88@;<$,-/:D9!9;0LY>N'[&<>T&E M(%PC8.8A:N1BW[H_;^GF;_MOX5_M&7> GKNT9Y9.#VZYQF+FGLOTJ2'"_\.. MS<:-V1"EANS]=9JU'RX/6T>E[,F3:5OU5KW2^_-B]/!-.3R___3LRI"W8 M5[2>P?L;"E N6?ER5O7!#^ A7@,9EK)BZ0.1(S: X'-'^@%Z<^I5#D*ZTSZY MT=/#IV-R^UC?+75MU%;UR ^B'-0>5 @I&-_1Y@*%T4^<: M!A/:A#FY@X9M_!GOQ+SV-_YL7-5M]B;,Y3O97J W92S=ZP MZ1?>QSATB[9D!@5#ODON+;ODD!TKZ#,-HQ:57HSO9X,2C9&,-B01G+#C"=Q8 MNFA?^TN[EM>XZ_R5.YT_:K_YQ)Z_>/:%LA45X[GUIB*VN"FF M5IGY.TO9$K6WKU1GE53?>=(VH]>[R)0/Z4V#)E;C#^^)>W&9;L&3@W4_;;PC M(D#>.)NN0K,@%_6B$AG'I..TJ66<%1W'LO5V^?!B>@LNWX'[VAVXVV)%/J#R M/&-'<%(W!+\E6,=M="%(ZGF90&B#ZJOLT=@EHT(+ /VA W\\[-,K^,#7V6P!IFV MU^3*+D\)41?8(G"CGO+Z0K -@H74%&,,LT^=!FN8W0(;;$4-=9-I=N2L+M]X M.\%?'@'^\3O%YC.7SB3Z!LO';F<@K,NJA7WM^LS85G&!LU:X(!G*DQAQ_<6'25KZ[7%+*LN MI#X M!X0XH,?8CDP^9#G)X8SKAIP/: WA7'.VIH M_@X@)P)/%RD4\'@[GGA[E[#C:3S$ON"P.WWL75.OL$=]9>0=N4>%BS80@]ZOPR\7IT5[EIK:W6SFMG%=K]<-:[:;> MD/+9Z_C#@Q.\T0EL>*LQR]X@%CNW*-9:%#WM&RUYF2Z>]N%W#N$Q>"#> MD$&QPYCL[R_ J:UZ O-.,PK5C-YQAD.>D'Q9%EL-B!1)(]=NRXUFD10:LBH5 MRZV"6I"4Z($I-VJC_"SJI[63O9O:X_WP(2?^NK[6+CO8PSMYY6'ZMWNC[^=+ M-??DKI656P_](WW8D*:OU(ODYM=1^JF8U0[O;^_67M\E?1 MM9SV0:W:46]_'MV.;I^+PT:ND9V\LG]N]NO:]?7U[[T ^(.;=0+W<30\;A>DKVT\=NY>^[OSL_;K)C\SG7X?7V<,* M7#DUHVJG\/M7?4#,6OJD0GZ>G3]>.&('KIR:4>6/="SWGPY^9PL'A\VSV\MA M_WJ_TBA.O_VA=C(0M9Y\T#MQSJNR6*NW.\U.HS1]9?7HO/%P>_!'K8UNC3.Y MIEX-\GN=1GGZRN)N0^_51E4[*YWL7?^N#3HCY1ZXF9WQT.'AJ%%L7]C9>M'- MMH>/Q=[S[E5#%*O/T];(CR]*4C6:T='XL7M=JC:W4:IX>5;KL/E\Y@OFRG[[7? M@V:MIT@GZ?[3S_O#ZU,8P SN/];*YNU=HY&]3>\?[:NFZ+C/!W#I#/;_R8-. M'-D/#[5"YZ!:OW[HU6]+0($9O*IUL_5KH#MUTJ*S<=O'1*5'Y9 MQT\5:WA2R?ZJ&;;YNY[+$ZV"ET[)2K'?[K=RQ=-.[Z)]Z?9/3X_S9R)08 9C M[C,?+TG&G M(FUNI93S)_7I\,CVL/9PUXZ@QQN;H\+G6&]J_G'AD<'U]F M\PVQF@-+,4-%/]VGYD#)IHL/Z8OV8<>NJ#" &>(R.ND>E.VL+WY95Q 9?.$)?V=;_=&F6[^=Y((;5:9ZC?%VT8P QQ2??)P5G;?OA=^_5H M/M><^Z,K$!R\5)Z\-">?:W>E\_/Z;4&IMR7Q]C0O&W#I#,GZV2C^[KI7\GWV M5[&2ONG6E M5,"\N86T(F8/R[^N&O(,<7&?0>JJM%/!?1O3NG5PH*C. M7JF5K=[J=[L/RL]V#M10GL'81BFWFS^JW8NWY#B7ZU>N;W>S!S" &8R]<)^M MHMKI_*RE37EO4/I#]@T%GCK)V$8Q5Y1%,5=N%$I-H'&^ /&>6,PWEF::8;3O.E4VK'\@7DO%%D8Z+2"33O$HKM6O2"2Q7Y^IEK(R(6_PA&D]SX_ MF@RE4:'G8XD3N_?\B-'_.SVTE,$.RXN'0*<7\U$O$*4O]B]5FC8V>I./2$VS MF6S^I?,RQ>6#Y%!YX=^_G=827.AJ#DG# U1,>I%ZWJREC"1SOB2/+R(MLW"^ M)(TOI0PW8PED"S=CR>0+-V/)Y$LQ4\IQOJR,+W\[%D;,L47'ZR!"N)R[+!U6 M:L-7O)CW,EE>205(V/#+_WW)?WDK1P5\Z3!C)%JUL M^-NJV)J&+'J+&\%2!M>>;=(>QMSI?V>KB?16-2EGRH6MTA+<;QA5"2X6;Q$+ M<;N,)VZ8W01+^0X7N\VV#@-C4^^$S6Y-WFV]0O^R M#9@;[W/!YH*]T)5MIF0G,T-;-(^J=T@QVR.XLQ4A9\P:^;G4+WE9TTJ<")?/ M#97/!&8Z%:-V_I>HW.8KC3R5[6C6OJT/2C?[^FU;JOR M)7*:0,5N7+3#QP?<5HR#IG;;*_4><[]EZ^&TF6Z?PTTMHFI]1;?_]R4M?Z'G M8RG._[YHS\Z.X?9;IN/][I\SX-KICJ(,=E A*T8+_U,;:V/%J2J6A>AW/W&W MV!?!!C;!7?(7OQVY9.]=]IT:C(34GO:LGP>7)_T#W#$D?_DA%5.%4LX_A\"G MQ-96(KB*QZ;BB@6$=CO9IA;WXUZW5[?[=]4-/RHO34O,@_ MRS7<,0PQA2A*J7Q.6EU0P=5S0]5S_0G\Q@<(2^KGZ?#.VGU0S=L:*=WFQ9/# MPHVD78%^%E _1DN.IW^=?H^* MPX?3]+79JO7/W.Q-KM??URZN0+^Q>I9+B;GI &B3JV>7B,^M>8#9MH=?S@YJ M4",](3QC?X_%6O-^E ^,3I*S\V;MIBSV4,53UAK3U8K1ND!%K5#]G&_1C')/ M+M[L%K5:7SM];#7:LG6J51IEC%A**;&\PB4_KNM;JNM>J,*5?75QR]N4W=U[ MK%WE2C=GO5^76O;1V*U?*^=7H.Q8[)-3Y=PB;=_P6A]%G,5#PAT\,&$UT4MB M)LM3,%YAV9"PY26;I3^<*<_5K)7O:5?G]O&5J!G%NRL$_<45Q%(IE<_RH@K7 M:%Y424YP\I)*CZYZW>)-.3>\/>D9SS\/SF[(4;N"*HUQ2%E.R:5MJ:-DO3H* MGJ;IL*/9L$%Z@,NQ=)&19U.?O=>!MR*]O_+!U.M25PP'U /)U?1SJBEO28JA:/$J/1U( M>YV;6D>J9[6CXZM?]9)R^^S0,SQPM:6*.(A,V?YSN\@I'X\"-0TE/4T6NS^#ZS>L9B8E;7JO@LJ0\WMR?/!]E MR?#XL% Y^5V[MH8X0 A<"JE",?ZX99W2>V":K:&FZSQ'^NPY$B]EO#>6\'5I MAE61TN+9B9LOIVO2J+#;_)7/'Z1+'3Q\$!="[?X7 MZ.3)E?8\NKBHY'I*>]@Y.4C_W',M>B HKF3D4\7B%G=4L%<<&<"OCH;'U/&" M!$]8>$%B_4'$6"792NPY<6K/JNXB&1<8L_T_]M'>U:5S55,.3NS\X4-K;W3> MP2.+$?]%3$ERF1@V"-M8EFD)3C*\TJ"E,]HJ;;"+/&"Q7MC#5^WC@S5[),; MY3FP1#,,CWH[-"X>3Z7\;?J^V_]9?Q3_5"[ \.0QPBCRK@NNH+Q\$7N0\"H- ME7K/M]J?O8/:;;4D/AJ&6VP9S0YJ* T-%B4 6U'-H-MH!)A@FF\1^> \9]W[ MQ=9:[UCWY)-D >-OT!COC3LW#75N7_K!0ZW3N^X\G_0.AO>]DYY2;5I/8/PH M &XY)4J+H+"X7>!V807UD77//DF&(?[&CB4-0[%2;N5+9W*E)UW=/YW]S)G. MD5Y!PP!143%5F(%[MIGUDL@F60[M$?-V?QFT%R$$=9((XQ4??O^Z9YDD([6B M#;(SK-*E7.VEY8?]0:W^V)'RC[NM8:<"5JG(\/KE5+&PPDY2KLY;J,ZSD#L^ MN3ZO:'?L#'TN/+C[C\/^::-6/5*[NEWI7E<;5ZC/6'LI%5/Y%6R+_?1Y!T^_ MDKO\_'E.3$T6%;A.<)U(0._&2LB0S'0\QF/"3X\JNT>G1S='M;I0.=\3ZC<7 MU9/#B].]VG4=B2(6_Q%J5[='-W>Q'B6^D<+ EU@3T ,Q9VI;=)@KE\^-;@%8 M4D"W(@'SS_K6-84*J49B// [87/E$>7'+&YO@.YRP>:"G< ,:&U>:3ULFSB/ M:Z",\$0&'@)N: @8VP+C9UIO6-D11I=,F^;#]N33V];> M1>>XTI!$ADN3S_.S +AJ)BHQV_RUP&5U\^&Q?CXJEW[^ZA7NVX=_?I)"_NR4 MZF;ARX]<2BYO<6=V$!58+FD!>_IXYH%"V8MXNA;1%0=^:!*#M#7>JLV#^LW- M5C<^V*CU![HY(N2:*>7IN(HTW[;M7M[/;][*MQ7*TZY@TI>P(/& MY(78$AM9PZ#1RO2!B:'".L^>-C1[VIZUUXT/.#Q%6\H&Y>RG<_GFM-BZ+>P^ M7YW89R/Q(0])%$70DU.RQ-NEN8KR*L>N>_JP6#]JG MM7+E"G648N?*V:TO=$QB_H<"!H'V;XG_!,'$P+20!#P=XND0+WDD O[?-W*C M^2:N>G=[=WSKWA[<:LWC5K[OWAS7#B$5HCA[8JJ8Y_C_7,%YO2,Y\*$M:(9 GE5BVX+9AAA#-3L&/& <;O#LB(-P M<7 ^WS[2V%OB>QNX4G!DNHV+&@:MMKTX9/"]XI%1HS[QHGW-W.!UX!AG(6__ M4CM'S>9]NO8K_<WI"(AEN@[&((=[[G@.0TO0<1> M@EAJ(?=7^K9\V;S;/>@]#A\/+O2F4SC_ PD,1:?+R:G2PB(H5\[/J9R\X/#N M@L-RK5"_!G;I62+UVD'UZ+AGU[/9RP;53MQ/(J6D[!:7%]@K3DVCDW:(U1C("G@Y$XM]TFK!9)RA]V@J#Q5LJ5M?4&9Q80A;#.]>W:EW9ZO.&BN2'**_4[_LS[7E4OY0OLZ->[H@\ M_+P]/%6H?B,P;JJ\4+\WJ7C!7G$>.GW(G-\,RI.ESYXL\4K&BGHW%UJC>K/7 MK_5J!\^W_4[_V$P_7_S.*I6&5&8P&=(JVS>YJFZHJO*ZQJJZ,!?JJFP>]>N. M>]B^/5#.]?S%[Z<[XY'J*MU-DA?CCQP2%@E/'VBXBA B89-.4!:T[E52WCB1 M$'NXFE,-0\7>A8;PS\.57% JW?JM:QP5#\_ZNWN#4J"TE)L/V M&:S8C(,./[?%6F57R0P3=7*2UG?EKEN[E=RK7]WG1NM6*E[A6+#JDDN)I15& M,%RKMU2K9YUW^+G5>I7M*#/4NEG+&159+.[W"A":*$=:]_#^>(AC@<@C+Z>R MQ46@PUM1H:F:_;[F] DBGB-<&#('!D ,%1$_OIV;#A%*WWDVQA>L-[4?9I!29O:+NF&JO:^H0%]G^H8'DT44!YE'U9U_,7'O?P<KV*H_2GG57ZKP[33TZWW]%GAI,@[J^2\6ZL""7=DCKIZ*[Y))8 M=1QLD,)F60I[KEA6XTPV;[K#OG9?.SG73_;M6C&[U^X \5=/AV6JR#_?Q]]F2O4_JMG0PNU-_#CZUT1"E'R6177*=K6K,VY5**%_*HM;0: MV7VZROTZ;-W^W!N^)#DQ3#[VZNT;)I\]?S[J-T_WSFZE/?.BN;=;Z%M/0^RA M W%90EC8[ 4E>$LRA29M$Q5I-S2MEDV,90AW9-ON'*(=7S0JY?M._32K'?:4 MAON7XPOES; ZOOOPPS.5E1:./9ZC\ MKF,C5(F MO,CX%LUM7MM/@]/VK96M/AUVA[73A[RE7B51O-HH+=J:QV=DNF\/K4SSI MZ;KPD-^]&_729S_W.L?$[9F[+X:?"4UUWTJ$AUXGMWO;+%1KI-)\ZI]8Z:?= MB^&GR7-#9%LJSSO5#M('Y:-CXY9<*CGK=TN^[Y(7RR-)3')?._/"J-6^4L_[ MS[VJXE8?:G*Z+E_!S(O9MZ:X_TQD,EM PP4I7^Z@?=<:76;%&A'WGM+R<'BG M[H.UR153.7&Z,83F=5N@3XN28$<^V;V\/]1Z]9\/65-LF.VG(*52S%_UA[_:@)(Y.^V"=Y$*JE'])EO@JVV=?95O[ M*O#&=SR'-)8&G3/Z(\6KJY/Z95.4:E7IX$P[_'GZ^/NNTI I;#\'T.-:F;RU M[XWO6%Y"+1\NLP?B>:Y\E#TY/-Y[&/RTVN3P"M6RL%@MMV+%OP+OPWDI.B2R M6BNM&6E5&6B.HO."[%879+>Z2WGCPXFQ6EZ"5AX95::3,\S7X\UCNJJHG5HV M_?R<;97.K\UJL].0"Q2;5Y)3V<*B8U:Y;G/=WO0UE$T+2I97[KJQ[QZKOZNW MV8OCT_[9[E75;)UH_O/KR0\2Z\C1S-[2@M2PU M;L\O'W-7^W>5GGN?/CV\S+;K[>[PRX]R*C^CC.750'DUB^?-B:IF34U-^+9A M\6=$7^=ESFKOW;K9FV&_E98[]?MA0Z;'0HC97*HX WD^OMVO7#\W M5#_77]?Z< 5=K4.=IZ!W[8K6/6Y?_^Z='-V1/W+WLCDH7Z&"0OA8+J2D&0T. MW[>MP*6J;M_5L1L$:-W65,WAV2_/?C>ULK7YH<4U<13-(*V:8AEX^%U(0?>8 M?H(E@[G#8V>8M,-.3G?N]AK6+?Q ;MO#H79;A9B#G@]1+J:*TG03 ?6NS8]5WJ?Q75*L=8XDLE=3"G]^5ANE47;W^@HU'H*8(@0Q\G25Y-U!3%(B M%I-"/JMF?V"1+C%L[8D(NFESD,-WF:_/ (>6>)##S8]D0HI*(5JK835E!^*< M@JZ>$^>B?:,\+S)RE9_ML*3:RVDW_X5?-'%[7FV#DZ$$48BI;F.Z0Y844 M;@,V'A)Q\X.;&(W S_;AL_EXD!5O1\?'E\=_KL_+S78%C0">C25MN1M5YA@TT_^R6>Z)Z+& MH\=:2'(NE<]NR\FA\PZVH*T_'Q ;?4J+%U%P&12\9;I-G23"OGU=33EH#;-, MDAU;Y:$7%:.UE%6[[C0.3\O])Z-7OQ@4']1.I]2:OLIS,);5](.1V/C5$:^4GB+WS:>[86WOSQ[5=(Q?2D7(:V:!2$3B ME[\=!5BX @X]N+:CM4?L*\T !71VHK(ZJ;'LER @EN"*)94X]L&K,%IB1<9. M(ZCHX+7(:QG4$3;=:RK\6B=$4%1<95.,$0(I&*8#PW%,E"H:Z=/%N+9F*(:J MT0H5?$&/^<@ T^**A6:C^T^4:S*^Q+.-V>Q? M*]%]CSG>K*2<;_4"U<>N[F#4]-__^T]X].-D+*V:NFGM^ 8L-*TN@ZF2J"WK MD'33(DHOK;3AS3N*/E1&MF\;RQG9MXT[@0U$.@AB%MV#$/J,])@B9E]Y3H=( MYIG.M$[:('7L-O\[:O:"+TV;;OG8L8BN8)\Z/CWR7,H9QQSL2&*FL"+&3/@> M>.SJL92@0VB2K\YJ>W5;^#?L]KY3?UB MOWIQ=GE=.ZR=UX]^_G_VOK1);259^_L;%D HAM($6ME__J@3=[K;H=MN&;I8Z9\8'T]52+?D\E9F5F276I>ZGCN-Y M)S,_>IF1BID7_U^&+>G27+RXJW/!_CE^S],-Q/.O"B(-8C@L!9@HX%8 M\!? W^>/9%0GYI7/-]P#;"848#4" 50>@P;/3M1 M)@Q+Q7_-JOR4I5A5?X2-^JBT!(&9V^3'M8FENK+N6D+4Z-<%)5:J?FYI\C6S MQHA##E^NUC-Q3GM>*+45,MVR)?%ND^&YA@S,85 <*_5!KK".6S(_MRR%VTG/ MYE9YV=&&N978;?8KUFGVCM8Y;IOJY6N=G>F#7^W(DEFO+H"QB_4T[;IGJY\YL",TU M.^,M=<:W"CN;&O/&6F'2;^^;K:U?ZW> M>R*X+MTR7*D[W*=]QG(6=G\[7S=#<]E6^'1+%FO314-8UD33 M;G @\F:*BQL*@:>;>NW!;##,-CFQEN/-64U@-E8N7G@BW31KSV+UR:[69*G! M872MRPIV=0V5[U13WBDOVTVO4K!4TALW=6E46'GQ4X^L*$'DG*+ 29HX #.A M/L]+@V#?E/VYJ=Y7R;YH]S@9S)?J"%M2(UMO*\21U;?G>7/K%,[V>*E5BM/$+M< M/>O$\YI--P6>, )>/NJ*F)WO6D/CE0XH771"C M[X@,&!VM*W3Z+F=MQ]E-7O;RQBJV6,@C,E":%-S);N.%XK(S-ZJ-K5YMV89" M'I&!(9$/"H3G=.02L_*CDM.95:RX T=DH $$LCWJ9P6K.\X34<%8=MU\&S9- M3=9R5*#J-%D?61)1LOR>+M16P^2IJF1W1,U4HU"[_&+O0Z9?/-"U7QFMA_:I'7YT'_LV.&%Q'Z;>:<' MG/Y*\F^YB)[I<<^>[\7/G-K>^G%'>OP[!CT4W_:*.2PA_TN%^+#1)2]^;*I. M8ELL"L%'Z,:O.ZN>_=[[-^%G]LU?N^[P-T\FT+I\SKH07SFT+)>W+-Q7ED3K M^3#AY,?*L;T&O_R_+\R7/YT1ZBM[60'W[YFRM_RG(Z#Z&='5@9XI TX M$^#OG:@4\? 8=C?YBS@K!*0+!=+S2TY?O9'W"3'DGR*&P+_2Y$TA!D86O<3$ MV73DSY:+T\L"Q=^:+."GX,=+"TM_:\P=L )N!()O)P,!?DF)2L]1<)*@-.[B M!O07TW.?,^@/$NSL!1+79TCVM0KV]:GR@JO:V[B#IZF.\1$Z M^64)ZR^.,*XC_OE7#O\;"&\N1+X*GZ,0RB&3H><]SVL(_%!I^9X>::'D=X&_ M,C4@;,Q 6>C30'E"22,QYY5A;EW9F>-6UP*1OPGT?^*ON? M0$ XY($9SO)1$"\;\"NN9D=P/80@ /'_]'U._,_ATA2E!YM!A^'P:"%(^JRU MP4:*H=!)E2_J@3YZ,^.5&%R7!OJW'?Y7@_H[ SW^ O3X;X*>=?Q&<39OF3A+ M>V6NK8-0#?^FPM_5$U+X[;FY\]^HNBU=_3I7[@ M-8$K1.N!8(M6%5=++O-?@/ENK"IJ5MB^.(M?""HNM0%97ME U ME.0"0B+[P-)GU*H0^;SF$?EL_*&*.Y="/K^GT[U./HT:0_M>?3"06:[5$%E%D\+-J5&56 M2P#LWDZ4*OPZZ!O9\IA;?[;7NK!I>;4>F\.W,S5;L,I.OYJ00:SB<-P#3I^R M1-E%.K ^GA60:PL%DGQ^(,EE30/RN* 8E,^/03G++%R?(^#-:,F\%X3[PI[B M9@'YQM<;P')B=\ 51(DA"_:J8BUN^([E4T8Q7MANN=\EO.GIW&X)2F!P?2L?L+1]UQ+Y\/UF(>GR_S&B=%'4U0DIN] M:/J!X-/7%R(3\*9-P)N^H/C6/,._@O=JNL8:=$T;R>K F$NU@=1IMPPEN;.+ M8A^R[%LQ-==GS79 %1?FR4VJQ[/BNTM8"%D9+$BB_7>\RY.?D"]AYK@ZH4? M0#OXB8XP44/=K O8MB9:-;K8)%L-MM<=MF%]3ZAI4 _9-RO,(T,>&?+W =NS M'R7_'FPULE+L-;NK#HY)"T:?#\7VH)W %FH0] /+G#XP[L(4XBZP[?B%#QD# MN,!7[42Y4'7'=,T@])."5,CC@3P>R.-Q&8K) :ZE/5ACGA->0/5UJIO7AY-N MIL#3RW4;5E9/I SYANO,2&":O& MJT$ 0I08@/PFR&]R&O4$)D5]>XX\:2H<<%=Y@AT,X V/,52?W7'>2&K+YJ;: M%X9SEA,T(>GEE^_$ \F@@A/(=X)\)V=2,/X*NDMG71O1TJ0NYH?>SI*T3L#- M#-C+6+G(TL2M>T\&/A1/W5N[L7J16:EVE%S#M_"]13R6;>),@5>$G_:,6 :V7O1\^:CA93$] M8IB?"EFKQCMY?M-ABYRTAO>H08_+ \&AX),[<[C<3_[![S$$'#9!7G7]2U@0 MP@=!F.SX7C@#?@;L73*9?YBNYCG@GP\9%Z!8C;_9\.\D_?C"BQ&DQI[YQW5N M\8^NU:;G0G4]?J5K5!*LONY-U?U\OTH1GB("NU!DK,96[#L"O/$TWM39(UOZ M/Y&KXF\V\#N!_.>/]*)T^C.?I;P%^'@"XJ<=BR6OTDI_V9A5Q7R6U!2^864M MPX#(9Q,O)?O6^>E-.#O>S*:L>T&0F8!X#4!FK_!D0G4#TV5N]RH*Y/BX_0"2 MF]-V]H0'X?I8<<5THWA*I3TC>FZ02U"\;]>#&!8WH:_&^Y/IJOZV$@(GB!D4 M#L'WDD/I1^/G+?JL14PXYNTE@W>+9$<21HUL-&_#^]_A(0_W0!'I8^C3Z4X7 M!AGD#[G] )2/)XXS:TV?1!RK$5DL&K5L5S;')7G1FD_%@F! XF 3XCA6Y>V? MU^U*>M2>'EU(R&F$G$97[C2ZE6.AEV08D]S!CH&R;QV2(Y<1ZROD.0#A;]U[GO[CJ(F"#-VK$0BQ]"]7Z]RNBOG+G#@EV4:GOL$ M#80_K,.WC+G*@MP,L>:X@),"V9YJ57]!C6-RS$)EB"0>:(Y#7B!T#\IY[JB[ MP'%?%DN<^]CMO2PA.)5IODK1+;RV;.SZD45K*B% EHA5*!I_H-@WS]FOS^7S M6:6[[VO,GYZX]%DAPO'^]1;D:+?!^XVC83^JH;V/M"$:H^CX(09FD&29X&S.(,U0VRM)"E=4F6 MUF7YB\[L54Z4R/QS'7+O/CH .7_ <0_">#] P=5[/T M/&&Z"4)IVE,W+9CE M'O\@#'US$H7JQ 8]KZ7&CWDS!"ED;:LP<>4\7O)D0'-L>] UUO&8H=>:(]/E M*5#2!S)C+\J,O:>C^H^FC9_9PL4J+6\DX56Q5BML676RR(IS%> M\DF8"4"LHIFA"%PHN=TG5A#\&"6N$7/WXBZ+M?QTV-^P[6A* MM2'/P #0FZJUVO-"U3Z4.WGCL =YT6XS?^732IY=,''>C:H&2?)O_6IMEL[* M!$F(@Q8^9[MDHU P8Z9,"K]R5+J@ O*KW6IFS&>51KM@)KD7%>S]1)*ZTZ*X M<^U*ES9$4G7:2YS;J(MNPA_LKPM'7[FG#?]U$,Z+N48Y-Y_D1Z-B4M&]"%X[ M< E$^X%)-Y\P\KO2S(YPZ7O\8%:]--FI4W-IE?1!WYC4G55GNE;(I"XM3% D M4266S_>%W29M7.; +XLUSGZI\A^Q1HW*\MUN.7#P:&U:.PD/"KE"PAKP&B'^ M@<#?S-R[/M\6RLE!D6)7'"EV66.^7Z?+?8T9Y>1\ZN@?:VMD%L#/!#/5!P^9 MB1J86E*67C?M* 0Z<@#R5D$P4[/.- MNS79*9WQP\A(BD7.';?PM MB0Q54=2&RY4BDB5F-5-774?A!4@B,'Z#?J"/>$]_4M?^E<3CGF']8+Z].=WN MOS+=&,CAMY<"_C/R]S]YBMLFXQ;O)(.3=UX#\!*C%WTGN%3GS1>OW;L"S3!^ M@A;_M M 1M5@ I4:4[UK9%POC+L#54?/30+2DY3YJ>FJKF:J=ORL^(ND6-'7 M>-%..;#7I_R]9*N;J^__B?]X_#W-!JH/:6;V[Y>K1L&7'#@6Q__W+,QP6)S# MJ$CZD2J?B($AGO4Z^?.__M_SWO]@/DSS;,__]DAOSX8UV[MQR83I#(!-?*!: MF#J-W_Q-M=?J-GBT8OBOU&/.P;_PN(<6G+[W A)#^EI1?,%< /OW%I%)]CV2^G-=CTZ4F M5!J3^P1PI,8J-$GP"LTS$T7E6%;A>9)F&88@M:G^9?_6T\Q:*K+_5?G>SV6K M4,QTI;K$:@T\U^32=@/(A__1*I7"D)/+'1[\9\-L=GK2L5N//NU MLE0OB)VNV)8KGSJ.YYW,_.AE1HJ']ZR?D(.([+\SL+^]T8=Q?)HLWTK%^(?I M9L*9%P7Q)@WS82JIOO[YSGK AX8S[%0E=(5FJ8E"QP2J\-ITHK!D MEICP3)9DIN1!KM1'Y60IN;9D:7)=!E.CI+!AQ&Q$ VI6W,]-+2<;S)?^U!6E M[HA3<:*A=Z+8&%*R/[?,8Y.Y:O4\02ZMET(^U]OR%HQ8/?)0.M?K]GG+(G%G MJDST^7R:K6/MN"E)_-Q48]RV-F3J 8X5Z(6N69BPZZX52DD-:ENQ2V"VDVQQ M*>;FK1+%UL5U.VZ9ZBEM\%K?5P5'!CQ3[#DU6JGFA+@E@?_&7%I8N= -!:.B)$U3/>4;^*ZI8%A3SK?G:]W1^34U M2IJF)G7E]+>"XBFRR$ZK5;HJBI&P2IJF)C5?95@]7Q'R\I;)]<)U0-0=H@UG M*C6IK=7"H/-2U1>[/$UZ:Y O;[*"PBBI4:T[+K8#XX*/DUDRG#.$08-I.VZ9 MFM1\?3:;.<-P(SKKLO AZ9GRE]8NNB/RE6QIO!&H1FU2:*>/#4U4]@B M9!:S-C'#I5V[/"L7#6QFPZ;IF1IUL98EL4^ MP?1+.+D=-&BNUYX-XQ7(ID?5X8)Y6 W)FBA-6V0."VARH!MQR]3\5_/K'&4Q M4E>.ZCS5[6=S7:(&6Z;'7_.6(WOGC!6\6S9:>G%:EG U:9H:?U;$)CF+KD_E M:!=9Y=YFNNMC2=/4^/F&JDPK4J=D2;UB1R]Z4X=JP$&EQS^>+UV-6FPIF9QA MH]C$P85:25"X]/B7ZW5%%3K+!5Y;+5JM>5$CI%H[;ID:?[LLSSN#?KUB#>:Q M23NR^9QLP6>FQT^8[5X)=WME<8L1!6RBBUQ029JFQI^CMFNZX!BD-<@Z]L+Q MIQLFGBKNR/@;53P,B-&N*7;5<)/-5P>5_&H-FZ;&WQAT>EBY3I6L976U;&_R MMHKO#(5/C[]1I7O$-+?NBUUCN6! R':'L1G/I\<_S;/,4&FO/(ODE*CH@\&T M9\*6*?B)T[6"5=>+@96G!6]HK>6MB\&6Z9E:E]KY4LUGLA:[Z6,RFR\W"1)V M-#U3W34KK$;RNBY+4FL5%'8$T1LG35,S)5AUHQ?6\8&XM/@92VPQ6R#;L&EJ MIJCNING/NJ8D8F4KUQP0=GS3GF &YM8J<#3 MLUI0H^V\2I5T65U1>#.RY)7&MF'3U%/#7M3KC(;-KJRZ4X8Q/5!M78!-T(]<9%8=5YO:G-5B9)QI:?+ >XP6)* L6I]60?:X\D)^G!$1X*G Y1F] F MCOF4/R.;JE_R]L]-39A9&[>PE5&V'<-#5AV-=5\G6&$RVR%7;KFP+W6/B(TN$IC8&T6Q&[0WZXJRXJKY W8-#4'MMW5)'5++'&VRV]S^6K; M6M23#J3E8%C,2>8RR ^M".^S7*F(U7;5?=N4''2'(R6?ZRRKUB ,L3G7-$1= M:L-;QU,#*]HR79(ZPDIV2IJF!,=/":%)>X;I<(YF\7*ION/H@ MN;'#O";7UK 6$ZKF M9Z'.U*K8+JI35F1//<^T*6:Y36Y/3L]"5)[6IO)TR8N -T)#\)PM+0M)V]0L M-)N.T>?'C:*8QRJ+=3M@C+";=#<]"Q%7<5DF;\QE:=;"H\9<->L% UY'EE8Z M_>F2F\@A+]8XQX_R5JO9UMNP:6H6RFQ1K-9$JBF66J,%D!K;:K:2/#5M27!D M9:1A1"B6YGVNN&G/B$$^:7I$ERE6%F&OI8ZMP:H0;_V&/)KDDAZD)\PQZDXK MUPM*>,1/IP(C#X;+7'(;8WK",'M0V>[,<",/QB+F+@94,&,TWXTI>;XXVH_BY1W2_BC I%ON^ MML;9CMPH%VKFHM=OPZ:II\IX7^X$NZ(K#OPIZT?V+KE'T2E,7\ M(%HMV=AN(]O[MJGY4HB2N1&LR4*,0BR7FS;GS194%([H?^7FN%#D9:9IF=XT M+T];TM2:"K!I:@ZL6;=%4FW%LARL7@I4QLP-A*1I:@[D7J7>:%L34S2[NV#* MCAW&$0S8-"U@O0W5IKLN$,02.5&RBU6=+:W:2=NTMLQN=:Z^]#:L(ZM=F(#X?R'*_5N]F2E"VV MY\ND('O:8##MZ;(RM ^:%DS=12.AF5?@$U3$[8IU@<>1\X[5LT6:BO9SI(+ MT(9-4Q/6#.:%-;%=X7A)M_RNVG/+[4K2@930M L4MG(!!".!F3E_WJ=U+.E M>F[+6XF=-$<>@:M-+ZPL6DV\6$EZD)[;(.8O98*Y0U$M=YC^'-BC0$G*F:;M M6[U8P]1^*%I+2UCFYGQIB6L";)KR&H21[-/4<%B5:\M.#>>I58=M)L4+4VZ# MDCTNCX):CQ1-;03*;9,D2_NF:;]!%73 M<<[^U%KS;%M=!.#;XX?G+E5X^G$XTH'' MK^..'1,9H!&Q]\R^+QB.I+_B'QK>>=1IO&_X?O?P M7T=AW-F(/S2R\P+&2WQL+.LEC/C.QDM_9>]MR/\]7<^R2PGS0)""!7(!M(,I!D(.I\V_.-$((0 M\JK'_-YG8>]$1Q"Y<8AHG@V_3$K9_N&$X%]9[J.GA'N'H+R5CB]H6N0D)?GT M$UV)>&-R\3?>ZWN?A;U#^V:I$WF]D=<;F:9(JT!>;^3U1OCX)*T[^W-EXRO0 MN>/NP)IJJHU4;K2=(KI GE[DZ44(09[>SYX%Y.F]"XC22" M_TI3UR80/2_\V0)!'DWDT7R)"/J/.9+Z2AZ7C9?W91"+328I[/\1UV7\+63R MR:U6^T+BW=#3+,2GR*MSD(V6:NI8Q442<28^85_;:ZZ83WH^4(/(WR)&^0 - M#;\Z2D'!&T4-6?A@!MS 7 $D&Q2,9 >9Q9^!'QQN@T$&WI4:>.F; MT]Z:A<=[#M-_GON$[8K5K_V5@==+H"D1>5T&3DJ-S&O!&5,A453=2 M_6V&>,B0.(F?# 39CYZ =_N9^(_R,K&?(0//9#^YI^/9^S+4BQOB,_\Q-W&' MW:*O:C!^/1.Y9MB!=Y7+\0>E&ZJNKOJZ$B0:M.(59V10*C)CO%8PN*%96TC: MO481"HD3O!(%F*&J"_BP$#@Q%O?P@AYOSX5WF0L; M,U 6^C10]H?QBFP9P)L!7AK1>ET8CF[>ZKM]8-'9AB6K$+]>! M9CJJ'?S?%XSZDIG"*]/#__MB;L)O;N3H7GCX^9>,JSKQQ!ZZ\VUO%#Q[3*G/%[(&K0(;Q?_ D[ZFCHL4[9F\ :\N_7+=XI\8'#J/_]Z.8%GV3WN M$3C$IY/G_YPEY^E:&4#N%A2CC D*TQ8K(E:?+OAQP19GNG"E\']VKK+OT1'\ M:Z%-:C6/'\M+5Z]H6ZOB:'UX(S3SY3N#H/]1R1U7"OY4$3.$_:/8?VSU(XD. M!EY5W(/3]H!_UA-#9;+A+;DFC.=#I1*.7/',^-?)K,_YFN:+W2[6J+:)1A-O M0?QS;7@_SEE$X$_#?X."%73!;JH^FX\$\$!_]E55:$W9CX02\6QLY"KWFA% M&1^$_Z@W*\_60I^P@"",+:^^&ZWG"?[96%UF'K@LCO!_UCN#;@#^^YN $/Q_ M82K_2"-(DH!?A(]77,USP($1/&;>HP9T"Y>73;5,:^5Y*"W;'\0(DS;K8-QT M(,M;NSY@+7H _&G""/R7[\0#S2%"^,!ZE5?*".F2DY_."!_M1Y,:3=JI;]L^ MWK7"7KW0MSB9//&V_C-V>X2V6;3'A")B+DEH4=1M$1N(79*,L-9Q^>/,2OB"?F(>."$'YI/FOP/R=>XD+DJ_ Y"J' M-29QI><]K7C\MRJS6@)@]W:B5.'70=_(EL?<2V\G\XX5A\*DS41"3@C0'^W7D]1N.S%\)]ZF. M!'-]K6*M.[6^K&I*?D=%WE D_]+;L<= /(+X-:UX9CU][_2,9S[Y47"$*@6Y MQ#6+GK"5L5*CBVVFFTVK(2AL$B;P0.'G.R2X+XWF2M&^#P*X.L"?:BN[,+0G M6^(K4.^K=@1>W?)^ +[ D6.;K7;7,>#[SJ9X MV P@XKDOWUGF <]>Y1Y_)QINDC=/GF)8B(>O1P3WI\A("F]!"O>GFU] OE"H1;>T2GR5YL&BXDY_N?/)AY&L'/AG3A:OH@KT,K,UPE@'.PO:V !Q: M+")?FZD!R"QL]61'%Y\\'>>J%W*MI[-W?L A'B0^:=0ZR'O,(.ZQ$P]W5VG9 MKJ\:HCE>RA*ES;A*35"R\,2#X%!6Y.UF19[X5.2BB>/$2NJ]"^\EI">]8@/.,:HAA1YQ:7=.M5,*E69V5C'C7XV T(WLDO/DZ MJ>-^547$^(CQKR@K#8GO[>=4G?@@ LGO/%%<*GF?)QD2L[\QYKPU]F^2OS;SK37LY>@JR ;YF M!DE;;P&_#U#>QI6A]!!G_5@.1\.SZE4OV,D1/IXT6V*@TY.U MPL$3#9)FKS&Z\P)W]"O%_:5E<*#HF7L,:$6)!5=XOO#>_4>UQR.%SVTTW&D2 MDSS>'SO5A1#O/UR\_SPP9SQ;N$XL7!(2$!W?(QVC_(+;D4*47X#$\"+$$.47 M("G\?"E$^077:2-]H$?]O7;- & J&>@X@6_'E-S$F^V&*!K0KT;^VK"YRC2# M/@C"^ 709^[''WU3"X%^\+'#]?\=%SI*%KA0Q-ZY5[WS)-A),V$=STG)]X)C MN0*-[:R3:]9#VBKQ?7'3W)#DK+!6>.A99XGSE4NY^^/SVR$-E"MP;\)[4Y&C MEY\K<-72>[_*RE4O&R(=%*Z.Q!>%JZ-P=22_*%S]*L3W_F05!:)?A&1>?ECU M8U!Y /V^X>%JMMCB.L+(TQTJ(A" M?Y$,7HH,7F^LV86%_EZ/$-[)SG2IIY9OW55;QYWZ0NXLLS(@VI.99*XGQN8O M+K5*Q@:CO8N>WU,W@Q_:5?Q%\M-QI31WR@N<9/+4 MTO(;84\3% )/[J\F&90)=.=4_-EAO_\^PVV45P?V9U>:=4!R#6;/^W/,3RE% MH0:I+]_I!X8\XSV5=P5[%&=]ASK8)8HABK-&4OCY M4HCBK*]("3IQ=SV'^P92@%$]G9UFIM&>0[@ZTSZW5770%:ADE)\E^9AIS>+[,%!C^Y;?B,4F$WBVJ6?^ M&T_^N2!THZ/@O_/5?^Y"G]5QCV3X#F1X[XRY12EF+V!D-RG$:.>\L@5#K//A M_F DQ7<@Q0=/\&V*<>(6OE@QOOQ\B@X(5=,%NJCZ+LP5/QQ\K^H=/J>[Y:5, MUHNV-VK[Q5[ASU,J7MC@E<0$;X)0FO;4S9=,$,]<_+QCN1-M1A%V;9*RNOS2 M#J><:A&" 0=+L%^^T_@#Q5(H>>*$[O9;Y(B#[_UB.>*ZPF4T+7*B)*)8"F? M/P+L X-,@OY.'W%,WP+X9C.MU>D@TMIG8I"?B4-C2S3='Y4&8A0L-WH0-FOJ M>$\!/$I;N#1EX#=J+PB!(DW/42*>:V[J+=6L65:7Z#;6IED* MH^Y?W ^1#.G9:X[=IJRISBB["'2K5#;%1<&:ZP.VK1 4+/].L0\<<[Z;[>X^ MP.%V2. *,D!.O,]?#0G M\",1> '^QX=80'1+QD#I<7J>)Y8AH8U64H$EK M\^7[^4JJW#L!W%1\]-UET?PA [PO;2:G:)M1"]"2M:457EBZQ(89_47UI?>P MP#8:VD*8FWNX5)N.=7G2%09DP@(<=!5F'XALVE=XG5R U.%/5X??*D>D&EID M5@QJ8H%R>SZGW*59;_UM[;&W%>&VNFHO[#G1EVNZM0NZ5:IHC==0^&%A,?Z! M08HPV@>O-$_H''ZN*T#]L3WO58]8;H95MZ(EE_!N?I7%LM$&JY)&@G\JQC_[ M0!)IA_?)#LKNG0%0JM7]4< KY^:2R2[X[M:96XZ,T099"^;CW%_>D_AN%G : M_?I\Q\1[/RN5)M*JDFN5*GLM@/WR/1NS '7&XW+$ BAA[O%8()/ M-_F*14ZBEMP8!I-:^\1^L5=Y8:D1(V-BYVDQ/\V.&XM D:O6;0YZ+(3RW5)$7W8WG#UN% M1+M/[CFGZ <&?\O/??DY>AVP.%QQ V^XT9(3ADQR3\V]I^A=QW[[%[7_B1'T5<)<'0!T.W(X/7>.H$N +J\ M);FD!;E4)> M=[P@D(V&(C."G*=#N5RO&1@P_]P1]_;VGPI0I9A&&%7K$FXZ M37Y6YF5?[ZWAKK^_YR>][5^!L"/&1??\_$[L^'5ANJ_:$7B$=-X+P@8(9]XQ M<&]WTBRHY2E!=MAM;JFQ8C2:[\%]N- 'Y:2A"WW0A3XW)(;H0A\DA9\OA>A" MGRO2=NIX,&^5]0J'UU9N93D;+':;[I^?$_RAKN*88T'ENHVU7),K!#&LNQP> M&(G[D7R'KG*5B7*5((A@,MS/)PD9TX4KZ(+]^J_-<)8!SL+VM@ <6CP=0BQL MU46I&WRE1Q7)6R *@!Z/('[-O@SHWFLA'B0^:=0ZR'LK%O?@"'U4I% @ MUM4U(3I->=1;U<==?E+% M;QV$;("OF?OT"V]_F13*O+@RN-[YR<;SB]#$@S@?.Q.-5MN%UZZLEV(D [Z@ M#W%2) 2%8).4#.)\![''WU3"X%^<+-# 3B9%_U63L/2TO5LK1!;ZVVDN>R.QE!>XM]\. M:Z D@GL3WIN**+W\)(*KEM[[U5:N>MD0Z: P=B2^*(P=A;$C^45A[$A\KU]\ M41C[Y\KOY<=D/X:D!]!C'!Z*^KP>EAVJF^0#O"$ WC*4B7^0\C,;ONJ>SM%\ ME<**0H1NA4.O5 !1V/#MR.#UAJE=6-CP]0CAG>Q,EWJX^8%%G_?GES!2O.CY M/74S^*%=Q5\D/\W%^ID.>PC<(!G%]\$_1Y%(2P)T$')-;69O$XP3WWY3CWP;#J6 15^1R':2 >[6C%$(=I("C]?"E&(]A4I02>. MRSZM"E,IM5AF@RN.M1R5N$JP4DJ28D 5!D9H_U*%N;KG4\O;D5P4)7QOPGM3 7N7'R5\T?ZD#ZT#\DPMZWFOO/FX M5O8\F:X#X@$%L3AT@;\R-;!/L>D S3-<\Q45;D/DO&IQ1U-6?KMJ; IB+8J* ML0K')]5#R >>.M_MHC>#M O'&=HET"Z!PKJ1^**P;B2_MR"_**P;B>\5BR\* MZ[YE*_-\#OL/M@SQB9GO=UEK8TG!Y.E@]F M\7R9*Y"QO>#N@]XGGJ\#']NW_$8L-IG LTT]\]]X\L\%@1J= /^=B_YS%_JL M_GHDPW<@PWL?S"U*,7L!([M)(48[YY4M&&*=#W<#(RF^ RD^.(!O4XP3;_#% MBO'EIU%T0*B:+M!%U7=ABOCAO-M9R4Z9WG5X?$"#I2E05H^0_]RK\<+TKKB: MYX F"*5I3]U\R03QS,7/.^*2T*?]J-0:JC2.T;T634W]>E!:Q\-4"!9>MO1 M+@>A,9H6.5$2/2R%,^ ?0?.!-HBMG]=M#6/EKB$]K<%#I@"TA(?W,*"(A_T'N'K_^=?D-)"_^52%EZ"G8M#K M7C2QP06@_OP%&81 D:;G*"^_D@R+ G5;D/-6M!8QOEX@FG];A^'9:XX56; Z M?BM7'M&B)%>"?D$69_.!H<2#@LE*V0>:N)50UPM4#2X26B^FZ'_.F3+RV2/] MO'B)JV$0^!:8 PG\8-^C(Q2B=E2BRTB2(98&:I"GYP4FYPF00I@OW\]WU?.] ML\=K$=>?C:J3\\=K.3N?/="KHX_W9?&,LNOFDJEM1KCI1_K &649M_Z7=]S\ MDD) 1%-@Y+JA$X_9#%F?,Y^^^=/U[-+/ML6)V!0%[).OOLD5X7@;P2;+!V@@%%U/L5 MJ\M&H]FJ:^$"]I=WT;Z;0V9M0Z46.W%HF:NEG"OZY(*<)UY"&&/ 9Q^R9-I- MB"CDS,E]GXVKDS/(JXE_GSW2ZV*0]X75;,S/ M'ND%^0]EP2U-3-GBK"4]I/QY?8)-SWUL$-0B1G/-N2/F-^UBL;*LY;WU_N01 MQB@0_ /#I>V2GV(4_A6J\8J='Z'OQ.1INO%,,+28W(&__\9TX_>&WP@NU5/S M)9' S]^@1]?4XI]V _R E3/-LS__VR#S/AC7;A[&0"0D9 M )OX0+4P=1J_^9MJK]5M\&A^\5^IQVBL;T_D!>9_,\\^P_E(3::C M;K!G4W;@/,P&TUCJ]K_V^%U"6$]?>D%RGO#-A]538QT#/OW% M?,^T,,_8,V'0'\OP'S4S\R'O_7=/RA_=>A/$N)#>['\_#QXZ?/7E>P_2#+Q/ M+ ]I-+D*[""5ZGLD\^6\'ILN-:%%A4TA5,)5J%I&F>F M+&#U"?EE_];3S%HJ5.I5^=[/9:M0S'2ENMRK2,WN(72JTLQ_329A/XA\_!.I M7BD(/;'0[<5_-L1FKRL5\T*W7*Q+@Z["L!3!4I\ZCN>=S/SH948J9F _,TE' M/XS3T^3X5BS;/TPW$\Z\*(BW_>"?3T%KG]/1%)B>]_4E)Q/D^[7; QYHFB15 M$L<5!B<8A=8I1IG0@%48C24H"E 4K^$'.5(?%0O!#0MJ*2BK.#E>5BOAK6+7*['(4YP%AU M![9D?FXI#[BMB/FX8-6&_+R.T5W.%0V%4E+]- J+7E@B6B5QT&6[_4)@4*OJ M6J'3+>MBY%+-BM41G=I\018<2ZNM8"/GJ;)6]%L5>I:7S-B18U- MMUS.*D"U9[NR!12CW^N6)U5CM%:R1\:N^&2+48HF[JPPS^]GAS;KK!4NW;++ M&*"P$3D,QR9M>YP;U'FE9RA\NF4H2^0Z;M03)9PRL1H&AB8>KSN>;NKC1%V> M2ZYJU9I]N=:.]*HDQDV)=%-GLVDZV^F&L+KV.!QV3,S?M@RH/*>'S[GJHA@, M?;GD[@)9,)I]8AD_]EFQMENK.Z@$7K$CM(-F6R&.+/Y*J^"#ON&-5 M#5:MJJ"01Y8@S\^K\V4EF%KYME!BE5S#4*#_X\@2Y HMMH&-UT#.T\Q@U!B4 M5B"()^O($O":3>W$?&YA#01N9S9+8C@/XJ<>60)#+U/% $SSK&TQ..^ M'D$!-6^,EI;2X,7NQB0,9[6@)5-7QXVV@PN8;O2$&QZ'+]:*]21 M)6 YCJ^(K;IIF5M#F;CF:M&)F94ZL@3;*D>6Z@L/6*1E\\&"Q7# MF%3-M57 MMC@8%W"V);*M"597AY$<#.*G'EFM6G$GX+ZPB<18^R>8<6=5Z5I)4^KGI@5\ MB!/>UNV(F&[F-F3%'F!T6Z&/+"Q-%>9,42K-Q %/*RUG/-':(-Y:CJS6'.L7 M=LVY6[6Z5BSADQ9)5,9QTR. 65AY8\GOA@P^J+D-X/&[,B?&'3BRL(6*5,YN MBU9!!%JK.'0VW2 ;3S!]9&&W1 A6@R'8BD!:C+O3B%Z5MVO8-+4/>M)BT2$V MK9JHSG/%";M1JN&D#9NF-L*H:;)+9X9SN#0)!_F=5%*X4MR!(S)0G2F*,]2& MM.@T1L9,J>+YN1,W/2(#N=IPO.#M^@!WLA$YM9FU,@^2IJF^:GJ]NP!>J6,- M> ?,5ME=:Q4F35-]77'*F,K7FSUKL-:*2[W5CZQN/*PCXM**"O*V5^FLK<%H MTJUSNV6I&!FP:4I<>%$Q7;J(]61GEJO[ZU5OU'&$6.4ZPEGSL(1ID09PD"M- MM27&KP%HPZ:I8>T&FN5.VN.FY;B]47-BKIJC3?+4QV$EOILG6WCOC8OM8%M= M!.#;XX?G^BDT'0_V,+2IM+TM]JAE)G:J&H7>XQ=[(S7YYH4M^\RA=VB3=A:$ M_F/'#B\D]NKN^Q)BLO17XLU[C9X9BL^>[\7/G-K>^E$S?OP[!MV9W_:6_SJ> MIU]:W >%.WGQ8U-U$GAV%(*/,+[QKSCSP_P^[NHF?L/5_<.!\I?.8/(K1:%U MN;QU(;[2;UZFA=;E<]:%_TJB=;G =2&^\F^65$3K@G@,K0OBL0]:E]_,%_^E M>OQID\ ?.TKXD(",7VFF9SZ]_-U)^LTYB:TY^.7_?6&^_.G\4!=0?.1_4JG_SP.'O)/P4/@7[,759#S;]%S MTFH=;ZO22"HN:6I^)17X*5CS,S-"?W/(>3689:!.&F2FON=DO 6 !8I<(P,# MYE:QJ@F";R="RIX_/S5R]IPZRM]8?&A2CIA;GS I;\747MPL[7<>)#H(3PA/ MEVSI_&J#;H+P5#?E?(P7X))%_5<>U+.OYFD2V=YV-YX]?R0UJFLOA-GRO:D9 MUF.4O952AKN#I2EL#%H<&'FBJG0TKT8)"@UC'LY:"?O,)B1"+4+M65"+OT M MKE29U1( N[<3I0J_#OI&MCSF_KSXT_M0Z["HV?UZK]B)-_&<7&L+$+!_$:Z:9-LBX!]4"?@L_:]#<7_C>RH2. MX\GV-7L?V?JW8IO\2G1.> 7 '=D8R&9'N+A@7/RVHG#\E."*+&DV>4,!+.*] MSTQ4E$RLVF14QXO[NTN^0.;U+2CJ)\;E9]=H>*&M7[>)_1Q\\6<;P ^"JPO/ M,'A$>^^U5V,<+[3JN%,;CZIUG%MD"X+"0IN;?2")M,F-+&X$Y+L&\IFM[C\$ M\DZ;*>-<)Z:5;9;IU ;^ELSK$,@L!'*6_&4QEJLUPO?*1U*U!INH 8#!%$0$;^!D@JQI9#S=A/=R:XI+4T,Y!W.:?P?8(PRV&>7*S-6T%-P.=K4_" M\MH9&4H6JBH$^#?I"3Z0U4S+JXI)1$$-$V9.1)(4J@-Q0'3*H18H5_JL+ P4JRB M4 \4E2Z)B[PI",=WC>,S*1I_A^-QJ3;(E4A=Q+?SACP>%.3"L-)6DA) Q -- MOW4OWBTX4W[60S0O"(.,MK]I+'Z #B,:O F\ZB#C@Q5P(Y L,IR-TZDFR.A" M1M==<>&YKR/_@=_\ :SY&-B_<"P+&%]0^!ZFX\L>-5^2AB3*#5C"$9X09<^H MT2#X(_C?%?S/['/Y,_CG%E2+\,R)( ]JFYXP"XHMEQ-B^,>J$$._=:_GU7E? M8*1K)EY6W0P67J#:20S+VH#M0'$-F%&-BQ:?AH"+X:Y1[J M:S7OR!42QW:UJ1NT2GP8).6I$]<.P9WI#E?DVD%D<&]D<$Z7T$G(($^[':(< M=@)1#8I9JUK=;4LM 9(!5(IP_,:]0P4P!3X\E0K5#4#N'F3O(7OODI2>'X&$ M>YCN[XSLJ1MQ'PF7 RZ8FN$17EO1;-G!A)4N@EZSU6>VCAD-VO!B#1AB\T!E MSZCD(/0C]-\5^L\>1OR[Z"\-M'%8+.EE<<"WRI2TV,U]*4$_F^3?XWCVEKP] MR>6ZR&%S#38:.GZ_5ATD 5G3&$ MJS7L'%0CTFE(-U8,)#]372-^F.D^K^Z1N)22LR+;5!,HHTH?R'BZ&N,)5?I MN$"XN"!<7)VU+6A:O"CQ'N@##9@K>'<@LKV1UG[?6ON9C>]84_>!&H "V/^W MXCZBL/,$PB,*_%P*)TV!;Q?$KE:L1@T:4U0QN=TZ-K^9!YY+GV^B,IP(RQ>% MY5OSYK\3RJ^ZU"I^A1OM!NI8'"R:O=4XK/I*>PTQ'1OEW .!OY4[?]UF^5[_ M:/E@H9KZ8S60O2WN0;=&1HM\'[CAJ1-KD>V!;(^[HL /UV8.F'X\Z3RX) 57 M3]R5OP[CFC@!L1LJG:U<,XFLH!>([3FN4K\F>E>?G?*DVJ9&XW(;8 M3BJ2$/SIRZ!=BC+^+%HS$X\/0^X:9) A@^QR]9K7#;*G*+(]@E^UP!QQ,2OT M:-O'2WW1,CE]Q7";6)')'M)0COAE3G< A7@ \0!2@<[IEWF-!EY5?IA2-Y*: M"T+&NX,A6!1!<]<)!<@',*+T 6=OJ@K)4Z3,0MVB,!EDHUV:C78'BLHC!%M[ M!+YIF'6WO:%IT #O.CV0SW:("/W(9U,]DK3\J''_U\@PX,E?&!K8;PTMI] M^C#RNR!["]E;UZ'-B,["]K8 =/80KO](0#L6*-CL"X,\J.'R@+9*M&"T.F38 M5@A^[WLA653P%5$!HH(KU81^BPK(:&=AN^RP):M95J,ZLF<:I36D@N3,B2=/ M7P7_ C2?'W'!SS)UD0\&&6WW;;1]A@\&XO$E1;U>,J10$0J37FYC88/*;A=L MV\5LM(Z[FE2II]^TVY ?!D'Z\R%]^\K'443_#&1-:>K*I-?)6H.P%I!R(6 _TAV MVR-41V%2G1-S B&#;9^KU+KM28\T%)+8YUGC;Y(=F ML#:,9[C)_8(GUW\0O=T.ER'/RYG2C]XDKDITGD+[ED%G,JOI8LQC7PMQF M>]&-!]IJQG8<^1C#FZ[BBEPR".L7A?5;45). _6?$;YNB\&.*% ;L>3+,M6F M'E#?Y^E:6?\SG?>5358;A6J=D8#60IW);"&1G MC G,UC354(OMTZ2,,?U TNC&9L0'B ^N05DZ"1\ ?*,YV#;4996=L*5N?[4J M!@;D@_WUAMDWKW"_!I?5&]3 _HH:]K^&V6 :)OWY$*I 7JX+B46X^$GYM,M= M+GE2D$L'P0?!Y[;\%U"_R4QM;QUDIK[G9$QW!8*?7!??D._B6@[++WX&SG[( M?O$S@"QVA(*;0<$UF*F_OJK'B_N@'S9 1PTC/]GV8(1H,//\$ N!_[@S.L!% MQ4AN29?^_.//>W+8G=F!_PCE8HSDQA.0DXLYM@ER!5?/J[8=2-,N1#8$=N4' MKH\5N>=Z_6#=W S%Y0:L"XOZC"J&AD+N:\-FB0<*?&VF!A^B'"&F MN^<9^/1H_-2,7&LPZ1/Y'3BNYPG:,C)]D%!<[Y<4%QE:JTW$3&FI-;NI8UEA M%,*#S*3D+,%R#\S; 5_(4X)H -' Y>A ?T@#7'DDT<9<*N,DK6[(@>GRI+*& M- U'8IXH)DW(\EOPE7T7/U9^##.,]PF)=Q /)4+.'7(-W0[MM_%3\HEVHRW MKS>U#L!OV:H;QA:C^(C](ZS9)!9\?U+R?)SLE%?3Y6#+*%;,FDE]6^J!S9(H M^P91"**0.].Y?H="9LOANE.L""2>K^HK4N*-;A-+*"16O-@''$]7:KG.=)O' MX[A';QRWZ *WKGJD 69MW:&V>,X/YF6/]CYBOT%*;M 9V&!["LV*F7&T-\T*')"BW$:]5, M> 6Z673>32WYG9ZI@]-HL!T8?TZ%'6*C_7Y1^>+525K$L MY[U.;[802[.)N&:K@E]8M16*W->$85E4E1A1 Z*&ZU*83D,-]79KFY6R8P$' M>-#"%XI%\I0 J0&&4S'X X._&1IP#7ZMBZ<)Y-]"81*7&R9Q\9."/#H(/@@^ MM^7"^+D@S-1T55=#!6&N]*C]=FY/2=;RMPR-SU]<9(8C\3Z7&;T?VL\#?/]F M]-I(+S,"XD6-%K !OF;NXT&#T-.LC+> ]C$JS')#.NWGGT+>4^&%#RS,TH6( ME?: %0](/G:RN.'&N*%5R@JN%NLUODK6I(VR5BAF?W$-3Z'"*PC_"/]7X3/_ M$_P;"YF:N)I RZ2RF[!K?^4&M #Q#R,+'ICL;556>:GA. O;VP)P4&^>$F 6 MMNHBPQM9)I=DF=R\K@)#U(]51)"\84Y<@+%ED=BZYE=7TG1;,!2*W2LH./76 M%>K(JX"P>X?8_6@]XS7L5DUGF+4#(V]A]'S>S'D.T:+7$+O)'7;L&92+2U&? M7^24!/LD6W43/]<'MAH"/1-Z23Y),%/]6 $!86B#)/W$FR8)MS#W=AW+ /*V M(&OK-JRMU&BO/7KQ$=R=/:)[7D_=P(O79YX-)[;H^5T([EQL4NAYSUD -TBZ M=X0H1^H.*[?61!W':FM66ZG9V<:-B3*[3Q;ASQK"B(@!$<-]$<,')7N<@!@$ M4AV*46YF6_E)@7.F#QO/B;YCF.Y^[=,\@A M@XRZ2S+J;E:=B>GI!PRE:3[!8&+F'>&GBL6-V1"P77'KN3VROS/G\&0;Y8-0.X9A.3/1W+:/0-7BR#O+>###()(=37P\\[[5/CBJ8'F!6&06:@F M*G]Q1QGK%S]IUYCI_@[R0>8]0A9"%CIU>7;J4CGLQ+]2S_')VJF4IQJ/=\U& M2YG,6%?58_5\7]64><"SW&V$=QS>\*ZR$8M#3FEFLLW\XU!#XI]'4S!0!@;* M%$>9XA?NMW@E4[SXB.?W98I+X\; 6[0ET7+ZA44CB/2.2ZT5.JF"RCPPY)OU MGY$C U'#]5/#K6E,O\4,/Q-"X*Y-LK')K_!2:0)XO. T\KF$$*#J1#]D^=.K M3LA40YZA2SR>OOA)N>7,=^3^0?!!\/GC2;DZ)X8XG0)M'P>ZT6:J:X!,K#6! MS/YSD(G5L'T%T'7 B.+Y,8LDIMS5NS!+4W% [0[,;(E%UHI M\/_B#R1W0!#ZIA8"/2D-[.HOOWC6LN)J=@17I6 &"R]0[5+,X8OX-^*_PY&: M;@1T:0'VXWS3"=+3^W5W02]"?+"JA6-BUQT.L+9")Y4T">Z]-F-:4VHJGS]-C8DTXH7#@ MAB>B?4[>>T)_2XG+XH-E0W;IB4PR?G[ ST=4:=RE*^ML,!2HS%5+37]/CE*> 4>B%$/6?Y6I:']O]0YDH&K9PCBPG I%]64P4L1BS)]TDN--/7 $JF2#. 1QR DYA. 5 MJ=&DG?JV[>-=*^S5"WV+D\FKY1"BZQ>$0:];D*L)3VD_'E]@DV;PK52M))7>P:QW*[P9=.!M>)YK::Y?%H:GAEPEG(#-1[:064# #((27%2+GR:U$$%S\I'Q:OLH5;L1(=!">$)XNV=!] M3R *RO:Z6F7]X_Q]=^2[.\NI@>#^[)03PKSJ^]MX)ONJ'8$C3C(EDUT MQ'RYG0^#!K#*K*#0W$>X^Q%N$6ZO"[=G\;G_"6ZK,D6ZS6*]+SK!K#$N%!M3 MK=V&N(7.7GH M?RQG;SNQ-OG.T!&CZJ[G5PJ.5>O$VDA2IY=Z8/ ;N87Y\(:W8CA[7JC:OY<3 MC8KTGBU._F9#HU 2JK AWW)OE!"&D!&2%@+&/_ZMWL6:83 =A([ M)@E5]YXGAF&6GNZ>WCNU-\GL&@?P&\M(',Y!IH]+LW!0;[;IZJ;6KGB+(P_/=7 X1"0T-GF+A!K(-HP43*7!V3 [B/M]SS=FB& M TO?P59U8_'MO_ _8A;-)*J#G&;R3_1ZLK@DYZ:IU+_?Q=/*;X&?,9,3C#)@ M%_FLM&OZO__W_\B[#[7'I&:;MO-5\#SI6!,FU&N4$?*!UG!3K\&;!/AH*13!]G\OQ7IWPB/&#!GZF-2 AGGMDF3C "]V,_$ M9Y15!A_:KH&T^Y6V9#<6!&>/S$MOQK/G7S/I@\([7J;D1#2AH6-*L';\@SOG=+5=A)Z_RD5NG5:TJW!_^YJ#=[7:754*J5 M[K'2.&]==]E.N2%1@9_T3IK]>NV7L>P@1S1-R^2'(WVH<8Q7A5SQ MD)_=EHM#8UP_F[5.3.NR>&>NEEA&9GUD:@ "F96I%E+7I<-2N70WF#X5*H-, M?&3)NU]=C3KG6GUVF6@UQ\Y+(_O#]LW:;G]5FJX/?RV:>F M[E=@9&R?A\YR?N,5SROUZ^O%D_LX3F?]U"6,C.VS6CM[2-G];F&ZFA2NCL^' MG6IA#-)7?'4W>V$4S$KWNCZ[S>5N4JM>(_< PFM\]:.2D[NLU$Z/ZV>>T1W MZ?R[(8Z,K3X^["2KJ]*#FC*\Z_J1VQHO<60QOKIGGFNCQE&KDJHZ!KEZ;/JW MC?[EH!0?>79)#B].,M75M-!KG.0/VR2?:>'(V#[-[D6RW)MWG^K7M=[LHC2[ M'!J+"HR,[3-YIY^7M=GJKOYPW&P^95-FZ::S')3CJ_MGQ:<1,1:G*:,P=]K= M9K*=AE*QF#^ODH7%=ND[?C2WG$D;&5I]D3V_\['WMHG_F&LM; M]SI=:.=QSL+ZR'*Y:QP_M'Q_>GVUTE,GY].CSOUXD$[%-ZKES:H]S"9'_6OG MJG?DFI5%/E?!H7&LG\\Z8]TIO(-#>T=/Y8_6JW9KZ M@[O\S=W-Z,8KT%FSL:$=^Y T;BQKVJT^G%?3P^[L)CO&H6*O5%<(A"NF6()@ M9:ISEWP5_Y#9("O94 M %20^2,@\+T.UUU\!&5EZ&_D -]Y9I#"\,/__93_]*/GSQX4"Q]:G.MY.^#W M>^IOB>HH=0L[Z=:(1F9#XC!S13:=$"7-AGNR^=W)1IB@UO]W,WUD?I0^TJF# M8N:/H@]TK?\QP2F_$ O^-"1(O04;W+78S^?.W/7GB&JYFVZSM$ M))HK(]->*H;%W,'H4?AKJN_]O2FN;UGC-+?[N:I;6>0>L_>8_:Q^_'MB]N\G MV].LZKD*4H7N.UBV'XN:S&G#! Q44CSUD?R!&=9_22#@BT!YHTC W X<TV0;:W1"\=Z15[72[D^^F"HW1C3:8C*YAP0&MLI].E(K9 M]XC]W1/YGTSD,;/$WT[D[]SSZ&4BSQTMJY/I=4:K)V\/FZEZ>Z&;YQAW4@"- M.U%,%=\P76HG]>]0>D%919W!QCP7=&H,?2:Z0N.PB#(C*BK>J(FC\FVSH&>0 M=4S:>](T5,HEC#<4='8,3CNDHWPX"_E%XM .GGRGF.<[2T@M0>3G2.-M=874 MORG+H=$KCAXNVNW)]*R5(W<5L["\K2T'>28HE7//\= ]D]@SB3* M2;RSA/5J)E'JGK>>ZO/+0NIA[AM6]W9UOKS$P%DJ:*4RF3<7M/XN1O#W*HY_ MUYEW+ )PC]M[W/Y3X_K>/Y)OU\37'_3%PZM-W?%[3_S>7_GG>N(_ZMW;L5O? M(__>6?_[*F9M!VW7WHK6_\*"8'-JTW:(1HP%T>G'JJ8Y/K-]PS^907RNKFAN MG?P]_MOV)L1Y%_OW7TGC'VVZV3OZ_S@S=E6=8\V7^N.<6+KA@\U;>^6>%N<@W9]>77J-]NU:SR@==W3V>>B?_X(8T!%7V!;-I?& M!>*7.'T&@"\;T-GVP2N?;J MT=X%N(\3^)T%K+D^VHP[\.]LH8U5 M++TN&,,&3IPLDL(J?6P_U3.V<97NI\LS7\,B,2"'E0OO&(>YYRU_,V_Y(\(+ M8JTC?C^;36M[M*&B.D &\ V5/>RAIQH6_DD!D[1'21_&,U%DKYKM5;.]868' MY(:@EP4>L#7JNX2* RU*O$0_L>J/($=88P(R132\Z)P3_FJ#C& LCK/GMX<] MJU^P*\;AS#I)WV')-5JK/5U([TTU>WZP-]7LLJGF;?G!R3#?*16FJ=.^?^[J M3MM;]L@AK0&) 8>EPI]NONEZMC9-#@%*6$UC-B>62R]3T9A%#"9!(XWBVB-O MJ3H$;FU!3)NYPS3;?4.!:<<@L]>B]A::CVO MR>)/4G\$8:%WUO8J,_FIKTB MI$NP$-\+*O26UDQ35NC_VJ-.D2SQQ:^FFU:VJ&*3V0U?$LK-'-R M@R!"S*E>6/9SG91:O3IZK)T>D:LEK06-?J3RB_WX]@U@WJD!3)<0&M\S@UUB M@V?%LCU"/5: E[1,F(J= 4>&I5J:H9HP%WQ \UM^79>8/[0O3&[?%X;L^\*\ MOB],L]6K=V&34J>3QDFSTJR>5,[#CB=!=7W&49O^# "BO8F-:RWKS1FK\!;0 MF:H!L\ 7P]+;#G$Q2)X]&PW!/;H!\Z@%L?,]V-4A/#%3_E@,!X?.Y&P\G%96 MT]G12:-:6=XVBS7^4M)F517OF7$#');^I!!XA.:P7<_QR9NA42PEX/=KE$.Q MB.VDUU(B;7,";)(:Z+S/R[7IV=WP=.W2NQN#\QI+P1UQEI(^4&KU;K5STL9[ MQQ9$A_WN2;/>[2J59DWI]B\N*IU;_+Q[4JE66WWL2'2DM.%* MJB?UMP1^_/'_C@/5@)@<8TY%7&!SA[YK6,1U/PPWUO='R")M;'=J^QS>2"&.) MZ"_\$*7QA.-$SVZ*I(TA] MH)H9>"1M=:#T8 X)ENGB/R&P$@&DV/JNN!113(4&0CD&\51G%9C= .J3E8OJ M(PSS" 4 ;"T(FF(7^AE@=M+^0D.Q<-C8H:*I9CB:;W@*_;KZA0,&UBOAD!EC,(B',QUOW>;RMH88;; M&E58Y#U<9QM>5VW%_C?^8BZ+V=F%.V@\3JOEL\75B3$VA]?+]WP#?Y23T(,A MPLD2PL[P$43M%_6> )61F(+<"$9#@C H_ACP\7("]+Q*VDOD&:X_= W=4!WJ MM$<4]O.O7K4NK:KY[K-X>W-[7:>!?QL<_".8,C M[!0JTC!2)T",+<&M$/L)'/$8S5@)# IX*\Q-XDK MZEJAK0K&4.'<53[S5[%_T#U0CBJ5MG@;%0??&B!;_C11;@IORTR= @X+ ++W MRG7]V9PQ?F^B>H#L(V#&=#4XD^W0/O5;RF.L 8E][\ M(T5ERR#]"J+<"#A*0%OVXQ!X$GQ^&()ATRZ^_6%E4_8C"DYJ"#M0NA+%AL!@ M$':W;$$P$KX<)F"A>0WAQLXN)M(5WR4CWX2#+@C=X>9X8L9V@*N"1$(3M2B( M$I'[F*FP(F9UH4S!F3$@B[U$OD(?5[2X>KB:8&X)9:2"=+!039]$[DNC"*'' M[P#78\EC0RXKHO]MR+D<3 @""4PI2JF-;5M?&L#WZ$0VFA58(AK?/Z[,R(#N MC_!8:T]]%$.8B, 3TP2JXV 6+64/@0[%VNXVKR"_Z00'(Y;-HVOX !D'';'L M<)8>HB$(1>Z!4F'R"M"&;WIX5!\D+-T I'=84!;(%NXZDDXU-&UXNT#:O3FK)=%F!(^DH M#(,TYE)D /C6G<..@.05)%\/%0HJB\Y@-ER2 M&7"08=CAP2DW7%+\X.Q4\>>ZRFVNFRX\BC3WOCYFS .6 [[!(<)_JZF.0ZVX ME%0I #Q74*L=2=&DF>^-N$# M"DI 0.4RWF+X_0-BJVA8:=-A4'<.=5H$)&A[^*Y"\)M/;U/%A(UGK M'YD/YU-U[+23[@;;V>9Q[V\[^U$Y+7)V:FJE9U?P\#O#Z0([)Z"Y"[!CF$Q) M?FZC8=B@4AD\,XB<,J-A%H#PA(S'L2,Z<$1*, ;H\B"]P?IPMJ#]!WV.\!_( M3H#N&1=S)R"?,)Q. C[/8$<@.7B+VDUNW"W,F3"2W"):3+X M;#87T7L5+Q7POHIKJ FE[J/T1DX0M.ROQQL4Z MA"G(1Q*O]4?#JTH&3\DS2]/,M%GW*ZOBU>*D<'W1O/R^:%C.F@8QUG2X.@3^ M.@$P32N/AAL,Y!8-MQ,@W04]R',S]59S$IFD"K" Q\")C>5SJ6[JSLA$W^4FS$?&3)UVBH:\C8*;#S[H+>T@T]?OJ@/O/*5ESGKW:15MS];F%EC8NEZI5>1KSSS M/0FSZZNTB8,?@-:;#BX^F9%NOK+,IR^.[^?E>G=BGA0;#\W;[N'EIV^Y7.SB M_[UF*PHDO3$U%&_@RY13[#QI=P$J<,E4E6T2[QTNV3UKW=0ZEN_7239_UC:= M2^?6^Q5T7>AJ<4SY[9U[US^Y73]_O>=+5G^U5$K5^H7)LOS MX_QXW#DBE[^.J*OJ>*;-._6G_L.#5JPL4UH]E:U\^I:)%W/>2M2>[5%%A1N4 M$!'P=IY]R%/O_Y"O1Y;M)E>_SDWS)_/RU:)^IA^17+*X.&Z<5GX!P1OZ]=(U M&F9O6O >A_99/7,]7U5VC.#7[_"/>,B7;K7_U$]/Z_75ZJQCW,X7R4+F%S[D MI72]V-!-JYG*N'XOU7&TDSM__'TT_[$/^4^3]OLS]F1CU9P?78\O^\FJE9^[ M3G%1G_X*NE9O)]5ZHUH]K;=4[:'M#1K>8@4/N6V1[72]PV3=LHCX='>?\5GC M*)VYUO++_JPZOJN7?)+*9'\A23^D"N/%9>%PVC=*EV4[FSD97]_ I6?B11.V MDO3Z YXZ4#!TMFE[A#W=Z2S]:N0[M!B>3CS5,-VH146W80++]@+3+P9[H+D1 M) 3X+2NC!XCN.V@1\6S%]>?H9]IBJ['A3]W7B&PH2LC.N3EQ$*SH2QC;:!;F M TG@3W&%C3AXP_B))7L,6B&82V&+>2CP'O$R.<+4)98S@1N2'3/EO.CQ6DX, M;:(L55=ACB+;DB ;H,40XVL"*W."&Z*',+^.&PL-WA9V=Z?V,6J>IL67(IY" MG=#B3'!):/1FYFWT1SD8=0.WW47#-9N5V=:"I=8-UJ\)W-Y@O8[]_9M%4^?W MT=3[:.J7HZEG !U^S^GL04EL&A^+P:BLE7(ZJ,[Y#7+9< M2.=UC93S0QY;9^K_9ZG=$EON7I]:$W*6*7>F;# MJ1^53<_/9[C _.B],C5KV\++BE>3@[S=5P^?B9GULN;_NW@KM^]]%N-XYN;6N5T M.M#.3QWYUWAGXMIVT>@1'QL]420[KK>:L:*:.KLR;AZIV^-1+ MX?+Q,[4]>SB\]ERG_Y">^L?IQ]'0\+"?3&I]Y*S0,!J=R_JH3XY6#_E&4J^T M[4L8&3M]PQX?W9T=#I?]HX%6ONA=FD,SAR-CIW\H97*+^_S11?VA74\=S4># MV\LY[V83'6DD[S+3L^M)I6[4'VYFLX=[LW>.S;%B<+K,>ME.Y=Y3^ZHZF_E% M4J^4GL8PLKP^,OMP<5LXTX[=>E<].S_-#\ZSYT^XSSA$[=N;I&..SA_J9^WD M2FUU3XZ.'G&C<8BJA?NZ:R_/F_U92ES R!M%3X]G%V5+TO7/9P]1A$*X"C5;>4*=23 MD[OC0Z?6;YP.<;N_NH?I]VF#4&.#7&9@^ O(WTQA Y&E MG&+@T4%6I $W&/E&_;?K$X#N-N-UNEZ<@(I2Y @\:ODJ"B)5T5==[NYC@#$4@9_XF\ MM@A'PB@I Z,+/2G ,HQP3+!-(L1]"[;*JH2,F:I+XQ-=&@U*"(8X>I@%XF V M VAZ%L(8)K (#6OTU,>$%%\*/Z?1 !1%O8(VJ8_\TVZ/E/^\6N'3 B@XH+0 ME1CL#8M%+4Z 1B4E'6_?6QT ?6W;)> O'<]VF B^-XTI M,8V);>LLTLH0\94684#"&!T>4L,M:W.X(LK*5 H26).N.%"@;D,MR 9CQPC-!F+T, Q-@4&^/,\4(?F1ZV4H6$*FR56/^+&4#?*1>=S MQWZ,<4UQ'T#_:#3;]:I\6_P)PLA\!'P4>4S+DF29];H6U+@,^AXI9*NGLVFF M0N:'YM.LJY'+3]^L#8["P%+''$3!VP+(&'MI\.WG+/R9B"]Z5PAR_!\XI_V[ M _XDX%JMT4N@?S@Y3I_;I^HU:-^K9LJIG:OFW1;0A]PP2'N1B$2\IYSGT>\E MH8=8^)IMN0'V9P=S$I"E2!Z!G$@P;2"57-&Y+\),1%=DHD;\!H:K^33G<%L" M@"QP[0R?D@1\*I8"PO[/&V-BQ1VT1IO\FH4^SP6S9H9$(Q$LJ.K$T7OK(8/L$=15( ,<@ Z,UG\_'\BS8L$V'H4E*S I, MCTHJ["*A[&N[SD^71"S\NE;\2#S#%R>D;DEE7V=Z,'9F[G/.$:.(X(-Z*"VP9D@#?Z M$#[#?[.7M,ZAW;,/257 MX)>_29LOK^79NK#_E5JGM6;U]ZX2 MZW=72]LD"6*1'68NHJ%I2 !>RF>J!-J^"S3C?OGZ!]1[H[5B M@[@O5E"81EK.7?)5_$/>+(9)\9@@C!_26-R1B'*C,5FJ[]GB Q:013^)Q&U) M-8GYF'A@G.>(C8D@)';RUU79SQ0/4L\VVY""HJ3YT<(]@KL64!-_)[$B\U<6 MY8;VN!>CR_AET(7%4'5(BWR17Q%HMKU>M_2[UR.*%"SXTP7-<^G]O>S>O:0/ M\IG]O>S@O:0.]GQL!^\%^-B>7G;P7O9\;$?O9<_'=O)>]GQL-^]ES\=V]%[V M?&PG[V7/QW;S7O9\;$?O)7.0*NXO9O]HQL1^\E=9 I["_FW2[F M.]L;O^AX^1/;D[[DU/B(BY<#]KX3")IMXH>TVLP/$F7ZH/0LMWSGLA?O#Z/W M>=Q_,T1YGY?T3^00+YD-]O2P"ZBP9YQ[1/E=$"5[\*S4^R%X,MP*'^R,B!7: M,5;P/__]SW"/$^_#/(JEG4.*-X/17A/9:R)_R(/Z'*/D&80\$-7;,\N]YK'7 M//8"Y9Y1KC/*Z@1^*?*N]VQRKV=0K+AV\"3V:.3N4>)O4C-^6*3:JQ5[M>(O M>"T/"?P.ZY?MV>(>)38(4)Z]1XP]8C#$J-#*:GO3PUZF9OA@CQ21,[W'B;U0 MS9"B+NJDV*.]0/T;"M3/W2V[V/C_QJC_S5Y'7GU %#&8/RJTL)XBFL_\1H0A MRL:V:>&A/X=A[A'FO3@IJT+)(/8Y_66/,GN4>0%XO WA'F5^%F4D@?R/0H^@ ML-$>.=Z%GZ"P_@A#409+HKV9O+YC9_N 8 (: M0+%C8/B?-XN2^("#231,*Z'))\VNG_2M>Q9LK11_)0H[!I4"L1A\A]?(B_4U MENL)5FEU1FP)P2O%U\C-Y2+Y-"[72?;.NW7/CE;MY.4SC0^>+VK[_-:XIV^] M"T)/&QQWJD?'%\NS1G^5S9V8FJEJJ'1:RYJJ^ MRN=.\HT[RNC(3.\9)?K6&^#ZMW&1<;]U."K[:NW_PC5^O(1KE M1C']U##/IH0L3X]+S4$?S;S2Y7=A7NIR6&^F?$NKKSKWW>E MGU+73]E^IG-X5ZQVR%&J]%SKZ9]YHGA20<^.=$+=)&Y[0\M/:\XRU=7N'DX? MBJ/#B^PEO%AED+93STG;>\[P]W&&E\K5_HE6NS^.-SQKM:L9%]I=[>S,2+6N M!J/CD]5]IC1$?H!6NWR<'[R=U6[/$'Y#AO!2V=<_0%;XF\(S!NV'J^YT.IG4 M5S?FHW9T/,FD#4K]^9?B,ZCQ[3^TEV&D,N^/7_Q!B,$BNH]^ G^*$L('Z3*9 M;2@.'*WX*]<)#BS'V&+1=KZ**$&I*'%\.L^>?TT=%$A@./9(1[2)KJRO:]KR/CD>B;>EY*L.,G MY+0-KJG-4???I6T5D#7]K*=DNO7-%(=4N37&RLJC$- M@;;T5G5@-$/6Y]MRR8$26V/+U-AJ&5L1JSIB#_;WC4ZNLA16;,F+@?('P?LI M0?\%_B'A,&VJ&M)5I#GOYK]Y7UR5\RKZ.VENS22J@X_<9(UXLG@?[U$V?&NP M<"8GWNC@()AV+L[4,)9 Q2;*2ZBJVNOZJFDMUY?)C%LLT MZ(03O-@5PD%!>T#^WXKT[_ 2(A?UF)1 %FDURW\6[38K/GRAM+N$ )GT0>&= M+F9-4LJ&U_!?59DX* C\J]>J;J+WETF6=G/&%M/8M9S0_%U.!^HWZ8ZW8684 MKIO I3*.E1_J>JI<+ STD5HVJAH\^7IG M?-6\R353&4-[,OS[9NYI5@'5)[4^,I?/94:6H1>F1CGW5%CJY9OVO#+(Q$>V M,^7DRF]/>ZF5ER\[YOC^+C5;#K+QD:?3^_Q)SC$Z]9G3'9)Q#E:?X,C,^LCT M8D3,=,_,I@K-V=%C?G*:NKRN#'+Q.8\*;7>A3_*W];.[KMV;W1S:VA6.C,UY MO+SN.+,;4YOZI<.%N>QY4R.+OL;8G.7K>N')2Z=JT^N).\L,.F1P5\1@AMB< MQ:/S^HV[L,KUHT-]6,LWC>&ILP01*C;2+!:O3ZR1<56O+HYG6OJIF*EUEX-B M,'*-@8DFX(?.Y&P\G%96T]G12:-:6=XVB[4*;>Z=B;<"?V9T]M/6-2<=NQYR!?K-KPWGL@ M$]/<0+5HF:G32M3K.Q*J_H(9(DX'I5T7 \/J*@>0!4$'1R '^MD M#B*30;_S71214(IR/4?%FTR"T$24&?$FMJY@SQ/Z+1'@@E\@O!03 88-[UD* MU0J>!/<+/B-,(C/9RJY+8%T7Y#'4]=RO],(_"%"1QS$J4E'A[96FE>]0EMAF M42K@H@X^EQI[9G]UN_M"X2#]2XTZZQ"7!KX>V#]G E']IZ,D.'#E3/BC_ M J/7>YSY.R.D.$)_:" AS%FU9W,?-):0];X9XG[TT;:GR[X5FGYLK&0L(Y:; M7GY0&A&VU*TBQ^$J9G<5V!.,X297>]DU3ZKILTJ]Z]]?7N;.!LY OXP869,N MT;[JOH,O[ZL%22'LC$A@5CV[?CS-7X^OCNN%7ML]]$:>G^R/\8B?OF7CAHN? MH]9?BK]=>^0M0>#Y/5^2MZ:UOXNPQ-W#,/'/&ED0TZ8_J((X++P;K;O%1+UO M/"U2U;MV?[@H+)NWVOA=2&V:?R#GR_QP4C_+)I/^L%]9Y,[&@\R[D-I'OQX- MW[$,SW=(0AD!#.$?;B*JH_QA#^7^6=Q(O:[C#3JJ-6;TB7]=&)8Q\V><_GZ$ MN@/<@G$-CEQ\NN;,2+HS8UE+73_5G@X'IWI[45F^/3DW5<<9](?]N[JOZL-^ M:VHWW%+9).?U\09B3KXM -7']P-@9J5V#N^7Q6P]^=2[F9UZU4%J_%X ?*BF MYS=V(;N87A>;J\/![<0?-"N?OJ53O[7D<:X.;;A4VV%6&8^XWCNPO=^:Q^T9 M&OX:;92#$%M@5 ]P95T;.'-Z#Z7K9=/MJ^<7\U*[G2?# M0E*M'TU6@]ZR?G)]4MMEGO8Z&.JV<9JV+N[ZTV1[83V1[/W9T>*]8&@^'-?. MRX.K<P,O%(CHM@.2%S.3,&JT[\W M=WV_V]PA'OO=DN5N\TD37\0MH:[ZWRSR(7#%D\;5Y+!M^=/40^%\VBAGAG:_\5ZN^)\*> @/HK"3?)CK M^YF=4?^\BS?L&J"BPM.N:B#8.AAZ2;2)99OV>)50-*!#U; H)F!PM4)=U"Y\ M :O;@"7,X8\QF1-C#I_#*)W #J8NTW_Q3XH#W 1H6$D0%C7BNC1B4W6T"?U< M#TVTRN>3=N?_J;/Y/[4O!TIO L/@9^L[GZDK92BZ=@5;GP!#&$^4(08WX!J: M/1L:%ML@;TC@L/_J\ ,XS]R''0#9N@=*'#H8,J'.0/@!^.N*;2GJ6JS$4 7H M!:$2AK,M6 *>4#BG@VJ/,G+L&6=\,H&B"I(T'I.,.K\>T_\,GLZ?6G/C>G(^ M/4NF.OKRV+^;7%UN]+R^[(]([FO3]^P9YNFR< MG9D3T.$\(H>\K+/PA$(>-0*TAA'( 08K@.WW@&B 7Q6!I>&7@#RX-4,US96( M@X8!.(.*7^ED1+>>1#328U00F)@PX,:R?#H-_A@T,M5PD)@.E):E$1J:$R[+ M?CPD0!V *NI"-4P:VH(_!;Q-L%,:GH*L&L;)1/!,6! 3P,1OEH[A <2 M8P4 M?X[$,X3MVA;=%5L!:%M!/ZAJK42 (#W"S(9#VXZK8'RVQS@)4"F@" )%T0Q' M\V>N1Q-(8#,TRLE'1=3206CPB*+!-:YH!/B,A98#?S-M#+FA<&3DG8#QFNFC MF("WM#&4RHH#'7Z'O,>R$8(8@8X@0? =*-<3.*_K ZGSC0,XMN[;UC3?25!8 M"AC@_/A_(K:=S4Q?[8TG.% ZL4' %=CUHFPT1PP#\G%]Q+LA0AE6<@S7QGM1 M#'P!HJ 2D?48Y2B(Q@#66AFC0Q8!X7U3Y01A)?K-8HW:?K MK8?BH/AP/:^JYDX&@XH#[(Q()+,@ADNN,N:;!!0B#*N$E,#D)9VP:Q;DAGR= M1;\'>(0_"O%(8)P%^!8R$^0MN$5C9&S@[2Z^ /QW.O(T(:*QE:A@%.P<]O;: M_$(X"AD\)<\L33/39MVOK(I7BY/"]47S\OO*!&Y#YC W\*39B+_2EC_;\DH# M1<%SWQJUYA2^UKA+QM2F&&0$IF3_D7EIUO,G:7\ZNTTO-.WPTFG=+KF^&5RS4FMYM2I6IREC-NWZA $_57*$PS&@&I0-DN$!3?&MT*EK'I?B/1&+K MTLKFI2PNWL@O 'LLZ3^!-(()00H4<\"6XS,%^J\"0@@DF"ZCL #J\9"[A M\@ ^5Z&28E))"F=1$1FH:L'?,_K^P;& FP%S6GF#/YC(J]M#/#/$Q M/9%I3 E(5/"-Q9]4W>?R8)0_K5\5"#?PP&\2$62Y28"=/NW;@*';=.GH-E^Q M \"F9S;A(:(%U\XE!L&?>08AX0A#Y6,=1H XXV#ID0!#J0C!;ID+I2>CC4+# M9@EAHUC"P,^%P[%%Y6:"Q!*D1@9R",[J@D0)&&!P:2DZP+/AC0W!_"$"R3D* MI83Z>]QM^2B9R>(I?7)[L9C."JJ3-ZSCQ<-D',_[V3R.Y^+LH,#"3KV3X@H^ M^B&GIL9'EZF..K H RT5G#7KB@L\#\6)D:&A)6:KZ<6,AB]@OI^E.+8]BW+F M +%=II0PHWMT+]Q4Q.:Q9X#?/!$WMFLV,FF/DJ!*"NGGJA*RTL1*-T)H6J6 M?'9XJ&V%F%R[@2\ SA87_^:J-E7'7-YS" B.]$V%%X*?L"\G<(>]B4S\87=C!X42G+4L M+KIV27@/['KPX"!\P&G8-Q1Q@9%SM93M^. CLX;D2P\>?I>]_ J\#OB.4Z(Q M ++XZ+%+03!S%,37V$*;$!786R]C/;NA9S"9FB1#DU&@_0YA'+504FT%R1OV M%;RL;)JYNF+8$]APV.=XL@/E//BWR]]W)B7,6(0+O,AP/I9^CP\9\[*%L["= MHV%$_-B>!ZGZ &:"YV+>.;3'$FE]*C&RYQZ1'^8?PM&$Y9F+"LA!","2 EP/ MI @J8(F5A.6)/!)',P @C'!1O'81MV$GTLG<<(L;7]7?/U&_N$_4WR?JORI1 M__M3NK/?E=*=V[[&LP+A._+^[3*682UL$[TV,6,/Z).!0L;MHH$2-P>)@0D[ M-GVM ;QDH:(I4HP 7FW9,Y#01R 3H'6;IHA"\M3B]&'RA=0QCNQ>,3 M["/*NX4"P]3,^=R4'OY[7Z?VCH0TGB^L&["J@^(/T#2U'J-GBFY"2 #BUW23 MP)*E@T#9?U:T.D'5F+TKB8V_YH(M5R(QT@SN MA*M=<%1X.+AMV0H )0P L8=PT_R!I3KZ2K+-"*,W70-?*!#E--]<2Z!>GQ)N MSJ$O%8 &6*)C+W$DG4(R?$?>;,-B9A^\M\ ADQ".P^""]> %%G<3JH2_MF)! MAZL04FY-Q=)%5IO(O-FF+F:/KZJ-5;?>FQXUK\_NTU?)_K"ZD]Y\<1)%.JA" MLXAV1BD\04' HH3)=3G *U?LV^ "=O!!. 8$HAE0(:=Y-HEB,0.V'9":D,2P MOI)!/6ZVI#[P.("HDA100J!=R#N2%4ZJ7;#II%B$8#.H)1#+970A:@O0WS!/ MW2,?)^LJ2'ZHZNFR+5#FB_+ZKH?ZFJB/$/=S&D[$DY_@SBR$]2O<]\Z@5*LV MITL_I=X/RI6C].'D+/40T19YVG;/39UXYR*\.9 MY@O]U7)U4;L_SN8F-^-/WUSC\1F?/4-:AC74O$L1(\149E#%8!-G2A#U!,*) M-Y!Y@4%_D1%=!56$H.G2@/DH<7'3PV82$/$PZ#5UW>"-1=0W"<-W2TRP-+R) M<+_#"V&X$V$ #Z)VJ+5A!&\9C_B[B3OCE??" M +2Y8\#/8$OX[1H;E]XB:LOTY^@FH)@EWJ0$_XUD<6=1:Q9AOCU*. !&1#1X M$NAO.04PTP5G_:%C-QX.QQT$7?$.!MND)@4A#"<4 H1KKPB)OEZXB""^(3PB M(P.%3-\,OK<=Q_=0]7-;5;KNP MNC]N')<*NZEWLH,F%'Y4>EO1PRH[1V+!IL?2IM?]C: 86)X>XJ:JT MIQ9U?M @0W0E +@PPW4][:)Y6[SSR46M5,^,KC/7X]FP?W-^&3?^;AZWNW[] M+KTI"A1%ALK.D%+$Y2PJ9%,:V(9CH3U2BJMAU1QCAD39B4NM0#1$>/O<$5OE MV%'AH-0)%X]Q5$'MVU+ M3".+_6ZX6;X7WV2AZL!AY+#D!<$0+<.C@114B6?!42S^/HQOA[]&A);,0#=X M^ ?3DX-AW%$)?U)84"!Q,"S0&4DCRD = 1U?=5C< 0C_+@LXXZ=EWF7-PU@A M:5EAJZ<&>KA/-USW UWDFS VC@_K$CD*TTU,M5/N. 3.J?3K?O MTG^F__E"+2)RW!1CTL_/C^S;MOC<'&%%_&R O"*M2" KHKX_Q#P-NA0 B6/; M@H>),?();7\T>)][TE5^>;C"*VR"U]6GW.6J59E-C\H7G6RK:%@=K?(A-D'0 M@B/&,=D\^.&A%R^C$K]C[L2GYK,P)T7PPD-3!=[1U28VB [)"^)XJ-_3WR1! M\M!PW,S6441@EPSRK>W,,0H*SK@ P<3VJ:;LS\1"@32_L-&%BD:VA.1&PCP8 MGCA"$-NIXX?;QX-1X4\C' MW/ 'YQ7:H&4\:]2IT%]QT9M/N!EK(67@ A>M3 M+Y1L1N00B^[_-1!?.Q']G7P6Z1PXR#$P?H-Y2-E!_]"PB](^[&(?=O%.81>Y M[PJ[R&]?XUEY_4/"+EAH HL6M42?%\Z'HIR>/N$BNBO"924^';(BFGQH#VE[ M&%WI.53672DK@Y@Z>F9 3V3,7IUC&J!C4,'6=J)Y<*]GBQ_DD I?9O&%M(\%K9M M3WVD6HICH)6#YBYP[QU^(X(Y5U)6*^H".@$)G_H;8)#( */V]B#X\T"IO3R( M"K.2/A1#9+8]BRD>-!$5G8G^PX[%0Z=&(B!+RK<5(S'PE%.X MPURVP#] \INKE(L$7>E82#;+6>$^ W0ZZ2PLF^;-;#H"?(N!5SQ]EGJ,+5!5 M+.ZY") EB*9"A_*FW!R6L2(EO0:-JOC98%'Z,4.T Z5I*_V#[@%^OKYE5(Y5 M!R.A*/ P[IH.1973T T0:ZE5623[>M3:3#.7Q:^8;QB.(%)I0(2#4]'L*-C! M@J:=;X[ZD F!QTLQZ[%#).4\&JG&_\3CT8V.B!Y8]6@W"[Q%0&9@(.'-;EX> MOQT9:(B$(T[L)5E@W/J:DJ>""$_SA)GU060$L(OU0/YF?V0@GXL"6J?R3D("]VL2*N6?=YL#2[*&$! MH"=#A$HRA$HB0B5#A'*!UZD8<09GP21'$<\CW9*03MA24FJ[,*J,A)W$Q$@% MBK&JDD_]F^&P,;&9^CLDU*H:+MB+(!BU31G\8#&F)5B/)^P<)$S?!]'3L$25 M!'BG] 2/FM,<%AZ(#>6(^$.P0!H:KT;P,3 \.<*RO#$!9#>#%.J<-MO$H3;= M;2]]IW>OSILW93=ES%K.R;24'&1VTX78))["7_O/"--L+O4$8O(Q3B&>;Z[%?R:/PO@@CXK*QY1ELJDDAN<0D<7^!00)PZ2[ M?>VI0GN*.$7R)TXQ-WUF@@YBBJ5W7,>M(9VY!(0'QAYXQI1#$_!I;3#V#,*Q MHHM^#C?J"4&? 8<9PK\$55HP@H R"_A'6"J";R/(X$1!(2EVQ,%&'4O!QJ/K M1V(8PR#@Z" #E!3ZT-$'0F2KX&\B]YA@WPL3),;S=/LTTH4ZK_A#+.;B$$\#VI>L**S0,C0L3CHA1]ZE264DM?!*Y/46"$+NFEZO+$849]TF$^ADLW MF)!2I9(OL&=,#V29]=CMF/[)!:)M_#L_7N;&VK)]U>_>^?8H4SQL/ YVTDO- MSZJ(PRK2\7:&@5-K,@\50BP5>]VBS0LA4Q:5D1G2K M;DV<0?$V2'X-?K9AP M^HR6YG%8A$?0NEC#P\5&V@D..,I)K/FL+I7MLMC5J6$ M*5']8R;J9".*QA Z0ISH;*9Z$#J4N5=R+?L:M^ R,2@V%WR SLV@['Z",B6:%%ZSE@4I%?;/ $> M4Z%CTX9'H/$/P&E]9D.G&<6.RBJX^0Y"?FUB4=*)Y?O&80+<42KWQ;,!L,B9 MP^):F8%DTZ;B7C*'2GF\)(H+VZ;% $*W]RL.(RQE.L'? MBS@(94+T,9$CJ%#*]H+2/6+7=*N!:3/FR771LA3PO;4R;I@O'MB@8L]'8.X/ M,RV%_L)5>Q#Q+5X:T1Z-F(7N^>W\%"(G).6$EH:0*]*]=K<\4=T/4TVW(2S MRG=IE421@^40_GC#1KT)X/\?ZE8M[]VJ>[?J.[E5\]_E5BUL7^-9&>PCO(*' M/)^\*A5"7@OQO"F[]:?Y4:%<;YV3VO%9>GFY5'=2VQ2'4>33[**8R#4QGJJS MJ1SDEHJ2W"$3*P7)DY$241V2VW4V5JD-$YCDX*)(B>IP1ZY0$^5(N4U%M$7, M#TU8%*_G:PX6A";)BP;OG*B#J:9X$XCI;AZSPK(K,$9"S5LFA1>?]P3C2@/'"[K=\05 MU@3 V@M$KK 67$*Z+(?,3977OPD3H+EC,'#N2I5YJ42"@"NB[AG-(0:^G%#= K] MA:R M!2$QX5B/7":\L)!'):A3&98$^I4@KL,75^X+]^:HS"ML:[NM*8B%3>9 MU2$APG#9GZS>O!R&&P;@*I4@#>!YRGX-EK-2(.Y&PU0D19'+CVS3XO*>K18> MJVJ2=-\MYFSAMF;A3MXS!2F#]53W2K6"_90V\EBU>=PO>/=,F6_ M8!$R(AX_$;RLF:K!0^M8%A2M.$!TJF*S\NL8JQ24G,5H!U1X@6T[S"\55B5: M2TMQ?.YS"DRVS.H,JYL!](0G)W04B>KML)&A8+_A3C?-^*@T+L"Q\&QMQ[9LGQ?$X[2VC>)NKA:YK-ZI)OO=NE6I M78VFGC[84)MU\[C=-2!W:( [H$=%M^>(')NN?F=(]\12:K!A=)8S+,NDTF5& MOJ]!WB!#!M%7RI!Q_&"O/B9Y5N/_A5TSX(MY!,9Q**''&I?.[9<\#@ M8B[U)0'2+9;9&JW$8RPM11N=2#_D?4,D'N"N_5B-_CB,RQ%VV[%O,,HF* 5; M5"840AMSW%/ICS[L&V%5M?6P\FEX]FIP=CB5S*5X;2#'QLK@;$\@]/(X!1H+ M%@AW"?XZ8QP!E9KI^"# #8M)2^>AG(I; (V9B'P0?(['5@F9,1)6*(L6N()( M#&?-AJ0 S3604>LC\'H'&PKP*! &?_R361]5*J@'JMOK[V-(-&!&/#X"3>_" M]1E:M 'O+08%'NCEN)Y'GIRI( MC Y7L=,).BWO+85%[70J$6XN4,<+!6^N4J?)SL+0C"\[786SEV$/*C8F]:'L M%).)P > D^(\!M@&9Q?L*V (,B/(I)*I-#("C#>AYTUBIUMO!6]C$(?#.4,V MD_ZR<>@%)0YZ&:)X)]9MD(P$:(R(!$>."0/3^0.\.8/8CXY.SS@*A+# M(.RD4G#29V O'"3\2\8C>) LPQT^2)Q>\#39#4*'X+EYX #\4 ]\A9XX 4TZ MC5#AR,!^#U(BGT2+U+:]]NZD\Y1H4FO"W#O0VY:"D&&YMQ^EM]U)>@VM&30\ M%G-]R9*$14"U,$R+1$H/S","'(4G3,![T\G=D8A#I+CUE2(U?G@>ZB\"^"VA M^%."W,:7',1QY1;4YKI ]H],2$6^Z@O; DA-A1A35=;X:;J03&<3Z\J)%-[ MOJ(TD?Y'J3+'[CE3HP)N6?CR%9AJ)*,B.A+N^IG9/^.F^%Z^Q(H R(8&*5]? M""6A49&MR%4\QG+$DMPV,L%<*FY##KMX4 &4&O""ES>H["@5/$V$=1PCG])^ M*)+QF6JB-K7'5"N("9ZWH%H0\MF;;I! M(=)2XZO+(R<,5XA[K$ 94V?#+B TGYA9@U3APTV:MCW%7VT":S0#F0;A,[LC MLGY@Z:;!F(E\/9%;02MX8!WB8JT4[KGQQ6<8^BKA(%U*@J["_HI(V"=2ZW=< M-\#;Q'-HN1'I$YM7+B=3N<0?ZM,NI/8^[;U/^YU\VL]XJ9\U]'Q(\N^[,950 M"TAL4SDBVD(FOWF11.QU ,:4?X/W7>EA92B/9B8'?60ZZ-T:;>&(C&W'MY-. M/;.;Y-8-;(6+K(HQ&+%F2,'GN0S[?!OC3J??X,6(;ISI+*$G)%@Z*!#/X[RX M%P8S(N&9-N9F6 !&F#0,:SM\#^@6B,KRS-R(-L:\BMC1A&F$3*?D$:#L="Q, M-&S**M0]#P\;N'U9U4WX>.,.=D;%J03YB)@!N0GOF/W*E3)H4#?5Y3QZJEY* M3BX+-B]KF7$9<^X/36R68)C$"=P4H5<5ZP?-6$%C(6Z&O92$X:_;"0U_*G:= M';'*^RQ+I%NOTNC7'].?,[+O,VKFX[3/;Y<5;(JM$I'VAF( SIR-&==H_F6@ M-E.CO#:3>AT$[%6(H>B70O7;8_G-@C])71A07&<@=X@GV3(#0_)0.)59 M$TP #H]83O($L]"!R\*R6;YL)/!51.$$N,@_"(M-B1WS\UQ/@%36W8%<(T(? M&@^1X<8T82L8R1Q8_G$0D\TN:P,5%-<>?GQ,HZCE7)WTUGJ_;$S]Z4G(?FA@*6F\>]O_/S M=1:RS('2J5_5F_WZSA!$)'\#)4CJ_J>WP_QSKVRO; ".#;KN0S>3N;LMU0W] MX=AYO'X\FY4K']1>F3:@"'LKTR-U;=_1R.;>RIU%(Z\ZY;O4U#C-M$>/JEFV M2N-/W[RE'>^M[+*)OBH5[)CLH3C(H1:T2J2.CK%#J?&65BGJJ+.Y&+8[+'$] MT887PQ!($ _54)COFLD;5?[P%%(%KNC\U]B@=7-K,GK[)=P2M.^R>07Y8X./ M;\(Y$4H!HN5]&00U[< M'ME]4&@?,U91$A*>95N. 67.:;EFC4-&9A!YN!:Z*.>GV*VY)-K][$L?WQA"<.8<4@>H\T]]$<$"09F OQ2/_!R_@/O;T](NT1*5#[@LQ.>VCRT$HW+*S!4&N/ M2'M$$HA4V]0W5"J:@+91C>PQ9H\Q F.BF2P;T45XE_?\:(]=WXE=G6@ @Q"N M49MAP1X@%VU#*UJ]$?[MHMEU.U)M]BJCH!]ZM'=-WXAT]U #RF%:'B^[2"W+ M"UX.4PMR$YCZ2&-B:$(>X6V+J?L],"'SKYCCB@L7F*[$6QWSIM#KW\I43/= M*\@[S#+H#]%YH_'"1%RGEAU>$052RO1X\YBSUW9$C&C8,ZPKA#[!+>BVDWJI M7.Y%JNJ"RKM&(\U9'\(@ZT?*D<8KX;T D<:$*DYCH8(62*X]XQ5*1>ZD3@.= M-"_LC\M0E1<# 9QP"2 7.EZV )(V3%FW;[P$_:@?(II%'7^/UA0ME@*'[JN- MD[, =!%9P6/JPZ*!S"5IVA:6'Z2]K/@J@4>QVPZL0YN#DGZS$*3T/@1I'X+T M,R%(SSM.OL/-DMF-K++0+L^-KSOS&,0\!OBP,M>+'N8ZAS9)UE@/W^,1P61J M]VOP"$18/V\K%G(^T33UY&&[:"1/],T_%WA@8B7J!-.!OUE.AD3G@2OB5* MK[-$8]X9F05[S FM]8!>BZ#WUP&6HN9??(8EDC3MFC5R_!+\?LNZ:\W@6+(1 M3U\,DN\'2$VR8H0" [;GA#E/4.SX8K1T;10A8OR&8AQPCX &44 M\2JZ2@3H\#9XR4#:$BUPH\B$ZS)8T MUX4QF;!Y]&?C"^_]S%=#@OMLB$]]B]9KH0$Y82-JFO[JLC41O$GX41+;ZRU4 MPZ1O)1/^-N]U[= A6B0YQ/7(U8==N5\0/WF92 E6Q&"9F1[-D,>D.32A4,1Q M^.;P#]7EG)V'286MO45UO.T8N!V[),P*BE=LON!P'6D10"^:GR_!<,8"I_B% M1V7SC=H ROAK21ZAJL)73T@%]$*%)5!/GC,:1%4601/FZ@_0A\! M=0-N$A["H?\RQA!$>$%OG'DCN9D4WB&8884)0\OSB-%!,H-;B46#FNS_*O9UC *61Y M,LGSZ(;7D22[1)I*Q6(J_A8RY/&TJ/;36_S-B1&DUS6Q=2<$S+7'*Q3"J8V) MBR>4!;"E4#R[IJFQ88+L2WBXS:PDJ!*; IDF, ^L=47[+[EKM?,"7.!V+1;B M\GM8M[[O)1$1Q5$(TX+ !K CLMWBEY#Z?B*+DU35\%9E.67;!?-]JUP8) [B M%9:PY[7O34)/S'/M0URCM?&P(I$ZM)WD!&L8 5+.?4]$W&,[*%'/GS9*E?O^ MB4[8PG3NV&.'MCRR6:M@:>68<(-B&:]4Q+Y_W=8-,>LC3TX-"CC-$$/0GLN0 MD<=IL>J&]#)OHL8RV#2%!W6 B) MYOKZ#I6[\.)]^BSN3-[XQCA)MO-=L]T\&]*YT8X3:TN![LGDBW9B'HG.< M^%$^S+-18LR86T-X,QN9< %%:)L&VJ?%L5>JB9XEKH=YJSFC^OB*P2F6ZHCV M>3'FLB@X9_E10@ICM:_I>1D7E .G6 Z[6)KR#$$BN_?F!OUU6"@D$C;/"!3= M[-<.QKKNT1=(Z-&JPM5;;4V:A9NFF9YFLZXU_5")]T;E1Y;ZHE=@9&Y M]9&I9FUN="YZ6GTV[Y'9>MRD(_/.9K/Y\7\J-:I%^JF-2U> M'EXORV,8F5T?F>LW5M5IV:E.,SL)O&= M833KN8IXATD66'U MC>40A:Z Q9-@#:F.O4BCY^981!RV%Q-6-D4GMPBH@W:4\!FLBYV=S4A%:RY' M<"F+*AHH=4EV74D^M?3M\4;K26E!8>]P4]1N2Z^.&YC%+B,0VZPL!3>^\7:# M,EHHJ8:MA6FF.K_72+M1/INF^<[N5&.K&;"K,>;Z"PEGUY3I2+96N-OU!-1M M:74LA(Y[QZ3,>N$9P[^Q4OM:E(2HW3HFH)*H\PEJ7E@2(8YWH?]!-&E2/7FC MN&:8)1EHO*@TC&W:;I)3-5,APG1X0/5[T:?<1N>V@;&9]E*2P1,\JR_!#Y?@ MS0XX\;+PS" +T8JTC*#$00L4,"X2?+T-3.I5T<+" MPQKZ4FW9W9I$00X^95<81L^P^'2'S$']9/4C(E<8C6%&CWF 2_Q#E@CX[@TD M(WL*\I6I>!?/AD\5G-/#H=O(]8E6/%X,RX^E[O*].H-_]Q5'Y-BH]D-#N!>& M:[ 8XZ\30X=):*Q,*9/*_A-(K]^7>\DVBP(\UTI0LM681"ST+ZHMJ+YGBP^8 MJD _B6@4J3 .GX^)JVR>(S8FHH%X=D$0I+\6$<3.SV_WUK"4E;#GOMFR'S$'I+X= .GN0+?W=(-@CP1X) G0 M5/,'0(!F,$73RWZG1^!OI/CO/#,('?CA_W[*?OK1\YCZQT[X*]_V 0'^/5PD!"?&JQDP&37 ?/:@HYSWR&#I^29 MI6EFVJS[E57Q:G%2N+X093=?:P#E)LY!CUI66Z,>M\^W1D>VK;><+K/,5QX- M-QP;EKQ#3,7C7U#9.T9-__Z=-<:V[&W[@[2"/U('V $&]L;B M0,6C"'AB25RLD6Z1Y=RH/O:3Z7GIQ# &I>/A^W&QJ^JBG[VW:I44*3:]1MF]Y,&-A*3=92>9>?UBU35MX\GW1ZY&6 -]WI=AJ)"42";/']1(+?^OW?,7FF9WNJ^:>J/F\N M'<2/%^5Q6>!QNNUC\,O?R>2^OR/$FW*DH\O[?G)6*?6GW>NZ<]%Z2%W65 RW MAN<]G4K]-3K_O]_)0K['_^]\Y$_SBP="S-Y3O7527KI7X^+Q7>G]Q-NS^>2\ MU"P/K_MJO;^ZJ%:[8]5: O[GWA'_?P,M712G72\5^4NB+*.;?;L@RUV( S]A M/>98NML?)N[SPYS%YGOYB0B9CFV2CO(^4S'& MML73=-J]&5[>WZ?[#,'/K M-Z]K5Z?3RJ=O^;C6_&\:U?ZK6>T?UST,B?EAYO*Y:^[ MY^["NT_.,EF[?_;8+W?3OK=H-I9PSZ4-]XQI&ZA A)3/RTB%7385LCG "'M= MIBFBL)Z8#A%-'+$D49<0*:$7N^V*!E/T)R$8E9.P7_W.Y.]L3%[>&9X=[(B" MDN=_\Z(#/%E;YV43>-^M Z46)IKSU.^UOKI2&05:69%E96WLWN00E95.W[S8 M>NO5(-5$SEU79NH*VU^QZI(XF1WN(1E4:^!UU>&8.'Z!I5AAK[3,MF&Q^ND[ MU *K(74G8R#A!2N2:Z4J*(CDZAP&7DG0_E7DQXOR8%*-DY^I-Y&T1\E8,0 V MZ!6U?_CX]ZX 5/N(B@BBI:B@C<0S-1%8?B+O8[M>$X&51#@C*Y'O%78YC58$ MI24K..5RH-.T6+HQPJI9!.4M\'9'/@4&O1:6OLDK^;$?4TX@6@*+K-(%TCB( M\H9FP'-H8'O@$SB]X6C^C!,/[:)'> G\L.^W#:J8@1)AR%W"K"P ,UV4=IP MZJ#4.UJ_9@G*%(,-E^:5\;N-3QV@A"3$421XF]$V:!6I8FL.:I\.J M\%KR/[!G'I]+#U\Q6A"/;I$5N,!Z-\&\C$_27GT,D01]\21AT6D8LPFU2=*? M\Y(A/!5U4Q9J%*84FF/L%\N :_/6O&P#6*D5&1CMG+@[S&M31JB"&Q?/@NQ&K'RDE+0-Q$VUBT9Q1 M45(U_(Z2)>O9@9TCI7JVHHPM5J$)C@",AF>8XGJBK/'FVMZO*8'#[MP%?FEB M<TJ\Q&PBV=JP5=#0X@#G53*#6L^\1*9K MKS>[#IYTF3]1[*6\ W.%SQ>^P<7KP0"-X'5:(U7#YX>$=PU[/]A"A MS$H)\_K%\H:"!L[\1"(76*K>3*%KFI'2G3*XO4U)Q6Y0&98]E48H@[*+1-8C ML!NU"()\UM(-GAL;5-*5]L_J,^U*?N_Z7;*,^@UE!:16LZ_/LU<.-UQ66)0@ MN#;LZ6WP7O.JA@S/) QO,2L8"-AE:>:TQ7G 7'3?84W?Q_!;2WGP50=K/2 + MXKND*<@C!_=JP1*NBX(ATK<.1V96"O;N#?[56ZDK3')]CDZAN$>0S"Y$J\H2&IZ0"HKG"D[JJ&2:LQZ@ZX,9_ M2/VC[+[^T;[^T3NU2\E^5VV=W'OFZ6^7M"3]! 0=9%^T^]10XAEA 5@L3*TF M4.FFU6QC%ZM<\6QV%ZCRZ,:*='X+IHA/$ M"(=W" RJKG*Y@J.B$^WGJ'*)"1EK0@:+ZF+ET6AS0]/@W0)W4H=4-!,VC1H8 M%X\0FWGI+[FOX=J=1>5Z?K%>-U>+0!B::?TB@6P,4!=Z!4I%'T.ID6_;$ M"@(C<@8ROVHF%-:_$32+8!>1!<0-OV9F:5Y6/DQ8BYA6 <.XJ0%F%N71@OHZ M,_4>G@9FO=U8=BRR+3>LOP,' H0QT708L+.@(IMLC11ZE*3^8_L3;L20#<*T M^\JC1HC.;IE-K/!EUGKO<%[?DY\JOL=H4;, =:B1$S0.!WLWZ MW=I@?)RL#/*7]9-Z\GPT+]_5S/I$KT2=9A5WT!IM"N'E_+X[(<0[YQV'(YZJ M-MR[:NCUQSFU!50LO87(5670K- =5.3Q6[?K#=#6M5IUEU>KT:\FSB&LR MF?\^GQ4%RS56G M;ZF#7,QUQ>X$>)PI6@*],^13[P)Y??!P,KNKIM340_^NE1V54A?EQJ^'?-,[ MG68U__BJ?C1M7:F=T[O>Q=/XT[?L03P*5.% CWK\$JSY+=.NJ:0U9U"@5NG MIL;X6T#1C&P,43[1HN'%E"-Q("L4RNNUX6!6;EU FP95Q.G[:,#WAD.E4M9D M+,+AUJF5FQE&!@)$\G=&B'QWWM;:&F=S17%YT4K8,RCS1#$BL&@L;.#C]#I4 M?<&EF(U./9FYAOZE#1R?CM;@_8$CJLQXCX]K?'?TK0M%\+"?' ,[:\R#H494 MB/.6Q%R0Y P@-A'VIPBSEQZ"=1X?UA5TR(S7P$_8AT-C?ZT-'W(W62=^_-A M87B^$. I ^2I=9)W9CWN[G%0]XM&%H.MO(M?9!Y M)6,.N_!)-!@+\G!?&^7!J%IU(^C/RLYN(DH4!+%M*I?ST=1!&5#8_DZ,'G+] M5G=66A^;U$D-M M7RWX[(Z L%5CX1$]HL2O4-+DDKV1[AJ13IQKS^H6[Z&=- 'Z!O MA35ET8BC.EQJD;] NHZ&G/YN[V* ?1QN[1!LK0!J&S'RKE^\]+QNDL@]1<+!_$ S4%2AXH1]151N]Y/C<-C1HY(NU8UZVQ#"NBQ@2T75#D M" )B@I@2N-GANG@8Q$V(3HL6 %B)N!*2+M&2QF.2Q4%_/:;_&>3[A>QHT.V= MI8PS-_W8[-NMP6*\L1S@&UA5G_-A>$M;>@4#!P;]C]30E5$ VBIC-N17'+=3 M2OG]4G]:3_F+;,6R1IG;I\7R0XX[<0C9>N# 0!/@0>C*%8Y3.0A!HG!;#H81 M'(![^X..M@D1Q42= #PH#MC ID+RW&X:M^JJ0=_>;27D63 (7RJ8!W^[C7U1 M8RY([SI<,U6$PI"R#3"!?TGA87QKO),/7Q4H0S5]/COL,^B#$+$')A06CR"Z M*''M6%#MS-8II,6W0G'65K*;0[*JA8%04:/TFI4Y9._+ S;=X/&$?19#2+GWL-8N0/"\\:7MBL ^Q>ZL:J2=\NU-WZ@WCLNEP5&A?;S<;(^,"-9J&*WX)PK9 MWPWC.&CKC:5F=D^21ZE5?7I!YA>/\\=.!4&;?K5>R\)%A:U+[HPJ_!V24SM@ MC2\$1:\':J_YQKD[&+B7"Y05\MM87-4..8AY;+$]I''^M+6:.4*[7.C!VI6@ M-4V=TQ,^<:$4)[+&)T M*Y>"F0CLBB@Z)NNRKL4NFJ8K,S1+\"[/W-HM*T2B,XDXFLY^&(C8TG,1"-+" M NJZMF;0B2115.K/(@E=&(3/#3,H)>A (#2S1UYX"P@X;'_*>H_1J_02:?/K M[:9\9@UEA]\)D^COX% +KU#P8R3K)MEL-#RMC]*UQYLK=YI1>UYC>K,X]&N4 MN1:>?;?8->S]:-\-\#J9WKO+CC>KS[3SDGXX;9:&-V,$>#SG;LMKQH7XGZ#8 MN _BQPB4MU?;'9_%J_&%8D=H4(\@2/]Q81^=M35].KL=ZL-9YJPX/_IE")([ MQ7=S9,:?V<\"MG]XDIXYYDZ^3\:K[^/AP M77%^'?6ETS/]NC^K%J?7N=.+(_>J;$V:E-UMMW]OI+[(0\Y49Q0P&14%&0_P MQ1\2B)W;!V+O ['?*1#[@T*KH\86+K^CQ>7C!,Y?;139S#QEWK:1B^;=>:EQ MI:GU5'*QRB5KJZN^>T=EF.V>L#_"B_B#\$KUSZ8/=??^(C5+W5AF]F(V:%]3 M>&UWTVRP8#B$(MW.P3 5 2&Z-1",2^S*2JQ7PO D",CN]/[$[_X;99>#PYOFL;MR H M6O:&TD_K6":%OYFP ,ML-GGDL1U8"=R(@B$R*X25F-O.WC;%X>HH+ M! 9+M330Y"VJ*X@4>"=J90EBEMG7S"(3IIX&$&$7E)"&LDADC\:1$VM"E2, MB^T[&LOBBR3RRW%NOLN4,6:*___L?6>3XDJ6]O>-V/] ].QLW'FCJ)$!2?2= M[0@!PGLDW!>%$$((.9#!_?HW4P9?IJN!HBA-Q.VIHA(IS3G/,7G,.@QT.^_) MW]XEND'7V2"*;;><,[>O"\GW[?A.)6_DSO491@3"*<)K_5UL']!A87;+_E9L MK_>]1%U-V^J]]MIVI*#L1I"@=. VH;Z!/XW/^#2>_+VB+S\B_ P@IS@S+$+ MS.^6ZR.M[W6%LX=/VWJ[MNGD1['DX2GL<@3V;R#]<%!_F:%_;Q<$*'AQ_*81 MU"WP/&=[U0T.@TT!]YN^3\W>=>_VC?*M1_(XE?T0>P]3.? M-MWV/(*VG]\4;-:;,W\Z2DC9)B3LJJQXV08*_'%[I^8GGNP5F]A>?GI1\%ZU M!GCVX5WB813684)L<.TI^9D^6T+Q%Q! C>(E[PR#WL >18>)++LP4O\;05#8 M!SV3NS_\N5?$=ZWJT-MO*6&X\/M=F2^>[QYF'^U6X(/VCR]LANVCS0XD#!- M/3@M*S:!Y2:"V^16&\+.2S*11E<&D^'X7H8FID1;D[^\!O)'=V@-;X$P M&1?ZHD?*754#.\B,"*-U_,"$,[%]X69+7N2&[6/_?DS/6#$ [$$TW(F:K285 M7$L-)6VE\)Q+<4R_\Z)Q@6K!JSM&7@JI)^R%% M1TH1F.)>\@:L7 7TE2,9#A48.*70@:!M MI9BW-TU:*=L"1'L [I6ZV%XOAZDL8735VX_]:.CV\PM.RX."JA?!K.-02$_7 M; B6LV9WY&AG%5L$& '$%0M>F-9,4?T1^I5Z JL.2_ERF@%:5U.O8L-"2Z!/ M4_O/C_/\3^B/F 30;09F C.[+^:-^@W4P)]C;;9%LTR^F(DUZ!9;8UKM0K$1 MH_,MAJDR-3;6+;*%&)WMT#66:;,QNI:-M9@*^$K6^T(_!KY?:],9MEBOM>\& M<>I&K.1J:Y_0L-33-C5@+Q?5=[PYDI]V[Z7+0@TD#OD + %:5S*@-QB\!-C/ MGB@S7^>G89H2T!\=\"@+:)IAWJQ?6T#Q]")3T]9QU^E M/6(6@AZX14,,'/Q_B:87+.BY7V )L&U*,52$8'B''8-IM!CR]_9AWN_HW_\* M;.^0 MX23BFK V7>>GE]Y[[MSW7+^A=]YW2Q\V1@B&4?[?CBI._]%"CLI5>U,$2WBE MECEU4I'Z?_^1(LC4W\?S.BI;?>M@6SK6EH#5X2>!-5Q+G," ,#JDE9WB$_X) M"+L=$4/);.Q%[7OW3KY;_]8+>:MH8>:6 65A0SM1,>=TV-==[+"FMA(X,KJV[<7 QK>;Q_4,6W6,O] MAINY[0 !5[1M(+RR7@*D'QS7]K8,')CWI_,^P4:U(6"V,FRI; 4,."X0JP1 M=<@J4#/I&V MKW9]\74I^[?N3QK!&>: V@^)V(L*'6>\H_>(_NSM"8F9S%(O"BD&,P!*"XBB MY^%M$^RQJL"2HA7\C@$\^?ME>M)SX)(&8B4 : ,&% M-4:> MY/\'ZEO#L.ANX%-NAX5O*D%V"R2Z5DARH6-Y2V]/,=]+Z<=I506@003Z>#+4 MQSW$]9)G--?VRMD"II0L$=Z<[%FZAV4>MR8S>/M.%_&N-SQ2'9K^Q8BQNZX( MO^(-"JYF@'H],6TX2Q^:@A+> *O ?_"KNX?OBGT#>] =Q0"-0O>^[UU@5K#T MDQF;@7V D!2Q6<1F[V(SR!H> ]F.QR=5P8:%WO8DY9XB?FAY/D&%' HRY_!2 MZ3QK>*9?4%]DGS_\PMC;FM=>0I,^#'.](-/"Z)O ::98OKO(NR_<2F[O308L M8KK[R"MR.O+*;.NNEXNP3>@,"D"!;_C5F'R3&5;[!2_735C$>&_ULXE7/GL_ MM6O7"6!;Z!:6F/<,%?\Z#AK)S[',0<5QPZ_"[0>='UXMP@RQ[2;#"PH?HJ## M:PC]AP>^KL 8.M-R(G;.F74W,(!$*'!_*!#R>V8G\MAM*XEV4#S\5*INJ7 G M*L-X4+^.O/_%(/%4MH2]:OLG@0&'..$)>RC?X1! %UX)^. ; #46A]RY99OG M6 UV(/!O'8]J_;_">=+>RH/@UA?0;H\O[]R]<*G+QX]:8+L=W>XES(K;[F1@ M7[%Z=H:C)-E0VYUV05WDYJ6\^2=WF_#,@5D7ID'L3^[L#5[/3:T89>,6F;)2 M''0JJ7E/TYHWO]*\\C:359=-Y54TCLP[*T7H%] FM_F3&]/?W>:JW6_S8L5V MU?(TU7I' YV.K/6UY&]=]#]<8M"%H:R M=U>!^Q628';=#B1W16Z[3%'-M-5]1U>SHU"#2IFHV/ M>P,O=62HD\POA[VRJTK#<;U 4I8P8;R"E"^GWM\LNOK%#+7;'5L-F0MR7M4P MKMZU\D4\(]-BO?GA@.47)I[U3Y(USPK#_3N*7!9C9Y5,"4&(>8OKH&ECTNF= M%X90^?4ZT7@7IW[/&WN_-/,1] K.J2'X'*/?\44]:*<#-.*;Y='=C@2J,RZO M%Y3*D!-(E>RSK-YN5[569E'GZ@.5K[B#$:?K7D($_@K( MGAXN9_&?/;ETP3+9>8C.(P/0G#912A@@+3 ;BE03FV^:G M?EF^^OW#<&E;J,W)1(^KMZA1&>!K#>+TX5@XSHA/T:@L38;=!+\'8OER"X MSESXK[0=5!1!OLX!9V^K5WD6G[ MG;V_6C)M,DJFC9)I_R29]M5@QONPF-GC"#\1X!4,;@(JW7ZLL7WL8X0 9>G; M#A6:9,BP%.7..>M?8GA=W*";]K."5=.P'2 P3#*[JYK7XE1QGJGTT$JCQ"CY MI-N0\TH.7R]/XU3/C[N7.-7$K5=+%&PWC3>PHW/91K@9X8 M^PL*G#!>4YR[2I#OEA5@WW$_;/.X7U_0"4H(.T9ZL4F0V<$"'$M9Q8")&@2> MPOIZP=/#OX9/?=Z-%V*R9@[]9$28!.9EIL&&4[,@+8UW#7\=UKL!FIOPG%S),7SJ\/M:#.IP0C M>BW3@$_>[::7#1;V'8-?7X7%)+TV%;!JJ")[RD[8R$F!D?ZF!O8'WD]ZZ1-! MZS4S-G05;>1_%R!Y4,ESHLR"LI5AOB3,>@$K.CK4H$P8W. @["V,]_13,JY? M[G@'CMBAW^FX"$P ?WO,M.>7#ZAAGT$"E;DN6S+1;:&*2@@4:\@U%!T5/JXR MGT'AS'[95';7#@H];\Y49+5$D"K'8/U",8VR'):K ',&)U])SH_]]?8W4C6(+OW6'8>RLR)!#M:PVWXIOP!7W,.DT+R M\*GCO"G/9)*"-$O&$;VR=@?$6.R4:0A$9W#HL*-5F$QW*"K^VEY !8K)$8GN MDE7,L 3!04=,KYJI)BBZKX) *M$-R$R"I7@=%J$B#T.3+)@I%W0L#L*"MF55 MPWK42R^(T.]P Y\+U E@W(<*1O@U/P%;,J#.[NE4BB^$$3'M]A'"1N;RLM6- C8OK GX$E.2E M%GI\>Z[-2;#OC?=!._[S;U^#MOFB,8P$I#;TN8JQ-<,L#[JAT3G67TC=!5:G,G+S+U45&- M#Y;(IE3U[JM>+O 7='-\]=S"_% ONU\P@IJQX/!%)PR1/=:W#PBJ'7K9?(<& M4/JE"53'P=-@!OA^,Z[7 N_\J;XD&#^CE/@#TL6Y(1IZ .I9HSFZG8[1[4R,-6>*&*.0Y%,LI)?8GB#WC#/P M-D L$W,4MHNV0[@5=@5%MNX#@/:''=YL(-_\/GOGIW?4.\4)+,Z=/WZOF/A8 M '^!A52D?<_ZL9:VW_=AVUEKJR\<]IW=UI7>/1J.AAHS8$R_8H_G%0@*P_@M M[8M77(821F6S-GKN[R; MC&FI@&)$:1L8*3I!RV=8OVD%'@'GX)?0-;T(3@A.BE\T:&QZ@:)CU_*D]W8B MP%1?.I/G6';7"QP<):RN8M\L^5[5[?]U!6Y21Y'EHPFI)CK""QS7L05-&7]OJLPTW=-ED'^^9WH_)[8(=M*7?: MZ5X,^EX%GWT^VR_ROXUVW4HCX9R9YL76/FU3N+PM]ZN10.K?UMR!N[__)F@' MWL@G@UQ'PF&9=KS:EI5;,"(HZKR^J-6TNY*=)V"SK ME9"#T-.YK_B;X['M>R'.:6-[G'M$K3N.#Q-;KQDR=M]T$GJ10F7H+3WHE6,E M-IR-.B6^H+H,I\L$M3!22Z_IY1834Z),-WE&&53B[49Q M.+"R,D"7Y/'(^KB/#%-"O(1@8J;:F5IH;NDT>8S'CD?.!U,[GW8T516 6*@T MN*'BJG#DR3/-6KW1$%)=3-7-Q$P?F/VID5SR.(\4U? M\N3I2+7.*ZF.2!(<@4]68J69SY6L)D^=CM3R:K.BHN:":><*);G FB.Y1H.1 M)_M)38WZ,-GLU!E,7252HYK4[J>:?.KTF;7)T!+:U"RO2IT1VAEO!NM,80D% MR\E0J4;D'9Y)\ "";H9, M.D)NO>K6VS6F.TS'\3[=VJ0<;^C)F=;*V7DC20XH+J_D916K]#!T (:>(2D$ M<](Y1;Z4KF6\H2<30$AE MDG+X>A%1LFLZ/LIR&[P'-NL,5156.8JC+;?%E&FNWVER?'("=^ ,694SR2); MGBE9!M.';*K?C',E 9S6&;H:RQ,LP>/KN9KAZ0YKKK#>; &&GB$7M%.FY=0L MRR NN2F1+4DU6*,)AYXLJTB4BP-V8?/@GIT_-%P99:9+M MX5R\I!<8NKPQ<&H)AX9/?2$^YO4@BM\(N< ^*9KF.!'R3#;Y BAN?F3@3[^# MJ)=A26$(ODW.@[+CVF$P;7$"#"5-JH_/*)5V>KWWVVE0S%A*]_FF56VJKDF7 MVJZ)$L*L>:4PEP]U&]O5[0(&";0GPW9COHF[LVE?N(4YYYYZVO/4C()R34=V MOQ?2 &\+O=?;L;\\,]ET;6 1V$^>$V?FA.60_??[)LB_?GYF?[8+T>QOY&7[ MDX5J7Z#+0GU(]/6H4&OW=$S!=L<&+!"]$@ M$7N;SWR4*NVO/]2CL>=4ZI_[FW:4_;RGY.T]'_KDQH 0PET+?X_#A.N?OM8. MTS7>U);W\M"W0X6A#][[R>4/>/G.*O\A5-X*5T= M>T:(Z%SN[US09R01GR6%B!_>(Y@^A3B& M+V[*CU_[[?;^\^_AWB9$0N!+$/UKAQM&+!__>WC0#@PAUN"6_-\/[,='*7]; M3&_KHYJM8EX\9"R\*_U:;.$:SLD^?6\J^2-,?"#B\"O(!YTM^K 3S+\N 9V[ M&(.?_Q!%21J/[Y=FZ -7_;;%@A=$]/.B;'-GN[(7'W@)U?G.5O=9VO0G;,,> M'GBW$^\X]8N=_8-3=@#XGWJF[\#X\X?Z!=7>5X':BPM]&$7FPO#[';'V\8'U M,0CT'ET)EX3,.Q-_N8,$G>,$G+^4L(#F-K/\9A78/AI?'GX_!UN#2!5E(8V* MV\PB7RZDUU5A:EH9#2S3>V;XG:!=@S3:M3-J068.>QDY2SW1BJ?)/_M5Y%6G7P)I3@UB[3IT@J9IDHK9P:+ MO3VE$.0DVOU?CZKUW5X*W:7A\S^/:LK@QRN]/XJR]_H_0I]@ YMP65(=P< PP,#F]-A:Q&E!O,NE>AD'F)R-08&!B/ M__A%/6&IT_*>CXHPD5WY1>W*0XWH)"GYYT/HZY\E_QZ"(R.#\@L=5F10WNK@ M".\56Q-JKXO35A9]14:0IXXR9866,"*0R=_IU3K+9)4]!%05_(O#3&KX/ 4V/;>K7 M_DT_F(4?=I7R:^+!"@VP,\&C*LN1C1_9^'1W37AZS>-7.UU@U/U(E MAYW%96,M \Y)PI;5CV3;UTP#%@V6G*"ZZK:AY$/HT9&)'YGX7T8'V;*BM.V' M&V(?03AX92:4"YRP&;CIM%94G.&]V/2OJ2!::K+NX9.FRL5+0C\UKS 7%K)7KCF>MYG54"TXM M8A-ZI;49P5IL^H5<6\KE:,@10+? +ZU:W(T>[FL;K"4 =!'TH%N3 W\%X]7( M51*Y2B)7R==04]@MTP)]P/NE!ADZ>/(TT4LT.+[*,_'U=)B<+PUUM?D*FLK4 M0BBIQ5IKE<"%[D(SJX*(-&&Y;:BI(%&4=N0KN2]]YG4^S+9% I,ZR$*=,U.U M/QC-,RHK7T>E2=JII)*CU@TD(_3TF=X6E$'38YV'$K54>PDSY-.7DDPO MW%)3N9]:-P^@MEPH(>RX3](9;6 5%T?)-2-..$S&D)[3+_1"\XK62'ZSI"-IQY\A'KLET1^;V9R/_I^4X?_;"(Y%W MX1SH;8+S*_*2SC0822GG>,9K 4#]5)/*2P*-GA8 _I1TIQ? ME:5[_J2'J:$578]_Z>OQ=S+B%R;0Q[9&'C+EV7]%T'+8CLV$M1"VMA=$T7(E MOS^\84O1I=]C7_I%E90B*^*-*[D0)AH^2H QM(\13 19TP-&AW-5P6,KB+Y M; Y/K-ET+DDU8:M7+ZPYD8@LCV M)KZM5+M*Z5$7L+?A[/TA9/F6S_%G!%N*Z605N5E351VO]?NIFHOFIS1L3 Y] M:&24ZAJ9>/>D?-1G$@R.,>28)L&.']J^@^PQ]:W(L+M*C$1DW=V%'+RX=7848&0L?>'UR;!RE<'F[JR@:#TB1P,[SR]/A6.1E1=9>5_$RG.$ MU57$X[>4A7<<5Q$%#SZ^E+R&M1@"!2NL7I>)"8E(U[.Y=$EUFPQ;JM>F6%X! M,M&KAY3 4Y&)&)F(=Z2YO",X<4\LPD!%R U1@&(4H!@%*$9B]8_%ZNNR=-5@ MRVG;6B^Y+F+5Y@6VG:\W9![URB-A3W@*CRS,R,*\;POS'0)V%G9DGL&.S#%A MVZXYBF*\J"6* SDR,ET8Z_1@$O2SEQG)R\O+RS"4_ZSL_J=HHRV!3_>O(IB2LQ,I)H%OZ1 78N.#[FI" M&#EK2:*D+/S@V8!K8\)L9IDK[WMVS %/@5 %FX7K<-]W@(=L=<1EI7XOB[:J1+7%OL50J=1<3Y:;BM%1/OZ MP7TU;(-*=Z;I/--5^QEA1@VZ+4K^\0M])LZ(CJ,/8H!3-?##\]VP<<.U;%

9^"+00(M(Y!F0MT<-N,Z8(JP>AXKPY9#'Q9!,)$ M4(R8I,\T M>*^U@2I@C&)S5[" '(#8 .@L\1P[!"#',Q2\;M9@0J;KQ!0[)@SA#Y>&DEU! M%>RPHLJ%.* N6S+1;:&*2@@4:\@U%!T5EK_- 2]=A3/AGL%>KPUOKU@SXQ\< M$Y[;6=)/#=7JJHPQ"W4]%Y-D=M(J+"8>Z9]J32&EQP0GMK8.C_G)_]QVQ3@O7!*P.H8 7(#SXU!,8XA?]/GAL)G M>E7WP1^&DB&-%*X MG39T-V=9H3%Q)=:$%B/UY9PBJ+519?/[>L#5SC++=%.SJM";J<)HEEC*&:S- MUI?P+$]]KN%9/@$NMV= &BH+25O?CQ+P'^5@$M[//Q4@4!71RX/;GEP\..L8 M:PF 'Q:S)AVB#\0M%!T:XDIO_;'A2ES6Z@+M UA3SP W UI(D T&2@A,ASN M_WXS87XI?78TMYJI(<$-F;HP:/& A#8(8[003+K<6@O!R=%Y.(IY[9T+8#,X$;;BNV M T\7V'YC,'WP1*"NC:6@B*HPTA4#C(!GL0B_Y6D)0"*'A..);,4072\>R9>+ MH5+J$1[YMWU&3@*2<#PMUO\;I##P'4N:@&?"EU6 ZA^N+G9F8;'MFNZ'7S_@ M+?ZJ\X94&9@,0F!4C93%K_^ ?\(GB1HX->BYFOQ]Z%/!X6L#OQ6"_/,&[BDL M$?JGMHN&+4IFX:R]?__[O_9GO[MHBHNF9EH_0Y_TWK(F_J4(YKG;9"D^M"1! MC0MC\.:?@K84UG9XGY-ZQD-W]\^M6QOWS@%(IN0_8WL_P_TXV4Q=6,7WMBSP M[L4U:0R.U_]:^)GGR=Y^:/H0]--O'[60X-,/GNN=C&/.?F( ;:YT,$>TA^^. MX3]";&)!Q/\'6\\*>U#,@$&M_[U]%!1_]^,5ZCBP/0,"9>_TE CH5?NV= M\4N4>;BO)]L%$# >G#.*/U.SL*SG/O'[?NPAC_-,I8=6&B5&R2?=AIQ78WR"H$8\12($CR>PX9@:$6,$&_[PUR.$ M/O,Z(MACO=9.J/G.)E^9DM1ZSBVAL#P>6>;6";MI3BVF;C>',DTL6TE+YK'3 MD2.''JUS:3'.ZC6_A!513X8F"_-ZI[FT574M\SI=XXOK064)M:B3H3AO M&K-B/I-5]3Y%8ME.>5$S:#CTY)B**U$79(P;()BN9CF[J MH@=:'&,7YI#O;K-KRL;+5L,P9L 76#6 4.<#288"BY;6I MS"JVJ)FV:TDL>&-:,T7U1\B;E8)&3+.YA*UB-:Q#R$979@2@\$E '9N!ASO M[K@8WIU;J!C)Y;KC-( M9\7E 2R4IU9VNNHVK[2!OZ?00(=IL!!//97"5>RKN']YJJGIVF"$_:^?M].^ MKG7=Y%VA;=45_RH=J"J:,+.EG^$/^W.%TCT095#LB;ZX#)4S3Y407,<,/_#U M".^3 W5C[W8Q&'.JSSE6.+%0=OHK?V?X"Q"T-PU_.3Z4O8'O/X\_O8S&\6^V M9/0Y07VS):>>L9N6%;B#)4>$_1V6# @;^YI+_MW0S,^63=^":7]SD4#;@1_^ MWX_DCX\N&'\F[RLO[B3 ZJV@W!.7;^CO'T;4?G?4OA\;]V)MS2U98Q\E:Q1Y M)K&O3=;0FKU80/DCG_.7/V;D$E#UJ?DOX)GP%LN%$5%;)\3%"/>SE_89V1!0 MD?[L=5\BX<$W_.ZQ'LVM\AMVD4DO.AW3:W8]DP[;M@?LM!T3W-\7>FW>R>2G M%E/.%*I=M#DL-QK-#^^/ Y@WQL'D(OB0'T1S\1KN1+*$'@W"3#&<4;8#7& :$W+.M?H M@0V8=70^OG!S"W<)<(#P<"!)O59;\0L88VUS["P%ZS)E9+^43^'+N/XNED1V M&^?TW0#1QQ22D"' L/#'K+20--/[@A?B%T#38"V7L?)R4V(D1NZ073)='59O M"$URBL:SLILTF?)B,!].S=EZ$6_R":BB))\2Z)5*^D1,?N],?@-'_=TP^<>T MC?$R>1"^N?GRV%IYS+4 8KB4]Q<9@/\$/]F'01V1G?7$[Z\(*S7-=0^GJES!H51NJ.92F7E7H= M%P9T>I65DLBY;-\(#B(XB'PO']>&7H&#FEM-KAV^Y#)"GAS(]011C*LWM'&6 MJ--@D_4RPRF&OJK&"[U,+;$$<$#XVCKPO?\+6:*>PSL4SJL/H M2WF97(Q,L].[H?W!UY!YKSF:V1R61/+*I%+ YAA,$R,\MDY>_KKGL]7OBC"$ MF?.FY>?6F,XD"FZ)K*O(V?*G2HQ7H6+'7& 4*]G.\?UVNI L,;G-HLW4VU5L ME;?'U8[\\9J>OV]@%;,LTW9-"IFC%NL6NQ.7J#1YKU,2_I2B7O,O1XCP[1$A M\K=<'!&F5F6B,3,GPTAKKMQITVZI[=S0L*FL "B5.D@.6:>LY<8TQ%1-A8A M0$2XQHW33:D?;OD5U)MO@5Q?%J8B5\NKF'0.AIB^T=>STV&;:3O* E?J1K'< MN24,+8JS>98LSQ#!G@I]=Z.O+0/6UH 700F 0Y&#Y9LR<^1@^6UFGB'U_HRO M9 TDLW&'4MPMN=SDAEZ5GE&>$"G7M-5,;;4>EC)6@=5HP,SP&H=X0E#DX=PJ ML!B>8[G>8N**$9]9IFQ)]N4N=SY[@7=D/GUV7MR-'2Z?O=R[0<>/IASM.+-H M- *^#)"RO)+3Y**I+M5\OEGNL46:R^@W1,J2V.*FI+Y9<)*+2/)JG+"1$2P4 M!M4>[ E-4I%#)D*42SML/GNY=X,H'TU>>@511#F5'>'U8I(1:KDNM[+&V6[[ MEC=:2'^ZY'-I%UE7JDZM6B'3!KL$B )U+^0)(U]#E"_@T/D6Y20B(S'R^+RB M!G&TD1\JG$JI\T0/MZ:587Q@S>2 M>"+1R%OS31GQ>WEKTG%Y*"'3/J]*@_ZL5RI3#D'>\#IWVLOG,DIUHS#E\FHN M2@-*HA4:,B*0]F3R*8E?/F+VL\V&"M"U?L)F0*[N^ATN1M+, ANZZ_(CZ"98 MQB9H7AN92Y&Y]*@.& AR?WTQ=8/>L6YVCW/!SYH4-#NB]QCX15 \@X>+W*:* MZ'EAR)6G3;TZ4,QIN^954P>*20)]2J"G>/BO""$BA'AM 5$2)K MDX-ZIC&I,0+5*'6*9EG5*1HB!(QW(9ZPU&G([[^^E(.$A3TZ(VOKMP#LLQO7 M7ZL^W6>OZVY,M=OY3&K2.=@I5L=,+U[I4*J+)@FW/ALVQP/9FQ^ G>19V(EX M^-OS\$FMW^_,P[=SMYSG87(D9Q8.:8PYI3HOCZ;S/MVPO?Y+4'5(/6&)U[R> MGN;P;Z_)RZ]P6- (Z&[X\";]FT[DF[[+<_%%\)Y8L.@'_1>=]7]L5Y+Z^U48\$LO;;I MTM4;#'\@%!3,]5P &=[1,7.0QF:JOMK076V=FI;,WV_Q'#+:^0O30Z?F?O]4 MIY'_Y?!HY]CDMG/]TA\6DP'47C#AGYG6C5K-T M=9-JWFZ'IUEV)(I::ZBZPTX"JU>U?KX+F\Q3SZ=UY'8[#%NV!];T/KP$'35Q M[W]_GVE=<-C4/8"\6<YF,23:LQ>YWH8I;]9F12P. MF^Q4AIMUZF+\],[DK\OB:2[\#]$+07*\KJP+DV>Q\ M=[[A^JMRC->_OFL!!2(+%EPT.G"U]7'%-.0*.*L1#>5X0=)&.=/B;.F%5O4K MN6ZU- &)6[W);,RI=3T!N <_PSU;1-U3(^#&CA7+=N*R9$C^LN&&2_&A).A@ MA*GY';3W](M 9XDM)Y(E*49,!!-90WW'.RX[I@OKF&&"DP&0Z6K:&KQ/-($9 MXK4:'($#!>_5!%&%[P'TH4H.V#G=@UWPW]B%M8%BAB2-(/#'3-?::EO;9MZV MY$_MEM3\C"=?57?]OWRD">.Q8AYT]$V-28R0!)RGT+@VXCQ^CNEJ/$FS\Q23E[69F!=%HS(\ MV]&7M@2EW)^)&RX_+#<'@\5&W*27YSKZIK!AH32?*"ND.Y4KJX+DF',LJ&I[ M.-)TK;WKUEM+U2MJ6M<.4LN2X/Q1"MEF^=Z_V8' M,R7%3,I39+XD,)(OS+#F&HX\67MO7"[6,P5$890$0['T,-&2O&?>JDMNWC1' M2X :0#85#0"CL@)XV,,E^[4^N?G5:*CW)D294SK5A&I*-;607_H@JP C:$0[ MKXSS>EVCG]]5]Y56,_ON$R#!XYX#!8KA6"Q?KV>[Q4K%:\1;K+%T+5],5Y@8 MW6XS;'O;G>8S6MR>F+U[DE<$_Z])GE0 GPHBD*]^%W.O*3J8!#!K5S&O_:VT MTX)])3AV5L5%GF. $H&)#."^!L2Z_\>$!^'0900?+FC@D;Z@/!), M7%"V]!<8N(%)/H(3\(QJ9Z+8^S-_ODGWX[8XD4:N!@1WR"RG_" J6*F+-5"; MR?0<=S)5Y]Q*D.^E[3'MR=DWS!1?3]N*>F @N8;C?7%[2DN@#ES?V_ .E_KO M:.#AH9W5KN(U;EJIYU)]IBV:O<1DEG;I"M"NT,3S:8;ZODO W\2K^P7>X9J\ MV%ZP1:*VLM%U#IDWD&%U9J%ZNL:EIYM+SC_G-IUT= MD",@7WM'2HXE&':P:8'*]S[0V1'LY_7J/N6PJ%GW'5Y9?W:WV\^^)ON$)7_/ MGL91L^Z'7_+W).RH6??CQ#-\-M-&S;JC9MT1M;]%[5$/[^$7/?ZHA_?[C_DA M>GBG@Y@= 5Z$@8\-Z/$PQS'HP8B2/[YX>=.HF_==QE:>.##W:A"ODJEB%5%4 M1- 3*ZG,QGLU+.RUG7PBR:C7=L2E4?WA4RY%4WR]6DOHE7730MJJPU:R'97B ML*MP:;M,F?-$;;52UR-156DNN12>7U.%_19E*6Z_ MR+LK) -7B&*72%V-B/11%OGH158N$/?[$1%(PV@52QJ!UX/-;(!-,4?G\H?3 M),K2;45CYG1#%L5X/;^6FGZ#9A1_2KS:0>-KFL]528"Q95Z([\S;EX.@)&$$ M;]Z]O_Z%1L44HF(*#UQNY<;0]X%H]X] 7\.UQ(E@2[0HPE RL*'TEJ?/59V2 MBCUN3-2GF*HT75X95C'47C3]ILWH$_%JRY (%2)4>+02*U].(=I(ECD2[,FE M *&8BS-S-\GUN;*<9T;),A4W]*!M\]:$^@KT;! DV3;SPW<'W@+#/+F00 M%5GY:D567G%/2J-YMZ6VBAE&:H\1Q-62^&0A^_V8T<03BKWFGXS8]9NR:U1/ MY9/N_-*I5'DBE?-)1NC.6YVN,UXLVTV_S_*;=WX'I5/NA,5&RN*/)X(][Z82 M$N3>)XXY\W\%/X>1_,]H2M+_GIF^[^6GEZ6E+*2C#("]R>TTZ7A0#2$@\VUN MP.K,X[Q7/Q-2J'-AR60EA9 ^:A M6S!U:*DX$S^5,::?^!F#2AQ@2$P 2&;!#";3@(L"#Q@%%7?V$R$+IC:"%!^C MO:0X+P-I-Q(0JN%EN(\E\*A1S!%6,4T1/&Y7)/O9?T9;DO:3)+>1G#[O*Y?> M0L4!IRZ>W\*T:RL&K#J4,?6A8@3UK)7;G^7S%OI.\'@/:_:XS\NEVB'"?9:[ M.IZ6/]F]!8D:L/*@7C$YPAHC^]W^]"_KW MEA5( AS\25#N8H=1O?'<-_A-C$@NK5 M/]AZYFQFQ)OLQ7JR$F9WFUY:H+VE4N'7WAF_1)F'^WJR7?OZ _Y,A9/V"EM0 M""4BR%#@)22%\0F4$/DA-D[RX\10D#"*$E'JI!1"G!/XS5CKNDB&[\VZUI*= M9W2:1_G$\4@N8YAL/BMM.(6=S[E1LDN,95@" SVI[I 9M;%ZFG)0IKR0^UW= MS928[O)<#0PUL\S6Q4T_C\2YJ5&B5P)'"+!:QLGKFVAWVM#5;H'K(GF[20Z( MK+""ST1/"D%46INYS4N))8?U>F,C+522\3DLK'$Z4YVRJYT,X0X1/V*=*5DDUJ]FX(\CG2FOP\?F4K$XZ.61=+)2*@](* M-1-PY,FBDOF.42FZT[A*-!2"$-!$(S6'<3GD\Y)=MT M2G"FZ$D%%%JKLU(STQ.0>"?=P$N)^,"8P1HDISLE+)>)?+K;QM5,O#5P!+TQ M;+1AP9"3G2IIW$!HULIS=9[*(;DYK>LU6P8C3W9*Q3)9@I9F<[7=MDK)6EQ6 M\QDX\F2G\-5\RM<65(/KIH=-84 *$P'L5.+,3JG-=6(RI3!2;<^97EU.BR-[ M B=ZNE,*JVMX-;$:+]"8C5! A3PHJ5MF,FEUO M B<[51"K&+%N2"C6!+^EP9E"F*2[G9IE-2U^U:KBLG"THN+I\K M@X+WRIB]9@LM1F]V[.ZED<,,JLHE$V-JVL9?C,D]WO MIF?)SKPJ=QD=,[-INL5.91X^\V3W$_5X'"]P39)Q6W2Q3+0D56'A,T]WWT'[ M&Z,T%5RFVY<(VV3<3+P,'WJZ^P*319R9D.:XC,:I4B_1;<:+WE-/=M^H.'FP ML-R:P=;IZJ"8$W/SEO?4D]TW-$;+3-G9"G$'C5:K;:>3YD3FR=,]+:XMC5:( M5I'3XU-CC.HVVP7G1)[N::.D(^7$V,PC6*$EVSI77K8 15-GBN6D^RNEF!I.8"JM!J0E&GCQS5& XMLB0F$H%AJ.3)P8SE&4M6QD0#!T7AJJZW&WFF6+),X/ MFM[80][B*2$QPD:C)$\F4P#,4SC*IP2< G/%)6HLXLD4<3*3E)/!!2LYIE2E M/QQ(BR%>EH2SA;.:U),HT03V(4+DARLTOV(;)?NL M'%BLI76%MNR26M9%=)U-U2=N^JP<**V%##M<+"QKE="5+Y2;%Y;@V.%MB MC<#2<3:96J^Y]7(YSBL8#D ,ZG0PSSIM3 UB.W?I:FC$PS M64N:\2P7YS>#Y,9PR7A!/E=BC4MA10KM= 1U+HQ7Q5YC2@OD64H1$;S=TKH% MA%L#6&V097H\39\M7CB#0OLRE;8\Q*87GN5&NMVG18S*9E3F)* M[)QN612"T.=D%CL0DE12R.%JO)CL6\4Z[NB+LY*H0NK:G&^8<:X]RPT)96,0 MQ8V\)XF :1V4&//K2;U:CBPL,_8;1VY73RJG&(HC>:4@CXNO>;;;:9TI MMKA8.F+:K3)S;.S0_")O=J;->ZDS53RNX+6M:WV-LK?7+AQU?"0UR6%6L&ZX M8LBO%E(:*//49&''XVK9)E,T)= ,K@JE54 M=^KKU)W"4L]D\I9WZ[XG]1E)[CQYGU^ZYJ:!3?>W ZGGQ$WC*^YO!]!GXJ9% MJNYO!Y!GZIO3 /%,H-][!R(N0)^_.1-0S^A-BYK=WPY$3!") N(Y]>V5XH@+ M(BZ(%*+OS@610A0I1-^>"9 ;I[[=WPX A8AXB!WXS:S'^W6/4M_>/0IW8#^N MTRN?^4#^TM=JB'Z!3;I;L7&)+=G6J:4^7'V;?$Y];J%:ZO=I[ .UN"]8M/BN M*>KV!$0](R=YT(])0']6#CF2X9$,_P09?F'NV.^,_!WP]&(2^L.5Y,GGQ'6W MY\(4XK6=_PZD\:T=7S?;@-LXOBYFY$0VS3T@)GG=0K 71LR:Y'P'O+P'PHA$ MZ5V21B1*(U$:B=*[1$SJNCZ+:XO2R$D3.6F^G9/&KU__'12'>T#(KZ539@3+ M6H/Y1=1Q"^KX:LA!BZ*KNYK@2!%\1+Z*"#X^G3HBX1)11R1<(@+Y%M;[>?AX MOPG_8HQ*9-5'5OT+\/DX@4M_]27!LO_U5:"5>HM>7ENK'Y-U^N_)XB^E@ST. MF?C%L2,JN88N]E!4\N7BO+X*K?@V_T/12H0HD=R)J"22.Y'PF;D,066$U3&BE?V3]D62+1_7LPA\*D==;^.C^#VN_00 M69<1=;VGMDM$71^K"!/M6\255XL3CHCK8]'%T;Y%3!F)ROO9-[^$8+1O$5=& M7'D_^Q8IL!%71@KLG6U;I,!&3'GMXHT1=7VLY..WW;>[RU]\^?*"\-Z0<6TP M'*#/[*T0POG4M$][+W7\ZX4?H]^/M]&S+X5N"(4OT2K&]WZJ* MH>BN7O7JJ/%!%S+^E39ZZ755F)I61A-LVWM*^)V0FEK[Q!0\5UTY!-J<.75N MWILJA>5&%G)L\Z M6MR6Q)\CUUI+@G7<%"V\97ME6EV/::41#0Y8D"7.EL:N M5E'&TEZ+M+IKBEV[A^>U@ )5:ZQ4 MX;.&6M9&!;R6J8VLX?*@\27^&XTO7YF>5UMGV_02_Q'VMIWE1R@+4(1F,EF+ M;G"R6$V106_CU%,"(4_Z7D9 \ 6*\]P"!ZY>7^RO" C> H*]K,3] MX,,ST##MV*6U4"'2JFX5.;RO#8M) C;=IG[\(IZ0!'H"#?^*L"%2$F[4RRM2 M$BZ/#37).8,#UGP15U?300$IB[E&+:,L3N38V%MM2M+*J]98[I;C;SZL@9B00O M0R1(1-9"9"U$UL+#(<'[K06Y/IP6T#);4N=B22XYQ7YKBD!K 25__$H^X2DJ M,A>^9IN\&YD+U^UT%ZD)MS(7.C:!NNN\2*O$*+,6)=[ ]#94$C#DQZ_$$X*D M7E$2OG8^FW\EG)46DF;.I%',D<2)86JFO/ZB&6PWOB.^_["'^[PVWE(U;%,.S[0W[PZ M3CS@U?%;QT4GJ_5:"BE**H9)!;I/MGK+_LVOCTDFI]!(8I!@\AA*"U,*66ZF M]!O'E;KV[?'7B;M[V(CTFPF%SP@;OS<]\<_#\M+'D2WC_C^!.!)Z_G4HJPY+/CZ&\& M)9\1['YW#JE'P9+W.Z7RK9:2T\9VF\-RO52F6LG8!D\#=*%^_$+))RR)7-$I M%<'+=U)5;I]W&JDJUX&7\VZM0JW>F:CFC&'F$U(R^IL4/EXU 93 6W"4>,*I M2%.)H"2R>N[ ._XFE% )9=/KZ2C2%2U#U!D7K=OT+:V>!#.?DEVUFV+J':.U M6);/5RC5UZ7$_61JE?)>DY/ M"#PJ>;H*"725Q%.*.@W4B>R>!\J$OJ7=<_-TY4A9N0Z^G+=[A&Q]WB"S[I19 MD_*P3?8M:M:'J@J\SD>33PB*7_P^_Q,O[UE+ #@ MBP&B"+FP-_ <#7*Z(XR MNC_$WNR6@FACY/U2 \05,C?KK%=%=YUVU'EU@XK&N%"LEF^>TUVHJ9EI/E65 MU/K J"[KI9[NNMF[$;SEFXFM$^VIANY5V#BV9*6Y!H+9,,U>0I>KJ-/R3,AV1$>/$"Z MQH7=1]_)5_08>/!^3U&&G*77"CO.,AFL.&PDBLT^VI$!0E _?E$H%J5L1 I# ME.;]> !QWM63:_;*':V9Z*J8028GPWR&&U0@&, K;I**TKPC,(BLA\MY?E\' M@T$C7Y;IT:; "(W,.BN/21I;W]1ZD*>N5=:&^H3+D$VGEQUK[95G/(B4[PO? M'TQD.%3"CHTL3@_0_*&.^LWI@@Y2MT\47C00/IJ8=X6U37> MRY-I+)5B)(7OC-P_(8' M:2&)$E\O4XC2IRIJ#3>[C.=YONS3X%)G, MRZS M=5EO#Z1F?:4]'00TC->SF!)9+Q$6=8?O26_+S2)U)"/&R\\.LDITV%< MX)2&6IF5>J9*C* 2 B_*L5=5D"^74%TS#='49Y*C>$0AR)8DZ? LHHSJQ\VH M_A-6W1*,1&]I)>#;=+=3&K&)N(X(I6I'(NN97K%URSKFD'?C@YD%'FMR=:0F M3@>:D*B331Y%>.R-6U4\RL&-HNBC*/H+NR5?@0M^*BB44L\4$%T>C..=;"8[ M6=XTA%XI]*6YGE(1M3V26U:U6M"211J"1?+'+RH1!=!' ?11 /V#8<'[_0>S MDBVM2[D"UV/H*"" J^G]7P9_[ 5Z" 1%:DE*9'"#,?]I@: M-]5*@\1->^*T,V1A+3!N@B/Z,K6&"0BLR$R&R*SX0'!X/UF \]N M1N54;IE ,M8B2Q7Q)K?.>$X%>.^()2*S(4JZC9)N'PP>SIL-E>%T7AK8A0JB M.%2\+,?5X_^+PF1N'*T[-*V19,7][_]$9ZN8;6K**/8/Q/O?0]#^B]&\G[SXWQ.5 MD"90[!+[$7'(;T2E?@<&>3%J-6*0B$$B$?):&EG$(1&'1!SR,$K6K?P116,D MC3_@DR@:#=_N;4FV)%CBA#9&02[VUN0Q%.+QS>$N$?Z'\)?\-K.D(VE?(5;I[3+W+'*=/U\&B:W7/6#Z0 M+#B0+"/3!;!T#W+U?RYG%7_R*N])@*(\1QOYH<*IE#I/]'!K6AG&Q[7?S\*= MC<;VS_>&UHDH.V$JTSB-Q*V!3HWZ\=5F(,-9)7_\2I!/&!4%UUW1V'QP+@^L MRCOF\I-E7S^AYT)L?M$0.I99YM!U5J<0:;24Q4IOH/$4#6=-_?B%$4]((A5% MT47B_D^OB>X8"+ZLN-]9LBBINSI2]2]XA_;@2!!)OW53]VQ' :Z]P-S%U;4<9K_V/% .PH//SD*%? MYF 4VP[E_STS;J_SWTY( M7@,P#_$10?X)E[@WF]V-/<\P9@!I"VEX9)I^1D"'A MT4K;/8T)KF/&D!@"W_MO\.+P7^^0M[/P61G,0!-FMO0S_"%\I/?MPQO,8$74 M*7._CBW>X8/YOR)%SCSSDI+C@'Z"C[P-G;V8AO-ILZF91ESPI3UX?TS9HD), M@+#P N<>%]N["2>C9R0/7%0 P,$UOS2*.9(X,0"MRVNP'@AI8!:6),)@ 66L M@ &G&6[^:F,>_<,GF+$,F*IC*2LOK)?\VXZUP:N=6%4PW#& -=>"V]4V-1ZP H MC[GV\UX$RL=K1U80>]HHC(H44EX8Q?FD.]NLVO+O*(=[&B&SFDF&+;%PEBR8 M05HS1360$$.^/%FM:AC)\&I;SKH.^/Y";0#A)H%%S\#+',N5KG$Q_0Z2@9$' M$RFV#.I1@KWV"E+&A+W%Q6;@1>;(V_W=H<*G@?/SSN681^S84K!C5SB<=U;@ M?.746I(N@+\:\O[Q-;P%HGO]##E&Y+!6>V"I=;+:ZZ>2%M9QEC]^$<_4,:O[ MU BG 6C>CIGC6%82O:@:_R\X^N01]G,,[O08P+RYA&0=2 -7!Z@U%1'G<"7VIU+\>&\P$IE\3KT:P;*GR^P]WP3/' /: M"G#H)[QZ"#NX2"PY]2KA=BB@[@9-%&O.F"C M@[C10:2>T0B:+G@000C]5379^]R)J^J,#[CDM[2S!USR6WK0 R[Y+8WC 9?\ MEFQ_P"6_)47O=\F_F?+UZ;+I6TBCWURD:&KPP__[D?SQ493"GRGR^*+\IBFD M;Z:'P;<,#][BN]_!VK01^&-?$JR89(RDT:DG.;SZ&$:$_YB$CWV4\%//J2]. M]_"2Y)"ROY*NXG/FZ;\7/F84>4Y17_ZO^S)1OOCGK.3-<+ZK MQ?*]M[-G$=;$EK;7VQ53]+YV4.$",E5]W!8T*:R7G2J:9$G6YR@C3<=RIK9( MFYWZQW. ]AF]/CZ.*#@3$AA7G,YHH#D;M:LL,TI*:'>TI!R@WQ-"7B7U MQY=YG\T/GX$#U&<7%KH0#OBV][?& >0 !Y _Q(%,JD=02K)=Y)14QREQA"N/ M&Q\/$/YM'&"&&([@;)]3A6FW)TP'/0EM-@$.$#]^D<@%Z]=\ADWWHOIS&LL#C0C&! 8Q=)=3B1X>]XB3#*C;&P)G;*#+:43W8^1\ M0?4(YC'RAY!5=R:2%;8G/\:O #/Q:74^IFVYQ.A%1+*$.3I:,S?4G=AT84Q- M>WQ"[)!/'>1//KI*O^,?->.YVS+4ZDD:M)YOB5%,&,DW]W[9I/RN@AOFFRX7V?"QJ=RWV>"_),8-'!7.U@?M,[ M]J9I:D: MF!:[E+2%5 5SG)SS%>%+W907C46;RT_)MF6SFI1-R#SF^XT3Q&MUB;^>[ =' M@G\9V7V/2/69:[Y8&,";-D$$1!<&(JA6LTOS#/[(++$F2L1ZH^:GC4RUB7/. M7&_R>( _B=?NK1Y%PTI\90WK'E'JSK;ATL 5*56?CF432Y+.H-DZBS74]G*Y M8G2<'?6JQ9K+$$T_I0-_0MZ^>?MJVE0RTJ8B;2K2IFZ/0#G3MG53*(9Q$5C3Q2%?0-UBHC4J4B=BM2IKP1F8.P9,-N,FBJ"??;UT4PB[ MGZNT[XYG-&3<5T -+S8,RQ[,$LR\.C21$IZ7543F20AJR2>"(A]=0V--1]!B M8R]\\FSO@DA]N[KZ]NG!VY]W_?CI2_^N6%F3G#-P.)@5<#L^H!E&&7;Y&LM7 MA/RJR5.>CO=6 ^3/[ZUT2,N7BRR^A\90+-1#8TOP3Z"NW'D6A=?K!U GC,NS M)>.D<9\^$Q0+YK.>)E'X9*M!LCVF4:_1CX95RYMA;> P726?R33-9:F_6?[X M=>])9E?<$CJ)]MM]6>,XP9G,2YDAZF8Z](]?AGF&88\^B"G;%\?$"2! R?;Z M1LE!_T3/##K-*(!#@'&T:Z7T4OU+OT48? BDI&X'LGJVYD]!6PIK.\QB3NT:)__CQ4,/@+ ZJ6->"VXO/P/>XO\PGZ4[4N4>;BO)]NUW_42?Z;\ M21\1?YB4E%^-AGIO0I0YI5--J*944POY)0^'8C_.\8S@?9-'DT,RF4SB?&*$ M)?E$ A7X88*0^!$I)# 4P;%A O_AKT<()3UISIL%)92@P;M>I(KTL%1!N'5;:>E)NEMP9/C,D[=7I-Y 372Z1:3MQ%L5*6WW:*_$T\G; MT5Z^UDCEF V33Q;T1C]7YKLD=."?C"QU5X[*R(4!4IY3*3$^W.2Q[!*,/)DG M&>_T'5G,9SFLHSFMCCCD,A4X\G">O(2,1&&$C7F*PA)\@A1(/I5(D+P@)5,2 M)>(HFDHZ@T).=:FI8*F3@BUJ]+E3 MU=O\3$ Z<8;+FWFTB:6X::]-GSN!;MV88@5ARJOES%27&X6JU*[!LSI9>[^? ML#)3M%)DRD0F(=LKHS5)P0)^Y.&^CE$,28V%,2\-P6XF$CC8TB%.\.*(( D) M'8VIX>CXV<4VD:05I)UBB"::+$^S9C;1A=QR,M_9@%67[M"2&:&CRC@O]3:# MNGSN!$2:[Y2-@;IFW"F6-9-BMKHJP7T]>::&D^EJ1^HUU>Y8K*#=>=DQ"VMUJIED1LBQ*"/E7HC)2[6E^=.@)(W'%'.C2Q&:,Y72<7*S);5LSS@4'@1 M8PM6$XX&,0]9J]68IR75I)TM5S$H?&RQYXLPS$ZQ&,%@> M5]NY*="$4X1:FT.WR\G(.)(6V]RTS"!20^-*=+O?:U@TL$A.::J_$.*9[*2K M=EG&[H_L=8UH+<'(DUWJ=LM6HV.,I\QZ4I*<=&EF%+HTGSI]IIB8#HF^UERJ MF15!4+0X-9I+<)K(Z5"B2.DE!L/S:GN9U+,$TJGRZR8<>OA^/B5!-AZF>(D8 MCOE$:B@!9I1$7L"D,8Z-D!%!I8)O7#NUMB(!54ZJSR3X,$.N2((MV:?)LN.. M8S%Z'("FJ[N*-$O4JLO%\DK)LB?Q_"^;1.1SK,+0;:9]DSQD;W=@Z;L74HJE M\@RI !UBR0B9JB5LVH-U=G.M7?KM'%MO]MM^I+#5JP@[CBJVY)6C<0[:G$:Y MP>_)#8XCSPC0KA 21[$CE7K/774N)?@9P2[1T ^IR@OO<.I)ZQ;TX#$1=$7 "XX*;5,*^V [];X._.A.!W9/C/:!A%$G<5 M9_&G*=$H.*^+ZWV M&P)9E 8!6=P^_5-5@'O;F[:TS43,=5I$J*K,_.5269F]A*E(0\ITY="L81*D^MY,C9JHURJ+6 M3RP)FW;+(J3(<\?X0H$/!?Z,Y1(*_-7-F \)?*7>+<2<:DYF.ERFV""R+2X_ M&+LM+:GX)5M:!C+@XAYQ"X,M7^N-W?QDU\VB,3>?>:" \,KAFG.XES3*&;.< ME.MXO\1D\Y+=B3QV6G[YE<39\BLA+H2X<.$PSLUG'BAFG1O?D>NZ]T(?=TXW18FT.#UQ FK_0-A;CLAMDF&7)QZ'7AU-B+[-25)1?',V#M!, MW*PG!EOU8#B&;T_$N?]]1S+PYVAZ9N70&"(JM](=^X\D+T7A5&[TSMKYI_]< M+MFWR;W;O--E!_#UJ7D<8!\:(IC"&=Q/':$7BAGNC^D WHYX_E.'!UX_\N<> M=, 6LCW!P)OAV5H9N @H!*I+&$&ZGO%4AV6Z,=T$SH-E89PI8IIN8Z;(0UH( MF*ZAO/FLKB%'E[/!-;_3:V:V# UD%DU3M.:WD15PL^ MG0.+8G)P[!%5UD1LQ%DR^ (0!3W3?0 <=11[/!VO]9Z*&6"Y=,'"#!.\08,# M-4P FR9893!]7G7@?'A].H5O-44.FW(RS'A'<_$.!4 MC0X0=!S#4%'C9$#AD4<="U$'S-S5)U"](8 !BP @PR, /"2Q;9@6GH((Z"D( M8'"'O=$NEX-[P=YHYS.20[KM.7\4"D.X5U#-XY[VHD N"S 5XB.FO8'K LCWZB(*B M@'%@[-Q8Q$P1;N=LCQRBC2XP6M'$],UIQ':CY^]\P/I/L**K=9ED_QL=:PF6 M)G0C%C]^&6[>>/SUS)3>7+#]L.JSX)A0H,Z?1O+EEG;%MNU++?JR"V26 MV#9J75%E(KTHU)1*)SML/]6J#)QLV3MIB"6B\2O( ML6N&W0L#?S\G_,@Z$V2+!X2P,6TPOW""45)<\=J?K&091_O1@Y M":4WE-[WFE:WD]YXC^Q,DL_+4:_28'&N.6F*G>7".P\9)>/7D-ZO"7Z=E=Z? MT*GK%A7SJYYUMJIQMF."?U\H$+^2AW**U/B%,J4;39R1BM+S+]P<,$ M^#/V)\R(!G><;O+T@'+DMSG382'Y%U.HWY,H?8$LZ5<[*HY[J(G/##ER>_<]OV==#X"T5U2W[8S_'>OA?%R MX_=O&00+2E_WLU&()K>"IYVMG"/6P8"Z"U&=BS4='F4_51NL20SQNM&L]@J1 M;']93]K\R%""+H8!$$# MO+O03R!/II MD_ELK9TAKF,GAXK@M#?KU]#@;I]F$!V/4J_58OYL% ME?3+0IHB)]FB>1<&U2V.XB!@"W"'C=NA7'"VVGXNY-%0ML_@7I*=-\GQDM9[ M$9TI-&(WWT$S.W,(3FV8XK85-;DJ>/W(#.\9;Q7Z^YF:!FL M90@W&;\]RIT MJI$-)WG)Z*%R_%I/)\LY.:RN6!3J,/8 Q$_EV'__0PZN%!_ ML!),-! M&_M-7J9J0FC/!<^>NYQ/'GPS[6CRV.][0K">YI^[%05FR8-;W9RN M$W#640SO%*(K)B M;D,?8*"JZD%W)S "W4#$ A]$.%L!XW8+(]H3SL9D"_R&LW0-0,0*XX$ M:DZ)7+\Q)6#G\=?9#RH_!4+&G^5?*4+-33OF"8,#!BZB2#UE>(1X.M0 M57_*QJVN"#A4'QJT2N)QN9?*4P7.6+#:\FE*PYHD#;9^YCX6W$;6K@G* BI,]; MCO^FHEBV4:N5NC6FWNU@=#T'/M>[I7J!J6=+3&=S*/@R$]F1+1EH<9G_S]&8 M7IY(QX8:?@QXILF9MB::UD0VW-ZWM##G !M9]LT*\QP-5A2QNFZ+'AZX__A- M;&' WK$LA!XCH/MW&^M"@2&2_[%0$UN/C;TX-+S+VBR"\>(B1(-"L0WT8VZC MXL!0!Z -7$]]AT1)KXJ".]('[%VT<@V$'8JY)#C">!0PV@E:\>"')@P.3PZ, MQ1@2V,RTO^D8B>W L1MP*)2A9 M\ ^G+KB5Y1>T34=C6P/7'U4,$0Z/QJA_83M_;V-P>PV;EY&=)=LK3.7];+\V ME7_QE4HI.T8[T.B)*Q'F@%EC6S+\E\,F)E2/_]MM9$_62GG56$&%W*"9 K6A MFXWDZ6-NMWS*2YRYOZZGE@LPNJP,''AR( MZN[T6@?6"P!255UAAJG/9>BS<-@"6,H [U<0QF2@(P!* >0 "L&+^X!+EB[9 M"UC);@%L5=@Z'1KMF.6,+. DP$[QJ&DZQO&P#SSJ)XX4B:#SSM1MKFX9P*C? M+ YFKPSH!X*?07CDO&[LR!NZO%5WHF0YK&QDB=I>-!#&]1I2T]0%A[?[WJ+L MAO=:Y52GDJ?72G]0C!04+C^A"O2OOVG4*2>'&_>!X +6A!G(L\7A$11F\S'0I] !H8-G6;L 0 M_ [\:NQP<(E$,,@)-QQD2@"2 &!WV MW4(;/IC6:6U,O4Q=+Z.$Z/]L,*#)U_/NE_+ M=#&1>8#-C@O2'F$T,-5;8B\P3*P)$"4OC;*)]$%#JGGC!KA\8HDV"].(FV.S M&6M/\<+3I)**]/CE*M7Z]9<@72Z:ZK#8RR$X!P8D#FP'2*2&!#Y!.8/2E)-- M@.FZ&1SD *(*L!8X*5 CC%:(A7) 02 CP;,R /^8ANZR#0:^>MCU>!#>>+N5 M<+<)V2/(.9)==(>(XZZ(JY^TW:=!]:'*4P EGOX @X$[4^K.5JBGU/3=A13\ MA43P!;A"M"$8"=P4N!3N1>A7 /& 5@G0I&,X/>\*TD2RB4DRT)(R^IVS+0#L MO07\;O.2!TR')YJ@&86FQ:-68C!7S.0< =[J?@^-*LE1@<1:0.2@"KXD9WZ. MT"5@U0%7Q]X@268%2&EYJ[&AIF=.NA:CO:_R37'FR*9K.?B6S>H<;<0Y,"(6 M$U';&D*>8"QT1Q7<55O( /A'KEMMBO!;0)$'_QC92^_G8&B#AQN6AJA!:G@V M[PLC<7D4!IB1!@/4T417H2"M"&;-BR+41>#6,="/%IK\%#&2"[/@XPJ@[PH. M=6O6"?MV$92%K:+<629_WMS8%$4W@H->?&;($+2]UG8;F?(L>2B;4(<#,Q): M3< B!X\9F3HG^$R* D.>I7XTB)W'>2_9ZO779-^=[YEI>43:H]U;^<5?^MU] M%31AN.Z;\48F!&V@P36,U;VY'C_#3MR#$F[5_T;/!\N-K+*CR49 MOH\#QKMJ(+M7@S7%Q8==5G1'LV'(#;]QT#=SC5OT$%?*/'[;9S<.\?$.P_%( M3O99SI,-'5A+R)3;S,X+/J&O_?G[U\ [@.*'PY3!$.:]J;=');-.P&+H%P,%,0$SH[O.[CT0-EA]^# MU0&(:*ZB6$>&[^,V?LC6HCQ$.@ HT-$!] )*7K:!!PL927SQ'3Y>FKYB.R,$ M<*C(PQ9$ R9AZ.XC)8[WON1E$WC4T #FQ8U00_Z&\42/23RWR'4*7^Z0 Z,H\\@K!R] #C+X]^&0 M;2QG] SD 'X_!U33 ?AXGCLD+; U7)]]HU%VR/L6[VDOBL#SIN,9-*IN05S9 M<=_5S>JY6I;;<;OAW7"P8" C*&U;C8J^ ?SQ$G.<"@#EZ4[&AW8WG/V*DR1$L*4 /P=UA@_:7J.H'QN."=X;EYBXC?NPN :_QP%W:'.4 ,]EN2:YH2'%.I>TL\(=6X.(C/)BP\2+Q M'6>)+0ZLIEK.VPP7D_'!Y \7K?G> U3&>5\T;IBCY<-C3UW3%L=R(W+_1ASM5@+O*X ML4?.LG3>I0Q:_Q%\)@IB@MM/$\H%Q-WO9!@YC(QU^.5F5VUWL^'Z&06 EJ8( MPQS \&' TM@K6A/0Q0SP#?W@AW6<4U LK?1L.U=:]K*-FBAE&MHTT5TV.;_HQK5ZI.PR*;5&R+ =I,+3+-9T"SNG8 M@!:W;-73T+"RHWHH%<-=G#LT,"S !F\]-F-!GK-8/3\AK4*>>L(KN7%J(%>, M!C]8_#K-^4DVAKL-S #K;S]XO,UV5X;8D&BX;>)N-=!+V6)A=(_=)%SLY%OD M=;,,1-'>P3HH"T!;65MT[, N$M PK2%K@:U93Q%%&DJMWJI!Q-E(-3[,Y_-:!NF['+@*Y'LG S#+L@H M\4A*4;4J7VVU4WA_-5'H&9DSAZGQ*=OD-B0D<3O1[*:;>::R[ T=LS&E:.LS M)$33=FG8A*L&2(BNG:0:M]0SW<&T'&.F!#XPBZO5TC%A0F ZFL13QZ6]86#1 MI9N;R,&-@;._;[_"6#3I-/MXV)!=MD4R> MW/ZHXOUV9Q)KI7"GUQ/6<3*>6N6!R"6H*/GB_@>4*?@"Y'=Q6$?D85,W:.ML MMN9HWP,_2'_"!&1Q;)&73#]@=Y&/0X3Y.&$^SF?R<<[:F50Y!&]#Y7@D\9[N]5%="$'\'2#N>2L-:6-&P:7/PI4_B=]2HZ$. MUA%&8/IX+RMDGR/3.@.4+W[B?)P/W\!CV$^ ?7@7A+M:6W),%# 61!MXP\%) M#D'KAK7%C=D'].+8Y*8!"K%@F^@*F=IQ.]Q+A[%N$B=2KE$+)&_'ED63PGY# M=\4+6Z [O=ENPAW>4*L MVW&I:3GM%B,GJP.F3>'XW%A\W'[NPEBN8Z[02UUCFN;=#=.3%O1:F:RZ<\ML MXYUA34NG<6M2? 9&6#*5> FPHM>SX03W.RP+6<(&'1Z-(QS>U5?V>FY&R+Y MY/%:?$.\/>OSM.1,NJ4ISZ->ORS%%CU1T'-SZ/.0T?AQ(=DCC\=+O'HK<3ZN M(0-!EW=IP#VRH("[3QM(E)IH3W3AI":4&8&==Q;IA%)H2?K:2LU'0PFFDIXX ME[9Q9+81TUWT#%(\'KA*FJ<:XB=B5-L]41TP"-H&VN[A>SC/81H8[AMU"(D? MZQ!]]V>. 2]<)QLPP<8_P* D?I9!GVL&4 F IQ31]G?J/2,=:&I-'.O>A@RP@37+?9GUX"6.N1L P$\=3["V MHWJ<1^ C*D) $Q_>N=FE>'."XX:N (6N0N-&/L+'^%&DHQ3(6'HFK.==QGY3 MJN1YLKJQRY(&? ->)'8HF;-G;%E(Z1V%7/-LY_%YL)QQBU]_[87N+MD*N(3' MV9'N=VY<=&OSP7O=OT0-INZ]M)-[12OKA2V82]*H7>$V-D-OFD]463 MSTQ:+V_67M;&(AA]5%R-*P.\,IC.G$0[OBBU%U#TB >2.!'K\FPLE/N\:U_M MJ@P EM#<^EI;*Q"D(K_*TGHN,]Q2DQ:CWJQF&4U9IU>Y&K2T4E'\A(N[L;1< M0TO;B2Y_E32:4*]%D\>B+L?\KFVEH; M4>R%_6,.O8X58F0Z3B4(5DS&4VP<)SF62XK I"7Q9"P=P_F8F/CEQNBX35DX M165Y/BD-&-(PQ[HXXTNB,X;D.;Q3-30S73=B)88SZN-RLDADXH4%N//HF:UU M26N.5;.!.\MA*E\P%E+\N<62Q\_L/H[QS-).#YA(<\;:K0I>F>"PZ>G1,Y4G M)4ZNE\_/@+UZ^8DDKW4YTF)C)\8Y2DO:FM+P7D/,S&236 @R2X,[CY[)UIHE MH?*LMWJ.HG4E[3%>22;@G>G#.S-K)YU?B=:(X=IX5ZATTY/\4PMH:?SPSES. MY,NI1*7/<).D/6Q:3_QL 03C^$Z^;]NQ7*V983H%Q:C4TI7GD@[OC!^M9P8? MUA/2:M1;Z3E[9$RE.:'".U-'JT0NR7%FJ%G,JILLMV/5]BI;&8,[">+PUFG! ME!K+W%.1 1I,[%W2> M*!=Z(MEK.,MUKT[/YIEI"]QYQ$W4D[A^[-1K*2:2F\[S]7':I&5XYQ$W$:W9 MA"Z-VSUE5:O0@\(3U2WT8:UMGYN^H&X$3.9%3Z(U@9D:JKX2Q8RHB9)L-Z%A M>ISA(:<5PHS/:F.%%&,L$3'%/,Z?J!IQ^KZ@9'@0>!1C:LUJ8\@P6(:I,_E2 M%VM6Z7HG2&[JN0I[VPQF-^UQ>X 3.2^1$3*L^!T2NZ[&GZ $E7UV<[-6MB%R MQ'>!H4)I-Z.%Q''B=*0 K;F7,(6YZ7DH*@P#NG-1\#0S3F#G9OW@I<;#T#(\ MLRS.'#!"^)BIZ\- QQ-6_O+36$F\_?S?XX)7/0[4: M8>D\SQ^&+++Q56O<"B.2;H DBO5VPSKXX.;8? MXWBC@0A,-)%=1RH:SZN$RCCT*ODX+R7ZM7KKA101B'SXUB*$HZJ#93F,N^'^ MN.$-GN4'[&!N%:/ZE5XA]JCG9QV.B7?&'[7,MVER>_BZW3'+K(XRZ>@%F'3- MS7KW.:0#.( W953PL THOC$6(^2.M'3\;OVP/3;(."E3;CPV!KU59U5N==-)C8$>W8E4(9\-,* N8*UWR3N[ =C" MBV^YM>*] W(C$2 C.J;E'\.0)!&%6OQ:""XHH',@TCZ+N'>X&:['H.$?QA.0 M6_D6:^?ZU'[C,> /RWC#6SPW!K9#0"W+3%E2>GKN.85X<>AD>O2Z,8:Q+_#3 M5432'3."3@.&>^QW8M"[FU][VV,;XT*!O")[8++ 1<[!^:&ZED3R,?8 MF"@HKQZ6>N!1@A%ZF6OLPIRXS9D@">[2'R'7SM#*G.; TN>C4U&,6^7"".H M$U;W:;OOP-HCWV;M3= !RK=%_ EJX^UM/YR1/00>[G\;FKBQ+) Z.1;(1+&9 M3'-,6V&AO3MZ8^2SL-RSJ M#,L S$58'6E'($YYW#N'L_R-M,TB6_Z%C,KQ2J3# \03K4A--&W=K\D>@<8^ MO&^J"Z*Z/7ZVC4NX*@>ZL=[>#F=9SM3PMDK=$^1N?>O7?KA=)B^<RY&UJL!ZS]84:KKRC3KD[6)@0[65YPTQAWLTPWBO6"UN9^!?< MU&MT92]#&]]6\/;N.4Z!MTU_8#M-5GZ]M4-8+!%-$>=: ^ZD/^\\'Z8&2$ 4 M_%7S/T=@_?$_;CX[Q.U7\\AWZK)O;N5&%LR^/>PS\\7-MG9^]W9&V>U)\[9F M5%[K,3(DP@V)\'(OM#@9TB6 =$E%J;-]6D/"W(8PL2B1"NER8VT2HE8PA2.D M2T#I$HLF$B%A@D<80!KT07U]-IOQ/>I MF-=W;NO^IGA2L"?(ZRJ\B+);/@B$Z6@Z_:^#MNV$L<0 S\O"+;JV[]<5.;UD MYWJ$P8T!=Z/:WR+Q/JF_NU.7W$)<@:MQ#<0D5:> 4*0;^%_JAE_=#[U@)?HYAOH6^ M#(!44%$\%4K%Q_:\KL\@7C>%H_^&7/ Z%^!W;/%\ C8^9AQM2RG_^5^>%T5) MNJE<,$O8]0U8RJHLB=AO6<-0[:=_/F88!6QRUU-[YS>1;[ ,.UR// 5M(T)YK,F(VS,8"G1)2DCLOA M7\BN#AB^?":Z%+"IA% 9F'5Q\UT"MC!?!)4OGF$WZ%QC,'@:1!C.:C*%L2OSW),SJ<=6@Q,:C !1,7E-5(1^5<"@Y-VH&"+$3T<(? \A M\ \AQ'-6)1>-F,4PLD/*D4R_,8JM3U<:N1%"+/L=:H@76F*ODC8J/;.O$\]Q M&B $@5\/(ERG.V 0\8-V]A]UF+T(9_?]]AIN913^='Q_[2#@#<#\>I7%;N5/ M;ZL?Q;^BZ-PY-;'%B)/UYX#J6/?J^J)3?EPK\HK,VZ6R*=5["Y:"+G<\%3W1 M9N7;[&6=D[U_O1BJ_Q:[4B%^WM(^#O'S4D[VMX+*5<[>+J,[,M"Y:TW.#\*E2&2A$CR=<[XMT*2N5JH/X]KM213R!4J M@_EL%*FF4AY,[VN-NRI40D4Q0Q&>8#P$;.L(%JN,4=1F5_ MWA9WD S1NW'D(<+D <"4/'QY2:-,>U.[IR0?"WBB^=B9.;VTJ1HM-@'=>#Q* M'+>$NM>=\PLX]@&;40C$@5F7[[$]%B0@_HX1@3=C;FG28Q*26%&X*9=;6Y(J MQ%C8^BKYZR]QJN'QO>[+7R="$# Q"_$G,/ASYW&$M^)/?6ZE)BNZW>E%8G-Z M.FN2H^$"VGPPBG M KDKO^GXPJ!2)074 -<30BW\\,@ Q>65XO/7N?;AM'Z+' MMW"W@XP>1+8_X[IY0L* Y];AO\+=_0]S>*B)MOKY%BWC3A+4;4J7VVU4WA_-5'H&9DS MAZGQ=_'GKQ/A]7H*%B V6"6O.:H/++2+*^C+'% ^&R5UV+P8*"$EWTP]T26K MA(L-JU'M3Q[70GK!IJ"'GX@F?\X6_Y?4G/HQ<_YYX'L7NVA?#KZ7"PP$'&06_F?"SC\&[6>_J+^V?M3.1R[^\U' MVFX7,>(!VVEC3^(/&(?9NLVI,$C" M&8:I+X'8V:*Z>FNLTH,7/3\AK4*>>L(KN7%J(%>,!C]87,JD>V &OJ=D68XHN&OKX@6"%NO%P5B'<%'G3)/E MTG2=C=,YB2FD!TJA26;3*;/UZR^!IQ_P$X>V$6VNO_AOQ_;7%I][K&:L=;\? M5Q(MP5H83SA;I5H!67PP+]J@VLO>BFKA4FH>DP>=%Z"UZ&K[J MSXNO.M"WFZ_@DC4DE\#^1>$D/5FQE4Y-V=8";Q2?>XZ2[Q8ZF?&OO^DH=:QX M7^;$4Q MVH+2[!()O;!W]#FDZ M?PX8G#2VX*S7F&$#KI =QL4(S5(MIL1$JI*1?LJIS$2@]_F MMB&=)6X:&$M M:Z)>R#MX0:"J=CD^F^*=\2X?1*AW .OF=:(Y!U0^;4O7=6T.%APP!C2;K2XT M#G:_SX*%KNOV4 23]TFQ88_$#GO8TP9+MVJCF=*9]H>1,M,7'HS7F<;5[7C>]2_ ^8A?R M67"YO904>"Y!2 .L%'MF0 MF$ZSZ2(]/>=D%3ID@ YYQW9,$1I@G,:+)V5;ZY86XRQ5QAGY*=-B1K.\WLM MFS9ZPJ3R9=M=1M>6XOSWP1%C$GHC,K#@*P$=!"!1IR'\ 6&$]ZR33IC;/W6G M2RRO HZ /O;D/_NN7@RZ3]=H$_MB_7DR[GO2&S;UU210&&(L1MX4N)X$W_^'4!;>RO&DFT]&8WYK@SZ8' 5P' MC,"C,>I?V,[?<#V.%G/*+2,[2^9%'2*J* '/U/V9?\UT&_YZ%U]IY>M1QM:- M/R00[2L1YB">$=N2X;\<-C&A"/]OMY$]"!"X#X%_ T8# J:ZC_6:)'B7?OWM M(H8&>).%B*#9UB94P/W=H?%+G+F_KJ>6B]N4 C,FU<2C*9;QACV<9"K)9+Q7 MI*$"^>6^;7.GGA33A5E)6/?$R'"D3+@*5:5IECR^(54=\SBN55E:=+_(:,YHOV/CQ,P$42/W"4XYD*G:. MTQ\%(_8T;[F5Q_?OG#/5KM6.,=W>K)1+I>8F6>>>8*W-^.&=I:=VRC*!H:_, M5&I"C;K#!9GUZO8>/)/%!X,)F\CW.O@H7E\F\Y/($A9A.QIG@K3CN1FOQ9BI M/)"?TZMTJXY[Y=KV[Z3K@[+--E-=W*$:I9Q46DWI$C [C\>94KE,NH>/%LRT MD*]VE#%K,0.OKM'^G5:]2L[7D0K>:X@,:TR2:V=AC]G$\3@S97[8>G)B146N M1%1M)K;+@DR[Y]'W[S3Z98V*F$5"26@+AJ&%8<2FX#,3AW=.)S'UN<,7!"8; M2U,"3C&I8@GF1 'XTP>\^>Z5[0KAD*.&?&9 M:93%:;5#2 LW;7[_SG)L-:Y9(T)01*JZ;O;C"X,:P6?ZG P4!E3:LN:X1A[Z MW8B5TPIAQF>UL4**,9:(F&(>YULLO)5PU3SX!;!M[-?N)J^A2/Q0X &$P7"E M!V%O5ZJ'%C&RMF]K#;VX@5#J+I/I)3\4\14[6.-F+IV0$XL;&3ZSR**7Z P6 M,I,P9-5BE?YDH0!CE-H:H\>&S\BQ?8/%]1V\2-("? \_JO)4AGZ#KJDKWVN1 M9 T%9241A79]5T+#RAS@6G.%>58L&46:Y3+GD/-@%[F/F2X M8B4-&CQ 7R&^LBXXN/=%Q0]'U]"P.O#3MEX D8#K1W@A!NBD<-H*)8@F_V.! M 8/)3,"$1=/"9.B4<"H@#HJ0ST7!%R,".S7K!VPQD?D)!A@9D%<$7NW4#<9# MRQ4>$X4^YS8XM7GH:/7J6+Q?81IB9&AKV&@9+1F*./BUAOV&CK/[0G=N\$$D M_A\T7#@\])GXSS]1K+<+"80W]ITA8%,.S!FZ&2F]QDBC 408^XRN2[#KV1#?W8D>[H<748!['IP(QQ2MK M(9,M/(FV[L"P/?% 4?CYR+VA.H!6!F21:VLT_!QYO!"J*XCZO(-N$$ #M'\ A0&=WI@ZVX-("T"^YE &:_ M]Z /WX<^\""XC0.C>C(,-V*_Y7]<: 4K+(FN-H97_.QNR*ZU1,CE-RG#,53DKD MQOU1-]9['L.H7>QX\\PGK,>S@/VA68P8VW* O+DLXRI2GQ6]S4]IH^!]+IH" M@PT;BYIH(C,*L )@ '2S!30VIHJ6Y;(=,GWAR0U@R2FB[1W@@+( OA \?D%F M1-2#"/\5VZ=[4O2FF/MK[(&6N;LR7/[PK^[%:MW,(A_'/\=6Q<0T5IUK"H_/ M%D2]*1C==+MPNG_)0@?++VH7:V'"P%5#-[L!^1V^H5,4Q8WBJTEOUJ#+7&F1 MI>IU /.VJ.U$W _CL)ADZM-CNB%3;"0":T[$W+T"=,5C(3>"YNZG[(7@X+0C M\C+B9N/\*:)_V"E-IT;K>JV*=R*]QWXI1Y(%M768WW,IG^A<[$_2'7,3[D/_ M1% 6CNNX7=))^YP?=" TWC&H4QKI4*"\XZEOWLG"]W:R\&O(5"G7V1&>J6S4 M:I6))BL1HS!?/2]MD^%O+CQ*FTTGY)JT[HE+/)^AEY-NH[\(@O!,8KW5.C5> M)GK]69)IQI[6IF8'47@P6H7FSW@"=84&7NZ9*] [!:KD#!,_>/ZR?[\@GKK+ MO6EC$O*.:0+" L8')I<%K0]H]1KJQ:HUD-1*9?CP%(HN"".AM6)SK /TX6E[*Q]V) *,,\),DKVD+;?F4Q2.]3IX:*_,F&5/S MT-6-QC^QX^U9LM"&?MFC0C'"S:]/^5>RQJN.(%XC'O69]!2]"U#; N]L:.*+ M3#%[7 %T*CM-)6N(J\6<:I4S$_KKF<([()!W_7] G,TI@9/\,,QG6IG^@BC@ MLWK$TM99UM);"UC!^;@AP"$_($V#F.)LM. E=848 OU\$ZQXV(0_ &^=B56X M 0'DR@NN#>A'6[?,9$],I&M/ZXPWY.O!Y"UQZX#=!I :0'7+@MB0W(TE JY> MP_0,1LOCO5J+KJX:I7B!$?5FHV]56%(N[6\MQ8[M1\!_Y^S'3S!?8VMON!AU M>@\JS9F8>PP/-R"$=5-WIYCH4T2+*-R M0+EV^(FNBE:D)IJV[H>\(C L 9=KJ@NBZD<7 <+JIJ'#B)6%S3D3BBC&;! ,?S??]!1YV.8,JK(D/NRWGO L]X.*DGY Q;N\?1C<;G"M =T-DTQD8"*8 M\!#1[EUOV3Q!]@6\:^JF2T)0]G<8X8V <1W3#SL>9.#NS>BEM^T%?PYFY/\. MXAC:6=J=U\Z2IWRX,JCGF"EO)HBI [V N8BXCH)T[P"_P09+NKND'%@@) MRZFCT%#H!MDES0SEI M,,5-Y0Q+_./_L3M8F!7FI;K!="G>3;/RD_I0"AKGV+I_P\I[(5UN1!<\&C];MS@DS*V +'FVNF%(EQ#(0KKL UDZ)$SP"$-&XV?+DH=T M^11=WEG<\U7')[ OK'^T?FCN]9*.]E^[FJ/_Z.X2[Q\SI BA^F>W195CG/'K=9&6^J!!P MB!4WF?-N![<7N[EM0('\*"C O>S878$"W#&ZF-B?][[NB@ON2S7 TBQW#/Z' M7/ Q3 ]8I3EF;T_EMZQA*&GNGXOA><#F>XMRGF%5TVVX,_#%/S>-+"ZDR4+" MA_R_$R4+.O^_HYS2.TK8OBF%<94K+X5T35"F0C>=5Q*3=#,_?G,1I0\GF)]K MB=,5S2FQJ4^;U9?/Y5IDO,#[329>)5K*L$O!XAP)@!OQ:)PZKI=S(4/H7J3G M^[G!CYO\GSOR<"^&ZM^2":^W8WL/]LHM2?JO%]WMD$DOMAL7O(KZ7]J<[S.F MR#9Y.?X5>?/G+).M7GJI79_0IVU5>%P4E<:B5;-JL?'DB84ENH"U$L>CZ>,* M M\F;G,60^XL0-.6+24BF>)!=NV]QF>FT6AE,(KE)HI442EW7JMQHOE"EGN@8D[FP MFA'-]OCDBS7EI[6)E(L_8Z5^[67O*+3*JVWP%\M^,E7+\' M3+:W34U,47!XKT/&EJ;2MGY>%-LIIN<6VS\D/?AX4-P6EK^S8$$[6<(TP."6 MQ9DK6#D+ULJSQ)FSK55EP7N ]#BJXXZCU7KU>E]-S^E2307EJ)=HQ M(<[V"A8]F]O5M2SV8)/!H[GLCCM*(U M[8%26#VI1I+-]K/UD^T([>=.+4O,1A5&;-@LIS+CM18[V1"P7RZ(G-&=1WI< M.]9^K-MC93J=9Y7EA,Q%< MZE$U+3Y_ZBW G4KS.]_LF6D3FRT8_56,%@IF:J M2;[8AC0Z:C*XS',4O]3F,86<%&-/HYAEL&@]CQH7-G(SC;<4KM43RV4C MPU8&(HEH=/1,HY><8,3S5JN;7(\D):E4S+A,/JUB M8RT)6S$>K1)7C5,=>['F\!5)I.8S56@UJ/&IIHUQ"Y!FU2=K"ME+X%8U^TA3 M@_&IIHU.K1!7:F8JB<\*755*-F?); R^_6B<LYE>I)A/<9%;);-5PRJF9_"9 M1^-\+L2R\6*-Y1B.:I&%87Q8%WHM<.?1. M)9_VXKG;22@3/YIXYCNIJXN)4 M>\>V111;R7*\V:OD"\Y4'13ZR15LVG@TSK2R+@O9=HW 5[ET;5V1I]-X$C[S M:)P)NTLURM/4K-<93T:%9_JI$B_0X,ZC<2XEL=E1G#6E="R<,PE5[@I#FDT= MRR:;M\N/3\T^ITP'4W.H*)'A2H-W'HTSTUYUS)S(R'BBTE?R3*//#=4QFSY^ MYI@1E4A)UFIX8R%)PTXZ3JX UJ6/G[DHZHM(6N]*9$/4&:2: 7.@O8#^7H MJ6*YJ"X[K:Y"1MH(.GGM C2GR0FB0JQ0RS&FFQIFD)BSG@?^*$(F&U M1^69>91J2A_OR4YUE;($P%C$B4:LL5*EVYD*PR= @F:[V2SQ=7X*;CTA JM* M+SX;=4H\+G?G:TOHL,[\:0QO/<8^LRCV>3Q58OI,=F0,IRRMJ.C6(Q'D@.U' M@4?&%2(NJZCSZJR&U-^ZH&TW) MZI9M=<'P,N >Y9>_'%EG2L:D1J>.<_:XN=;G!$NEZ%_ M^,Y XS$-AWQ&L[8 MVRKBOACP\)QN&*U0.<^7?KDBL($J;:/"T'X/2^\+OUNO>X?;4M MZ7X*C;VW!F4H-]]3;KZJ$A\>39)W)2 7KU4OHKS751Q*74/J<*KH]WQ,E_1D>3R=$8SX M+(VS]7E&?VS09WH^GC\W3/M!V-.!;L8-_VZ2 V.;+-^6\L0\2ID8W2.-!D&P M^E2K36%^0PQ X .5B%TGS3<$C#L'C-NJ4>G+Z MT2[W$LY8:HZ_'C!676;:RW+R$.^75^::7=/UP=0K[!A[B%/'?:B_LV\)&[)S M)C]!FV$",)E4W8!$^S;.0A 1[RY.;'_-=D&@ .TS%I O2+0FY+9BY,&,!W%\ ML<=E"ERUKX#/$TX2>'U>N8%-Y S8^L)Z)@:]:7)I#0M6?"R48-8EL(FH!XJX MTM&G$ Z^-QQ\P;Y)H.#@,_;-6^# 7JS':JFQKN&1A!QC:]U9TQ9O 'E9 QQ E369/A82>8 MXQ\ZA5=W"F\=6_U"JRJ LP\4\G[&$/.$N>"*,L!?>D^0/1CTO4Z!SF6-3FI! M,?UZ]G&>BW!*-[_X>@PN3)X94JPO$CBG+YJ45ERDY\D62T&3#& P%8:I0D2Z MIF$7P-D'"I$^8PN^#Y$D'%]G%Z398RJ/L0RYC!'4<^H&5J$8F4EETGFJ,-G% M?*BMEKPVY[VBF?$'$D_?51SLU<3RT /^#+;N04D,0(F@.S#=/ A(>L$=Q%M/ M,U"0^?[:(E\$;(W$G!*U04-),&V[6"L\">TD/%4)3"V"?$C'B##\%0K_^RVH M6T\S4,)_:"^5J?E,%-7NFFF4T@OK<9PL/J5NX&V:U2!P[)$O\8/9V&JS+FKO[FF"6[5 MI2G\%;8 ]WA#%V#U'? TTSFZ:4_D";CK-,;CKJ[X,9]9XR:9(Y;CJZ)CG'+UL[1;?>L M]M<=U#_-%0A_O2J'-%QBH")0D:KC$_GS;LE#RLJ2H!?_57S/T>@X_''K2('U>+E24 M"('L>H1Y9W[1JR&8>]Q\?RV\<0O"[U:@^&CIH_A'*WC$B&@J=ED]$X%3B^""V#T#X\SP4TF"$W%D,F",W#T#P,SQO%U9WOZ6Y=") PM)) M.=4)@T;?T1XZ1]67.XI?1.X]0^B.SB'^1H5"=\DANG!G+%:/"# MQ7YQ;=IB&]*F=C&19ANU>GQ:7;5,O*/8W6KN44GUR(^W8'FAX+5I1.LVW $Y0O_X"@B?B/P8I+J^&A.L:YL(Y)G&QBT( ]M[-!V3GP!%!YN0H 6P2IK;]^5 MZ$OD\.WEYZ A9EJ5__:6BR6,[&#-$$T.+],]=1.PO[0Y^)U/O([[?%S?D M^ZSAMR\?!5.WK!/.8'(VK+3UK,7CG-$@Z D[S>O2F$U#9Y"\HH7WPY3CS0][ M7M#+^TYR'F3U]F9!M]XEZ>_T\JS8J-$2V%&;DYZ9C[A"N(_T+?>1CN:+_?[^ MS@3TGDN6Y8@">#-83M=60&:%M=LY<\.\)WP%NMJ()Z;E5APOD(^C)ZIHYNK\ MF"5PUUE('%D*%_*3@Q<\#+>.PJVCG^=G^-CP45=CH4P5-CG&USA)#E/I\H93F-%]4+NBWW(8RWW]RX2X?D MD[L;>=V41-EVS*TUH4NX$E'7HXK<+^?%Y@+B /0\ /=>,>OU M/K1@N,OQG:AUQP!.BX6NAQO<#D0QZ/?G',Y9HJ1 MMNS'CL9TI''?8LCX0BK3<%HD#'*&>R3A'DFX1W*_OLH)D'BGKV(8J8R%3].M MWI145NJ0,A[UU@).V=TEP<-=DG"7)*1I,-$^W"6YVUT2]Q5GZ@80X<9)P#9. MOKXB #!(,I'Q2,2?AZPB/@V-0;F2LA/)8%<$T')Z=DYT:PJ39=5*C%Q8*[H" M?)88]%GBU!4-CA^&U3>/RX7;)!\^V?\FT?X>)_L'?$XW$L-^!N\O27F^3!24 MR' !Y=UU,=+A=DBX'7)'U+HY[(;;(?>^'>(=QP^W0[[ED8]C>P(*)$'>;10F M#,[?:AF^22C_SOD_C"R'- VA*HPL!R*R?+5SP_/(Q]-[BNR88B]C6Z" MK>+6<[,HE%)X9:Z59I.^L5YV/A%7OL2)8"8A:I/!L* K*]N0-+J"9](#FB4H M="*8N.:)X!^&Q3\QA/%3XLR?E_QO=0RXOI 6L6&[;2J1J9"/L?,\4WE<0-"@ M?OU-1=/'.7)W 1IA\/EG4NLG(G<8?/[>)W<#,\$?$7V^2_?B2\[W%OJJ7,4+ M>(5I]-?/DPQ-/,>Z+99(A,GV83P_C.>'?LMECQ'SS_2"M9J&WI,C>G_D)/N1 MIS*"&Y@W0T6OF2D7,$D+-U!"FH:Z(=Q "=8&RF6/)-^'+ :N-W+H_USLL/$T MGL@[>:Z68R(.,UBVXEEEV08&21(E[H>[+Y?U=6XL0@%;$\_Q"3"NA%[050XH M%Q_73ZHR-#,]I]$0F$A>$V+5!00=X 4EPOV;[]=7/-S?"77#-1R?[\_AWWQ_ MR'W%WIGEG,B+\!BH.],8\>#^<='SRP&;_Y?7#U&QR#)M@> MK15&:"]46GJ8,X]=O[5A] E>]Q EM5Q]W'SMS.,S-G:31E?CQNE!<0 M:N!.$AE-IGX,V'S!3M+WDB1/D(": L_B+Q)KV)&(B"7R?P3'7(F<>5(>1J_+ MP^C=\M 6IYRL@>M9,!O(T0ZG=D5S2FXD0J&YF&XVJMV>+$^5Q7R])OHJ4KY) M "ZQ*+D)*W@+<[<"$6K?+]2^+V[1W7SJ5['HH?X=%R,T2[68$A.I2D;Z*:\%!N[(L7>Y MG=8$QN/UK@XOO<7?[S7L;%DQ395Q6#)3IJU:U1+&+)%V_?W8?>YC!&/[]!YM MB5,[HM\<,>[2;7\=,M[IS>-B3"6U?CVGK.+ME+BD5[/YM 6!Q//FPWIJ']@2 M#;KH?%\__=T"\)+[3FQ$(-7"X^G8I$[CG*8*F4*7M)=EI$M=]YV@KN:^A\KT M'I7IJ2WDH"/"3_/"7\<1>CPVQ3%GBZ]ZZ7F[S9J=97Z)RW$SP[.=14KHT!! M/"^=.I=7=!?[])Z9P0'^#O?IPWWZ'^G.[\C BWY[T7YN3VTU6V,2"7G(E0<9 M0DG28#KHU.2'3JRVYE7J>I,806& *( M/212QT<:#T( _[;AJ_X>0=#%2?WL6+8LK=Q+L@8$WOZS+PB'".%^LSD- 8\L MOQ$TOF3P1.I8C.$@/<;M3D2,\X,YF.S3$IM#8H+/F UN0(N/<2-]+F*F: #K M$1Y(<[_2;4X]^AUB&TQW?PTYC--6J/)X\C\6QJNZ!:053%[G%9E[JB;%=+Y8'@.F)X"M=,3T&&?! ME3@*$6%PZ \80%%^@BUT1Q6P"0=H,1)%#1"$%^4Y6.[1"BVWCB04F^@JP$\+ MW"A@G*H>7A;]ZJ_P-[+I?6UY([ GG(T)@".B6/=%(H/[_%]MGR:@FK/PH>[H MH9D#O@>\*+@73D\.9;7 7DS8 HS@%59X-YI>X(PX]?5NS;:<31>N_PN1UL0. MMS64<<]XC,PB/5%+I:I+9C472Y#;HL?N# ;01H5K"];2I<6U5_T#;<"_Q:J; M^G2JU29)BJGH\34^'O,2'6O]^DM&R1=7_0&(K05CZT!RU54T,.J /@M 0*I- M\2H2>H33'E591*'NRA#II6QMKC)30]57HKA3S[J&1LR6GU*-]A,IY_ $+G2I M0G4UU+2/B_+F1:(Y!QA_FL?JNC9W=TS@8"W$-[O?9W7+KNOV4 1SY?6Q!F@E MG.0D13,RJ^I8:.*RZ?!4?,1/)S*07_P,)R&X1OCL:.;F\6!QM^\''V"*H";: M\&9I6RX+7F$CC<)3R][T X5 - %\ F8;.TE'HZ@,;!Y(; -3(S#%I[? MB7&NXXD92); B[TXPZ[I!'WAB+R,N$;2GR+ZAZVS;&:DM5LI7,Q25E]-EXE2 MLG5H=GU*2-R/\$%@30$KJ.X5=_#^I5]_@9+>V&OH'PRILUVE*'% >1[I0V\E M3RE#5Q>^K./O1/U].HO!1^$\6. #SV)79%KKHME*)IZRO4A%GPMLZMGI=A?G M1<:%6_@M7"59^+^NXG3R M8%E$T\=J,NZ[X!NL3L;=>:!1H__^S__;'?W6J8[PNJJ;?WS/>6=:$Y?C2>1$ MC\7(R!0Y)<))X,U_.'7!K2QOFLET=).>\&?C?,>0^L"C,>I?V,[?<#V.%G/* M+2,[2^;Y[!%5E.P_WL_\:\C?WEP$W@*DSQ^$54!?PJ?O/1=1QM:-/R0135R) M, QYDN\J\ ?L#H''2M-JC#_=VA\4N*7^U9N$Q?,SA*9 M>IL8][+-S!.9J)@C>T$#((D?WMG6<:FNKC(.LYI2G-9):3,UN6#)XSNGRN-$ M'*GXB.F7R5&_0228B$FSJ"WQ_IW"NB*7[6E*5D0I-<^GRX*4*<,[C]_>3@RR M_V:2)A4@ M/F X/KF,]5*SB=)HL*)F]-J/"S9U_,QEABZEFF1%QF>#:4I=\IGT*@?O/'JF-&\8S*(7 M9Y@5+P[+-2,UYW(M-GW\3+MI-S*&H2WP%95< E=!2E1'\,ZC9QJ1="^>5SH* M7JDG1W.YW,H+(\"?^/%#$P4NEDMU2[U>A":82F.M#-JI,;SUZ*G%@3U]&CP- MEDI6&J9I1^TM%*/%$L3Q4W-R4>&Y1$MCLLLGYTGJ&T^IRAC>>O34^ESF&JMU M*\VL!F-BF&S+_'+=@JKX^*GQU,0$YM6KZ>_34<9$A3>?YJ:CTDQF=STY(8L:A6_VG'BA%]X9QOL?#6V%5V3 Y,"GXB"HXJ-J33%G@;F S@SE0XM0^L?8'4#OPQ8CI*NJOK"^G,S M?_)RP5$WYNB;,NYF #!C5,ZPQ#_^'[N#A9K?,V>@2N1=5>H;;LC,X!Q;]R^X M-@:ZLF>*[.PG>/<R'ASOQM26J)=)2,!RB]=>=W;R?/727XWF % M"#)*A4SPTYD@FOCI*T!&XU_0"^P+EN"=FA4#XDYG_7H'P-NMR M9\SQ$Y'1R[K%"B:GV2$\_G )N"=X/,?U;H]Q_SS!*.2$$ O!ESF86 IW\3&T MC1^BX3>4@7/TW2VPOE]L_2((X,%@@&K.?U8@?J.L:MVQ.$VP_KD?H+P(DUP, M(>^(89JBB2'=>@GL#-AAJ\T>YP-6YC2',U>8FPN'W^OQLLN=M_20,5AM"+^^ MV &1?B5;^%1V0+O3\S*&&4NP"P,Y:RK3L4X52+NGI9P;-(AC9@ZP(TH:&*N# M&CXU8+IU=\)I7E[D1E1>+*"0=I3I@K23,Z5?Y[1):N@\%BF8A03K)SRD4LD? MCK)/XF@R42):_9'^Y9N7OUXNX\5'(T M7^QW:*5L%*,0H?G*.,I@CO:(!-)%=06WEVP262E)([C)O_$%8907X_.RD%+A@6RX#90X M;G]U.6/F)UHN=V*FA#;)3[!)\MOB3Q\Q2,89O$ZQN6F7<5*I[EPL<-1X I'% M,TC.M=;[Y@$7_#!=Y>J-/(+G%=UY/.8&?3H^ASIV)]-Z3I-*%9?E9ZJ1S_&T MLFH%T&IY/75E$FOW"I:T?.Z)+3+;S!&1%5L;LVDW=249#U-7P@A,&('Y>.7C M:P--,,R;3Z6N*(2LUHOTTXJIE+MXFECE%XT2A"!HW"2BL$5W,DJHZ<"->DMRHL &B6OIJX,<#I%$>WA&E\- MIDRN&^L5*AU46@X8)>GD%4V2GVA_W(FQ\9V@XS)QE*\%CV 8&A?(7=&S5I,> M%SE,^,V'V2A@["6,GH85SW>P5-971<^,.(?<* M\QYO-\;51R:."F-#"X>ZQFY1F+X27/,E3%\);9DWI:^LN0172LT:KY+_@O;G'?M=4'H<<\D23R5E/JD M@QIX0),F&3T!3G<3M,']!)A(F %SS:#.?3:^_GB*S.> J5XR^*S0DIJ]2/YY M^CRC6EIV\CU39"(YDHJ/Q6%,:8R[]04];782?1HV[W'+NR2/.][=JQ@&*,YS M(#CM/_Q$<$W9D_C*2 M>PV-==.[!.\C=AO)]U@U;NN%&!XIEY5)KZTN\CIJ))\X!+MM/VE M/9)8@)E MC&FZC4T <3"D'BU(2 'I.4VP, .,QH27X$2 ;KYD%WKW(WS0'QFLC,SO-;Y% M=4U?QJ$X3OQ6_G&GV.'F8&@6UE0Y+3! 6=(P(IU.(TS$(-4Y;86!101Z2;8F M4!ZPW3G8W#(BB))HFI!"WH0,,*$'; %!=01^#(8B0]-)])C/PJ84V;L_K A$BCX&F_A7H MS:FLV<^[?Z SP:L# 0*[+:^ Q2L%Y 94=CW7L@'; 0F2'1',$?S)T&9:,!2. MV2<^I'/8,/[EIPFP;1803P>PBRBXXC0)2"ONK3JAR (,5<%]W6,,H&BE!($D MP(= C@!'^%,+/,!,[/,';%7YE0O<2<'^_)UPN!8R>P*H4:!]P/-D^$?!7O_S MNUS\A8WN\>-C G"R#SP=1S9_DXVWG&H7]A>[/XB> 3_*?6D/SW_'$Z2L;'RC]B2R;0(U(@*::* /@14? M,L>6-J'J__>+YK_1:"&[]["G<9^QL+<]T&6$D&51FO!"=B+P:4JB^&PV3?$3 M 9$1A<0F" 45^=UW%F-"&8P M+F$M&G_$^9+*8\/BK.5D[/43 D2=>( M&;_$Y.%8/=4MG6E24Y->Y1O(8EB;U#!LU?,VL+/Y42-H'5-DKINGQPAIINW' MS;I8T4;^J<[F/EM0!4*<2LA,U?/YQAQG*-$/,84/1U+)YG#)R,F.7II,YBHV M54?KKA]"?QZ.7"+SC)'IC7RNMO$059#_$8MFN[CDZ5 M%LT1?:JSN:\D%\+&XWR$+(R5,LW4UZ9ULE_Y#!TY4]NB18XLL!LJEYV;Q2Y] MJ@MYW?$7>%]CTTQ^[HSH:0==M?+^R=[B6G(D)S--CV/R&IT#KF]%\& 3[A,- MP[LFH;(XOT%T#$YM" ML>O7?='.VQ43'!ER3UA!9698#CB.CMMH%Y-)L8ZS_$H?\'8RUYP,BOG%5C<# M90*,9/>-<4$7LATK]E$&Q /6(E08^]9^@E@ MMH.3^+2#G@!G98";_Y 9-IVX9G(X# #BE]8@>DJMC5+<*EN*OR;!9PU(3PM MH%/_U[F]^C,=](G+Z#STJI@BSJRX#B]F)$Q"^GP5K@)[%"H0;X?=[^UER.D+$RZ=3?#+):-PN/:V61K&?K'+R1U M'-$^S=&A%7[I$[TK3F7),V16@:Z#9081?N5ID2Z?Z^9Z7'6%3\;J\8%_>MQ%#_P_QH:)C-AE0P(;3Y=E"4-67'W;\Z200@O^&1[+P<\?#A]U]Z] M=?LT-%S6[V694.D40D4H\>W0V_NB_FHH]KUW $WA7]!3,,H[ .OMOO<.8%_2 M5S+*.X"FB.^] =D4GKV+'?A@IF74SL#O>.I]MI$N\=DVD1B>HK*12@O_TS:1 M(UFP$\SI$-&I;INQE-R"E+S>.?6\75.15"9:51)_*@YA&OJYFNM>V3;Z0BZX M+Z48=I(]H?9>.,W(*R;&P;Y23_OZ8MFQ/KT9?1H)J^.&!.BOBKG-8GJE9?GG MV#YB!07P6NQL[!VQM5VC6 +&D[[]-H1!I8@A:$1@7T)SZMNS1Q!O^O:[$ := MHBXDIVWN6[+XR. 5><^V@4'P[2VY6[TG.4=!W]?<=5P&;^5JFCM$G4_6%,)B!GIGL#*6NK[' MY@B=A.3Y^HCO? MWW?C-8?61&%;U!1[SG?M.9\-]"22#O&G(4TB:HOLA'*KTEY)[#NASUQ"3W;6 MVC*C=[O-?B\]&@HDI_(DM$2 /D,S%X(7B1[#Q[& ,XM]!%W\+Q?["QLRGQ;[ M7JE8;%B\@^MY9,6(M&*U5CXLQ@)F#(8^( 1Y/DRS"-QY;5.XXPC(C49 SFR, M1,J9>O5F/_;S;\;//_.I>0/\>1>N[+D#XY%97NS)QI[LC7JRN]A<:+']CBVK M='#)5XQ1A9LU*_W?:04X%?=\K_0A>\Z3>ME2ZLO.E6#(WM"OZRC=MK8 M!$WM@?WRIC*,0R27"9%<6VRN&T*Y]NJ_5;;C;VN-5Y,>=9MDT*91GNGK_D++ M:7@3H]@ $A684\1QS.6/4QZOR?T!JO\.8M 55D%'!+!/<03F3\RF:W<-^IKZ MBJLO\SM90[]O_OB=#EDK-AI%;E;#A7524OJ%68"H#,P?_ &EXO#-69B+SNE'?TN:+/9/B/D)C:4/[_I\?F3V+W MP9\!HP&Y-@Z ^+V:]OT0U*R M2@9!TCRB9"D^+60)/HL2$SXC*P*>P4B$1*4?OPY[+R!#+^?WZ%4!&72E*5+& M<)8[W?2C3WIVM6:8+I=G3P)CV++ M1!K@19;EL@A7,JT:JZ_]3#?9YO'CMTM%T9\/-^B&2:[[J[ZZ5 =N[F0C$<3= ML*N:DN219&.(+#.9^J EG&PD,M3S'2LO:"BWH!>8@[GNHP64\8FF'U[1YQ%D M+"E,*2DS(]GWB6)-/=7THU]H#*R,/YGKY 8=UO.39JU>;9]J^H$A0Z;L5"N/ M>G[*(I;1F+'-QS%T/%QQ!J\";FJH MYHA+#QM)O7VRD\A2U";\"+<]?:%WZH\>)B=KC_[6F#T<6B87!8R>-"U&:Y@9 MA?1+@&MH>$H?/55:*5P6[ZP'^DQ;#_("W>%*V:#/\-%06IU-LYU5?8X,-"7O M^[GR+$G[VY;$+PA0X;ARK5-FF=F*'?0E!2FIM?:V[^>NEU:/W81#FM3%H=Q M-%48F=U%9^'#*JD37L11MT'8Q&_7J"<,JT-6^3OX'+*Q8AF&Y4.F!J:H _N5 M_*69B6?4M9_7[$<4L28)VQD$)K0 R+?[(+2?@T^^NH\"'B!G1B;$L_>]#_B) M?QKD(K_W#J I(DI!_2OL0#:5CA*F:2P%UY&"[[T!=R,$'[VQC=@9^!WE_>L1 MC=,I)'U7D.&7[J,02\GU,IDNCZ ?-U'X]BR I+)'>2ZWS@6GFRA\4.=%+ 5T M&P+:"R">.\<+T9H9ETA<#XXV51#3Q V(=<7,I89?6$2R% MF5PQ7\[J,[S<*)GHJ#+.PV0+$NH(*GN<3_8'"?#7=Q3A!H7WJ'/;@GK .@]P MWK4]@6L90=?W?FXFO!FIC-;KF#B!]-&F5+?$/4!/V3FAETS,+BW8CM/D!G8S M-S0,A$#+*I\.@8^R%\II_XY2' OQK0KQ=6R0#PCQW'-FV>FF/$0&&W\Z6%3$ M11[W@1 #XX)Z/U7]UL,Q7=<2=4#!&;35PO2\.!;S'6(Q9U9JW][9NHZUTK3@ ME9D'5C0QY*W#U9T*MIP3'%G*[XEUWG+>K#%FNXI,D)BBZDDLGZU:/=2I6MN6 M2.GLL3$3AV'N.@P3JX=[L(/.IQXR_1DC#G.\P)#I\K)27:Q(UO+#ODLDUPW+UKX MQF^M_8T?-DK"'DCJN&'*^2R4;R>[L>C>K.A>Q]!X4W1SE6&_/^]G#60MK[*8 M760V:8X.FQWA#^G,60&,(AEEV4(_P4N=AX0IGZ?C1>P[Q;&5;Q%#OHXU\A*N M#=Y2%X(Z6=ET-?B88VS\>;G;FW=QD1&Z31O3/:ZKUWV>"E&J2>*M:'*L".(@ M2JP'(FC:?$(/= 771TJZ5$(P>D.@-51I2EP;Z($ _3J=/O^MTC6Y/#\53!7" M"B26@K&%>!!@6;5@BN>[1?IVVBR.G]RLHKJ.P1+*8<7B' MBM5YZ^*[L5I4* M_4&'\NL',G*>HYFRX\!TV(EFAI$,T7+B+)";C6)<2UPC+ILQ%]^2PQXS\>UZ M]K]MI>X.G_SSV0-S,ATZ0.(]E9&IJS5*5U/U-_?:3INM%YQ@2K"H),[P%: MC)G\?=H5QMH ML>A ^%W?*[E.)D$@KT\?F6K%E6>G$KOI=2MI6S/5TI.5O#[@.I61*+>#^4(7 MY(+ICM].!UQ?+F(5\*VLFM=TP*M&C5"<=L1>SLMP,R)?,&KB*#],JW#BP*A! MT0N =$7,FK]HX^K8AWLK,G'U5K!O[=-%$0VOOO)O:2Z]VP072TZ\/-]?$!P[ M8E P0S$K-(,>?1?N>!VKB==#/5>7E5A+1$)+1*95-E)VK'%M5L2X05K72H:O M;X1*T)[SPZVR7W:7ONG6V=?HMQ=())SDE@EI![9(/NI%DH#GRD/0.Q#"IPCF M.C$5I,0.U1YP9B(/W@F8Q=0$6.J;L.8R9#]331@6S"T1;'N=!'_W 0L[B;_@ M\C'DGR9;=X(?T7_^AB\6YG/;6@7--XUUXG_/+!&TP[/*_D&YY5W^B7=ISYU: M-B 4O=*"=IKQO!WKSQY280C(,'5&!/!%,P.O)2-CVY*]M+ M390KG>[V47G=MU&MT5OHLTK?\(:MTJBPH@]$D?B *+*[O:^#K<_#G=]M_),T MDGN])EMZWGS,F31]W_\(M#4\75J G"E$=0Z 9K?#8&>F1W#*J72:J)7BV.]:UMJF^DUV@U2_2H2H9OA>,TH_2Z2)RDW MB3MCO$H"$J%XZMBDVI'H :9ZS\,K>&.=2G2AAP:$#$KQ3G*A #XD!''A:;8L M)00G,1=L-Q!%\)/CAG\*NYT_ )E?RM"_T\*3Q4D(;J@BX"-EP!#@>[N^HPG+ M#-;S$/P2:(YG#0%?FYC(0 F%CX-Z OP,OIO9?2]UHSI1V=.)3H!I#1/N!5N< M!A]![]@&DS7=[1@+1AP"QSG$7GK2C9W_(\SF_Q1VD$Q/:O*%*KTQK4FMTL5: M_K'C,#62&>&(B(R)%U;'1^3H"8%C7X9>)(_L"U*ZJ[;'MK9FB-IP82V&[S4.";OR]DZ,M^V^UA6N%"D-." HX M4Z$,8@\)X!H J_Z%CME],5!:IK6GM\(7 $( *81/!%\'TNGNO?19>+="&0A= MXDGH1&#O3>2$Y\#:&@O(H.( FT?Q7,\.@V"&)@06GR8[AXM[2,R$-?RNHQGZ'D#S!9/83@P(MN6;LNU,M?DNW2?A:^Y4@PRY!D-M64ZN80AHX=Z> MGA4<1X;_2T#Z2MORL&#?A:! +&AT;3 M#]2O''1Y!RXG<"K IZ>*K7VE(O9*A4(L M3(3320A+03."YM8R M)#68&_@N.$42TX#9X;),617@+X<'E"0#H9EI)CSJP=/!TTXMU0>,!.@# MWP5/EKFM04F >PKW^UA&@+T?GHJG2/%7H4<[?P-+X>D$33P=GN&WP/,!V0%+ M)20;S!A(%J!P0O1F@%3!>@(/0C-%+W@V)&JP*!1++CQ@K>6V'KW1J'Q=/YM8O*RR# P?F<.X9QIW",]K5SFVAA$7+ZQ$C?3%.=X1, MA:),X?-G^4?J//>/'*6!-GNE+FWJ)$$UJ'%]_9@TVA'P7Y!+;'J];%M%[!'- M=/?,*4# MBL!=.V4- .D'RM&1=YKQE% IMC4[4C((E- CS1,(X"F]@*AVH&,I)F>'*B4 M\!OA^6+*X#50^YX^F."TH$TA;@%)7%C)8XJ&!UOHP.D).\-DJR4G3Z>)^?PM M,Z$ 8H&URBDUM:]:]_0PT%>*!DXJ>!NJ*>"X!%,WP?%OAV&-ASU_QI8-L ;P M=_A4RW;^3B4JRH&J#>T-M#"PL< )>^IDA/NQ4\=.X,+:P3D(& FNE>LF MX GS )\0["-\->24$V-?VS[+LP\[#X5/ B)SP'3;_0._A03V9;#Q.GB3!W[9 M':U;"[,)&.G$!-;0;/!7#P&B]D)G$@+A=78+FD.I&1 MQQ&OR^/1?%BM95R2^GS8XTC;U)_M9+!C)S6-J8U66-90;8ZL$'RU-NZQS@2H M=R1UC+_\.XH&"6U:^-6MR G;$+.D+7_]!_RSLW9%P$@VO'Z8_G,8U<6A2;KK MP(K\ZR(7!H>-5+'T[O;DR2"&V*_SW:R#?__[O_9G_WPADA0MP[)_[FX]]I8U M#7NO8L$%B"HG)X#?]63 HC\%PQ?6SB[W()O"=QDJ/Y\N3O# 1D=2./&OQ-[/ M<#^.-G,FK))[6[:];TD:LN+^W'YM]UEP5_+TH15&GWX"N0[4$'SZP7,#RKC6 M_"?T,2]$F!=^"?Y,AO\(">"( =GYGQZ;?W$7$#X$_@RX%(B($3YVV_%V^Q&L MZ8#6/.#7/!1%$Q9>;F\%A%][-'Z-,P_W]=1V"8$T\1(I9C$)PWD,4 M/R$$A4\34AJ83J@L$.D?X5N%W65-8;UL.>U.OZM[HY*6DU8\6Q-]>*/TQXY$.4:[X=;.1PVK2 M,>RBC3'K2AN7A_D-H^!PY-$\U^2C43;UP6F9%T$(/:_/$\=O7E6)F6*E45$8N2:5Q-5F8VFZ;)X]'KG(.3B]8 M@V5JZB"[H,>*^#B#<&I'(P>U:HW$LOT25Y+)+MOJYR:]I<]GCD=6\86Z00FR MCRQF3)5%I'Z.4&!9_]'(G-ZFV";MU!AY+OECMY)L62L?UED=#/AM8FE-54)Q;/ ML0MY69 MCG6SWQ# 9IV@:ETWYFRKN_!ULHQET@9Z;J,;$[< M;#F= T-/T'6Z5.VE.*"6WHD@JGT9+BS8<>K19FK')]E1VJC):9B320[U0 M0F4:#CW:K$G-*&)$4AXQM=:B-1T016S=48%A<#P!>!X-AQY-(,P!2!3XL4F)&B MD+PDH6DD(U%9'#E25Q7+'F2=0;+*=44/G]5F=-/2Z%/J*CNI2OF>+781><(L M)@9.UO$N5%=':ZL(LV9AE1VJS QW-T- L5)ZKIY20CVQ/;-*52S-:7UFF=1I MU->Z)Y70J#6=;!I\)<^43*>'Z-7!X%&B3RD,E%[T]&DQQP(%;"19+-G/4X_T M*87A2X/9U)],V\BB+VQF\U7>+?744PHCG2OB7B-)*GJIUNFMT/34:PDG%4:_ MM938C.5ND.ZL1!-%=^Y3E9,*8]+O"4)Y9#>0!=5":OJ0ZZBT>E)AT*+0:;DS MKXUXDT\G,N R';O?8=8;?@/:[MR9

"#)2GFSO M,/,(V-V&,'?DG[L?]B<+3=6M_0UM.#&T_7:>1F 7"YYK[3X(C>+@DP/;>2]Y M:3OFV#EQ[=W$MB]$PY6?J91JSS#=>SZ,TRK J=WMVN[W)$S=^AEZ&C[8IW M7;(I+!W3)7ITB?58-.D2Z[%HT@7HL3,W#' MX(?_[P?QX[/KQU,4&:F2WW M;C]^-5\I#-X5UMR%W74-Y(>WXW2W N/P=G3^#B 9CHHR.-HL331.S^B+]!"W M'^N3I-*D/XW!<)1H\!MEQL^X#!.SUJNG>XRI:R7+&\TPA1\5?3X=]'S!']#T MA9KAQ0)[LP+[!7TNHB2POY4/_W4"2Q@4K'@QH(;QTV^QIYX77"G,YWRFP-_S:TSZRF;S:"EIN4#P07F1/8A MC=]_Z(061=L#.P](('E@B;!Z23,3DJ: K84AE!#MXFZ3!&+'*8Z5W*:%LOML M"[0-G29[*<.BTIU,[SXZH?B*['!43-M*4D\N36>)I4LMMP:+A .$?IP\QE2) M%4"L .+(290LG3]2 -3RL;6D%'_,"0-MO:Z713G=\X$"@/V3'])OMNBXP3A* M'0)XG<^(^8X*ZUZT4QPM^9PM$C1S/T9N"P3KA(+IE@B";7H^@F""\)@O$7R_ M:;3Y3! 3 0KF@A9&+)VW*YUQ2.1SAL('I=-AT*'TCRK1RO^PA\=%U+U),A""K$I $F5(#V$_LY%_=SKETE=-U R+57'R7U M=XU 27Y/V(&OM&U0YG2G@BT'"/O[ _*6Z5A2ARFB1W!.$QS=DNH9%O.*5?01711'*P>5]S, MS-+]S:,GL/,VA&$%Q@Q!/2#8E[!J!446[>IB4_'[A=DXT!30=D(?,L3Q5=??MQQ5.0'P M]1#V,U0N:CY]1PUX!] -<9CES/;+?O_"9S6$:,G%H#0$#@7R@ MTNG[C:U<2T9C-RJZA0#?"%C*(N<96 MX5U;A3%H0B1#LR]+H?9Z;(>!H)W$M@S!=&E38G9"^R/A@*T KSD1)U+K7K71 M?-2[3*VP&G9(DJU.*BJ/!FB3*)6),_YCX;\M3^\^KXO_2/I?"GU%-C(-1L-F M2%*M=S64[_>;S384>A@.-&NEOS>91\ M'6'A?"EPL?3>KO1&+3AP#Z;%AZ5W[E?[Q2HUH9A:7WTD"1'%*J'TOHK \,>V M160LZ*VY43$!9=4 8R&L=? MSF0P_*:,]FUZ29):\I&K(:H_Z>JH1RQ4**-!AC^!OEDK?..AEFM):^Q01??J M.D[QCX4B%HJK;T.[BK71UT5&ZJ99!&UU AF'O;^QMQ*P ]ODWZX J/=K M-ZSIS<"NBQ<@UJ/GN)JR#C_23""+[L]#MGTIO.%?GNZ7,##B-^7Y2R8?I&N\ M$#HXR2WK54,+7W&G"GZUO[? =< M?A6!E I:V.M\;CD:)*+S$#P+8F<+YCHA&L!&TQ3 (PG-=?8O/H)G:$% *'B MO */\&SP!P&,LTPUZ M360[O+S$T8<$/$F#"4!Q.USV5)#@=MD>>/F?S!6\]W\C8 L0'] 3W-YB@*[8 MP:H_A?Y:NQT([PF#K:'#K7K2(62H0YJ";?/K/0#.=.8R^' I&^M4HA*(2LCU:UFPG80,E(ST,7G8X^^_;!F<[HY@ +] MG1"G0$O)3OB04"/\D;3\=6Z2%SP[ &#C47XK+SUK7WKJB//8*DN5#%);FI7% M=##?K+H''(#\;J+B9ZC_U$HRW-/C>BADCQU62]UA%7RF< -OD]&;5M/O:X = M,MD'8!X=Q]0#&EQZ0Y&##47X*K%L[?94JCS/^%3?T>!_S+9^? MLH2)ZMXZPZS8\3RMC>@?OW#\Y#X>"-1#XNGL,8.GN#0A#@MZ _P]+>4 M4!^\HF)\,.1.3L636KMA>7V;("<(X[4Q;S)3EAK9 &**IM\X\A[@Q@,'29S> MR][TIH([L#Q#J@!N$UU&44(9 D,Z0%I.;EV')B=JUY]CG(;0'E[/F48?:.-? M6.J$6#[MG*;L'5 /"1^^-*$%;SUI)LJ[J03,#=29_+:1^-(V=(+7V? 4O0O3 M[VUE6P>V? ^8\J?N?/=I-\\O:F*K4#>X/%A,,LW2/D'XD';'U[U[M#/?5BCW MLX_OVX"_O]<:-ZM:D@#^*Z.<[A.=;%?OOV-4/QPX9GN^$MCDN;"&OCH\VR#O M'IQM.<$(_,SN5);=T)^SY1GP&R'1[H,T+V,C76_R"#1$SRIZAO$&ZO$^29KE M-$52O7J>$RJ"5#<=UZX%6A]+'6=0/SDZ4)E,9-E\UBA;]];R[%-W)0_;,T)S M$DXXR<"S3RA@HJ?0A@_];\D"M#8M%SKK\E8Y @O>5 /*OZ'+@#$5##8!G1*N M+QO+K4N=ZH7?!-SM&:$VM,**'84=.I9A%"W;!VS;@T+1 ^_/&9:H;P-C M$Y[(U=O)*BW07*TODC6'S"/)>OM'0@9L,0>O,/LAK @SW0)YR$G\%]J_E.> ISM\_KV;8 MGB^D%X0I=X_9!J%%L%IA[L@_=S_L3Y8$SY[*,$+\$GV[!U.&8OCKT= S_9!OX1Y%]PA:Z]F]CVA6BX\M^[\\VD4UGJ MK3L325N>>#X4=P40>[=KN]^3,&3_.:6&,&+ M=T.%"3A:/%=^L=!S7U2\9(^]@;_/&?\&:WGZ]P\OK\@W+]]C0GP1(="8$!$A M!)(BWTS,C2GQ,4I\,!_HW;/ATJO^H@3 M\7]$HN<'#S3#WEW8AG2/X>X?(<8 M?9/#Y0*[ ^[!__N!_?BL@&$I_.A6_:JE=*(,_=T/[!8=6*>'>_,Y-K]JTA]X M9M!I\*W :E4P/<%>)\*0$W(VUK_VPJ^1,Q.%=9^M1G9[3D8,K@S?I0)]02X, MFN791C,]JZ_;-M+5W5Z]T-B6A#-!4G\3(I)$CV$#W;!AH\ 6^1 M;_1HOI(RNFG-<[]JYL^OLL^A=9ZDKA/$2L'^%FUKE@^%K06VS(*C6SM1/*&D M&IZUP%O57I4I=2NF71D/R$>AS>,A+AF"G;&A3A3,J0^JK3G803M06N>I-(B" M=1%;5;%5=5?JK@6%]+>477<],<@9IBZ1FE=B-_J(6G*&RJ>ALJ/0.[+&ZO#: M :HTQQ5 ML)Q#119(+:O0\[D!"#DQY&XHO:Q2?Y;=$VK-1UMNKMEV!HCLX=2B8 U4I=;F M [#[-'HBN?.F3;C?B8@=Y6*%/\31L=B.^]YVW*4KQ7X_.E;GTE91K%EI;MUQ M:-SJ;?@&[?,A(';Z 3^13'V[]E@<'8NC8]\Y.O;QRIEH1,>2-9ID/3KC(B6J MT\ZH97'!K[9J&QZZBQ,X?&#!^XF(JEZ_H"F^5HVA>7XQ;- M9\/0V+%>^\ZA,30VX\YOQET=F.A@8\X!N/2ZB7?UM48FKG9VE+7?CZM1MI@F MB]E*D2&7!9^?>8.2,/5Y%-D&UJCTNV[K9<&7_EA2(P:%\%P9&> &2?)![26L M0H;<)6F.:VL3#U;% I<9UM(]@QW 2CG "C*8#"S-=#1)$VPM@$/:#0A*G$TI M*)>$4U0TP*>R >%5-',)2Y_=J04,V]VSPX)(2$'(IIH9%G?NDO[W:AE$ WP% M"OUT5W.VDU^XTDL4,[R:U8VE]\SU<)\IZF7!PG__UT$EQI,6@F5WEOUSIVKV MEK6M ,$"K:/*R;#00U# FW\*AB^LG1W,:3:%[\R^GT_:"@](CZ1PXE^)O9_A M?AQM)BSIV]NR@Y*][=<.J_9V'[Y3<+*EC&O-?V+@J+D085ZP._Y,AO\(B:D- M]=S_]-C\R0H4^#-0%D"=&?_L9^-O/P(2$U1*!@@G0;BO MI[9+"#0@GTF3 J&D)3Y+9@D^K4@B/Y$4F5<(=)+&)CA%*-B/\*W"TP4JT>X, MTZWBD%MD'K,X[I?86;$-S>"7([V2Q^.E1PWEV):GV'XE*SA]%8PD7H[LEAND MEUMU&219[F"6I5S-K!8WLFL6-!$<>371HVBN- M08L.@XV$26^1'#FU?!N,/)HH(::-88X1'!VKM=A'5)QL\C8<>3S1I3A>K"E> MRS.>IN-LF0F./)XH#SP)OB?;$X3% M6'+6+E9I:]#FTSSR+[\^S!5[7ZS+"#OBL M2'3*>*GH@Y%'BU>6RU:R0>1)?=;JE]T.G;?:+16,S+X<.9/H$34CF2'",JUV MTQ=S1I& (X^WJ9BOH@3EM&6]EO/SZG24SI4TE2>/%R^5W$*)ZIN:+@N5-"I: MXR(-*$\>+WZY6&"K"1 /9%9B\NJXG9LV23CR:/'.>+EZ+)8+#,<.&MEUJTF: M&@-''BV^GS::?858;A!YRL\VZ_99V >4&/VDE, M/$ /5MS)"UT M^%.)HF4'WT]LOQJ,S8-M .--33C :/1L< K(SM9]A6_>!O3"#PZC>KL;UL!> M@O@C#H24,.$\GKY_#'.'(6@&VEMSL#WP>C;$MT.IO<]>(.:%SX 8F^"0=P/@ M%,F3X?@F6T^(@FVOH<4"H3&UV18N$ZQF_]7@!3CX'.R_.H6_$(F9L ;^^SYF MQVY[Y!5@+W,+VP$F!ZBZ0VPP97>'F@$[Q,.@ !P!9RW8XC3X19+!I*TYQ!Y+ MB,!>!59F,$4E1+ MN94<'>O]UQ@F6\"3,N$X@&2'VS8ZW,,V"8@_-YL7T![ MAN;S,XV .2>_ A]^NHSHW43 69@ CX"& G@&V#MT)2>"8_@+Z<,ZBV,TPN^ M^QKL$&\&!';-*L>8,,X7LHSE(L8X,B@A_6.LF.!&\ 3F M3 @V U<> D#& " W P!"8"DT2J#IGZMT_\-H)D)^[QU 4]B5^[A=>P>H5#:6 M@F\O!?@WEX),BHBEX-M+ ?'-=R";ND+J2I0V(!:"V""Z&X/H@PD>4?.'OJW M[^,\?7 3_AP9Z\M;0A\!7YW8HK=PL+80S&&P3G"/P,)BOC@37V31F^*+?-!] M1=J&OZV8+R[#%R@P&+Y@1\[(&(6G#,Q_QTP1'R+O'R*Q'16+P#<0@1T$?JP4 M8PLJM* LQ]WF9PJF%+-%;$"%?#&PX5(L17%VJ2@Q;\2'2, :C"F=YHG8AKH) M]H\(//NIGN?10F?_X-[M"B'"2N7[49>1X1=H6MT1OVP[M3HQIUS&VKHC5J'# MSO4QJ\2'T#M[=^KP^9Q=%@$8G_U5?R!?]VP2$K$M.!\V1'#_'['5?;TM'B8! M1 SFYQ6JGXWV]\[9>,S9NTS'F+.O3_LS?@< %!?DP#\+I;3_K)N#2;]N ;8H4VI(X.M6,K. M-MOF%&CZU,CK+E(HZEU367>&DPQ!TT^='AXR1/8-;*=85&^JY.LU==M&^GJ;J]>Z.L9#OMZ%[;!2H_Y13[GZC45\XG1 M YS;:XX8(6.S-39;[_+FQ6DX M_9*;T<<(EJT9C6&F@J\D:+9"=_O=JY<+M]68_RG^J:0Y9Q\(\L1._/M58![LZ>4?A5@]^P-/=\7X$@Q:Y$T2')+S\XO; MMD% ,P)&DB+*IU$%X],2GN&S&4KAI6Q&P@5*RF"X F9P (E>]F=K8B#F)+WK M8Q3'VUJE%C0W.()NQSLK:Z;KK(1XDK/2!Q7-X<;JJ3X$ZIK.#1]5/:D/RHH[ MUW6R,NWYI_H0I"NK"5&;-">(X../2FZ(](BYRN/'$/,KP5G-)42:(D*O:9:4 M)K]VBBMK=5" M']!@Y-$\T2%+&L:DA2"EQ::O])HZ[^/TJ3X Y;%C:P92#.37FXZ2-(BIIU*?8!4-FK8 MD?9PY(1A",&LI+/,>C@O%-:HVIH.VV D^7)D,3?5&ES&L?0UHF/U/F%J;-7G M,\=O]QB'(M82EV=JJ/ZXX/K^(YT-F@L=#N4E4A FA$SQE"@ 'B0Q@<\JDLS+ MHJQD4$7(HH+T\N%TKC_+C\>; 2>/:&P\,?,;#CO9A4,O4#G4,/@60MHFA6GK MYK0S.\E^A*%,S5R9)9 NRTTEISI5,QW8LB+]R"ZM*6"R7'#Q.7,1K#ECF9,N( M13_-B2V+T1E9SE4_O\*EXHLYVN]LJ0J:3Z);I#O,UP.[B M5)8\0V:5EWN8$QQ-!-9%03-@WZ>@ \[QOC;MW,#G1X4BQ[I8AU@J!-B-\"JQ1@4C_\Z P)_&7O!(-+_C+ M_BC'!;N9L.9ALOX!? -@U@4H!E M ]IZH"SL >_9ZNRX>/A ME[;3\"W/D& /!P',+KF;T;:C!>S6H%C08H:OTL*6(6!>(K!'PLJB7=L)*&:" M:]G.ML.$:06-&^ 'GA-VCPAW&#YH$C!7,/ %35XRVD'C@-UZGO\LS&"-7]Q0 M(-(-!2@\E7FS,?)>[Z^]YUO@F0K@O-VN[7Y/0E_Y9]C,S0?[]&X3M2TQ@A?O MA@H3QX*<=^%^:F\;^[_KMCPWP?OCT!'^YK5]3(@O(@2:2K^9!1(3XHL(D4VA M;X)/Q82(5=/W(D2LFB)"B&P*3\>$.!\A/ICZ]J[5&I&NV)=5NQ%;Y!-Z"?%9 M]!(,3U$1![KYYQV\DI$LV DFZ%19D$49AB1"MQE''TZAOL2,'PW&?QVCY[Q0 M3DCJQAD\K#0]$VS3'9,Y$W$TTG:N<+V%@(5I9//]< &8C9M:[8%;H:MX(L]Z .=O@1_NX5UO6VE"7^NNW*?"!L%5.T9G(=2!RP MIL$RP1-.I7)V[56WH!5[7(UISYCBDJ]A39B_@P-3%'U(9S)'F9Q_QQ+\W24X M.!FOO:XK2_"%ZXM^6X*]3*6)S,KI M<=<@*-/M)X

=@?^3\^<\W:-,U>/$U-B2 M/4_^0[0%[>ULIB^J$_QPD6#(K;Q5G&).J4B,D5I!S0RUVIP5A_Y5GR^R8*17)G%09KYJ^C:F@@K-<(2$\@?YPMO7]O2C9"%?^W[_"]V5Z^] MW ^HR',B>,1,'RDN^&*W]]K+_1.FC[I[#".FVYK"V"F^Z^N==#H)H[=[>02H]' ,\1-;W[=K?1_L0M*1Q:2V2H9;\+,<_(?'F[FQ-!O0'2Z/ M"%5+Y\FIQZLOO_M'4PI_A0\".P9L3^, +6[[49#VN:7%F4_*:Y/DSY) "Q"C M30Y20+>N D$TZF*]W HG@?2.$T*1)\>@@+%I MR=,[-"+[Q:PA]B;IQ8R&N)3XCU](ZH1?$&=TW[<>R@Z)3L-P9EUD31NS7LEU M:;K5OA<]%/78Q9?IH8^'+"ZJAZH--=,P.:FGDVM/GJ -;]2IJE /D3]^H2GT MN*OCR[STRX&$GT677 -;\27@:S%$U@Q#@6M9L)V$?!H%(P'/IL#XA,RQ!<68 MR*+@.7( 5YFW9F!IZX0O!*"8PM9\W>+<[*S7TT"A\/L.8)<$^.Y+^,I]:,IP MI&:*AN?L(64^XX >PGF&.)Q382DG)K)LOH#C_&)$6QJ\?/?N[A,V*1/@L,I2 MT;9F^0#,,WCI,0#N,=AMK81;^7Y_8W DUY7MQ9(MVL-V5,!N#V%.MTB%.]TBVNT%\!H -LF' &D*VFY884ET+(4TCP/1X)&?$4SBE0**)GA)"J MPL0*F&#+KA;0[PG'>@6H]07>+&1G"1PI\(4'V*DQ1FJD,5))*H5^4[2O=YK) M['WO]QGE?"AL> K_I@"1T:8+B@>=26/"1(TPL.^61HQN%6Z?\G^%7;M5;! K!]M>\EXNW*P([&V]';*EG5VN1 MPCCX?-?6,V:.;X/+_!^&E'/KTP^@5YKS] YF-C>LM2QW8526#5BW$=@DO$YU MFWR#X2I(OEZ40R M!WMA8C]^H11RB93VNY=+Y#I9;U&3RY76+6WJO:;TR2#:9KA,U+U,3V%QRD&P4)_J 7QGC(2VL&2QZ!WE'6F?'1%JN<*2'M+HYJK,ANA!!%!SD61C' M.?-!'C&[>F>()0(2)EK;YLB)EB'$3OX?./D1"FI%0D]=PSJ82XISZ&GLV!MR M]U9-S5N3H3);TSZB9?!ISLS,!+X;/>-@HA@%"ZG84V9-=->3>3M#LCS-$] X MP(]!CF/)_708();@9&O562#6>6 M1;E\$M?73I_J&DTHN<# ,Q\5Y&"GN4*1NR7O'N]&:T:C4@8!&?&D[F8DVX0 MPR115@M<#>/P#2KWE,,3B\,J=;RP.ET9;@]I]"W+] NJG/ZL+.$P#?#S10I761ORYM+^8#%! M@N->&J=HR((-Y7[Z8HMP^-Y+Y'&^FK"!I?=@;,-54YF7R9G__5\'2:A/#@"L M&['LGSL%M+>L;?(K%N@B54Z&.:Z" M[\4S!\8>WLH!:RJ:>C_N>3#H/[D$"1 M%$[\*['W,]R/H\V$-2E[6W90<[+]VF'9R>[#=W)MMY1QK?E/#$V1%R+,BQ,$ M?R;#?X3$U(9Z[W]Z;/ZDF+U;/=L+2GTL)9$/:W:<)ZX4?HF9_.%LOREPUR=72A3SU.&%[C0P<2;P< MF>1;J^*P[;!<;=*J$[51?6QW:!X_?GM+2ZY)0]UDF4%Q)8X[T_7(+OEA)L+A M2$5MM@5]6&HS7LE:3,BI7ZFUXJ,"7W=PFT2F7D3K-[D,,TOM,%(\N5( MLHZH[5!F&:8_F67Y7*(O"A@XJHE3+KK;5.W%RL: MY#)+H@-VND27":.23$II%(X\VB5ADRTMV7%60!8JQJXJV-AQP#&7/I[GNEZ< M:P--SR-RNUA'ZPQ=PK0V\/:.YCDOCSBR55WB3'+>)GES;*W!3H&11_-D\OWL MAAJ59,33&FAQ0=,CFH8>Y-$\R[4IC7')0A$IM>U>V:;[Z6$#/O-PGKQ"*)(H MB )/B*+(IRE1X2<2*?$BIA#I-"J)6?'HV3F$FM1T&4,XDBHOAP2_R@G-]BF. M[G?+-,>,,PB3G\AEKSMMYIS,28YFNX.J5ZI8!E(R9E6<4#M-G&V?XNCZTN_G MY+F104I.;8VWNKR5G]"G.)J7<'_M*UB9J[7[-"7W-!8G3W)T<9HWNV:/19#! MLNF,]&9UML#H4QP]QD9-=Y,AYES>2"Y;H_0 +^+T*8Y&O62SHO63-2YI+!R5 M':V<(>^?XNAYI[C4W9XSYM@T@6?(;A%G"^HICE8XAV?+$]G5:WK2%):FU=\\ MJJ]Q"Y@JI,;2#5EE3O<9P='',TA 34NDR)-H4T MUVV6VMXPDQLA"QJ8HD?S]"IEHDJS_",WFQIX%4DWN7+2#UMP'(Y$\&'+W^#V MD!O04W+8''KIR0@VZSC:S\VRF]'');3,E;J4WZ1)I-%)TF&W@'W)0T5$PH@T MRE-9*'DBA?$"CF=X04]/2CVCIR;SZY4%>?]H#T25M/P-.ATQI&@2ED0"M& M;J;/9L2X0HS2F7ZW'=YUOU F\T6_6TRN%_IB59\\CM.,K@2WXD>OKY@;?>V* M;(_!W(:-K44I0U3AR*,E=85*V5:I9!^0U:=M/E?OM!;P[<<3Q6;<6&_W)4PO M:;XGEMHS8>G3I[A_,.YNC*PTD!!A6.@6!Z,DV2F>Y/[D>/"HM O3-4+6V#4_ M:ZXPNG.2IR6L/IW-2[T6UW6SHV&7V^0:P3./EF2 \[G-9E&-&V2RS4=JM,DG M$?A,%'TYU-;'RUZC4P-'ON?ETUV_VEMMU%."PI96E6SN<=%&UO4AAZ)T5F6( M-D^=&&G/I]E&S4CK6+E9G>AVW_$6$'SW:&12]Q[;')'KZ4(MW6]G&SFG+K3Y M[ DQ'60:RR*EDGJ-+Z];@WIWCN9]"*%Q-'2H%F>X-%!;C#QLKHJ6TF',$/7G M://905>1+4:=,3-BMB(614*JK7? '(=#5:4_2)/6>LKDV0V2]D9*WP53!4./ MMC_97AJ==EDIZ"R!-L>/6<+B%H!J.LNI?A_\ MAGHBSW5[;(/I).AF(5%BV%*';I4K^42E660[#;I789N1@2MAYS(DM*DFG)!6 M3@ 1(SNW-4>&(!">F_"GFC@%WY\+X%%R M GQ3,$4(1*&983 (AJ$*8Q*=ZAF ;Z\1D'2!% MB%--5A+6T_1@$"E *)D)NFP_)"P[ 7WD^0-$L(!_#"H!II8/L2@$ [ 6G(LM M.Y9GBW+8( :"J#B.[#AP*'AR,#M3W *71($4.:""\: -!!F)@ 92U3Y4$+8J6#>EJK!\. M$''@_#1)MIV$YCJRH4":3R",S>]&1<%*9'Z3K)FB:* &X]%KJK^LD(-&LWWN M*P(@]0=!48@(!@.CL!X9[/E1F^$M\/238&YUJ/,2T*DIV#9OJY6,/R'J:T2H M5(9+J4=E257]\0L([%&4P- MF%P(V=$4C+6KB4XBJ/<.VDH!O@J0E.29!KA"\D07/ .E@U9=&W+A,.!:'LP MZTQVOAH!J2,O97 TYM8-X=&R\V 6%GBIDUL_G;@[[@DB5<>';E/DVD9A.5SJ M>7M32'=4_7&>HZ.">+1='B";;\Q.(5_K3(%YDZKX C#Z*X74QY?7UB:V?D_=KT_[3 ME-Z%LB%'\7Q[4-!BDQ-.3 M KW8+%2E'5:^H1>!J(]#/K'*BIC*.I_I$#&*O[0F=H@]-XUBNP'-BC&8(R!95#LW#84]V%9X*E&;+T]T6*--3W M)A>7:MQ6J086M\.-8,(FEDK'F><1I N*IM)QAG,$"8.ELMF8+M&C"YHBXEK M*-(%*+)88")(&"Q%Q0(3I5*-MPWD>PRFO&=\1GO-9RC5H%($=E=9K9*!QO7/K6,#=W^Q'^&03YYXT;I%.D]I1SIZM[YG/[V^P3UG>!9%C)#GO[XG MHI=*=;UC*N)L?5\5&_3V$K?S=(=[@:2CX4)WW2Q%XXPP42IS9&$7V:]+.[;6 M=G?:FT]99M"SLO*(2([+FA\6;:#D99*.J.@)]"M:Z_9B8;D[\F[/9PU\+QWY MF:S,7*1UY&+TR(L;HH,B,W$@&RZ)^[DN_54ZDO9ERFPN)9T3%EVKR6:ZN);= M=EE BUHP)G/:XC9HKD[]7%OXX QK& R(EI M' N(8P'7B@7D(VWG]A9E/J/UF#)30K-DE5994FY\60%2HS+ =&Z:X9D\QZPS M8X/3)6K;(!&]2$?N.!9PR86_3$=*,Y+#)Q:U1KJU]:)J#Y#ETH%-+[$?O[!L' N(8P%Q+" 2W'E0 M9+F7OOOY>:2>9[++$PD^V6MYGD*S\NQ$!O%A6O!^,O&3Z0/KY2S[YR[?9"]S M^?AQL/\\DB+EG:V!$2EDE\("U8_\M&$)6#.70!((?.]^JN_O5>QM'QE\^]#T MV:XH=CET$H;L!%6I M)JQ!?87-_WW0QNT*7=V*MC5C5JYLFX+Q;&"XKJU-/%>6>E;1L@%CFWEH)L#N M<[EU2;940/RI)M*V+!RW>RLN51IO/6;2G)!L2K/U=-WRENUHMGM[+A^>K!/J MT\)@P:\ >U*&O2IAT?!^B\F@&>;NF]LRXH1OV7H"R/U19S=8V0R^8GD., V= MO^/JX>?JX2\N#2:05":N=(QD@1 2-S^*(%W0%)*.Z1(]NE"I3$R7"-(EUF/1 MI MP!6.Z1) N6(J*Z1)!NJ"I^'B)(%G(5#9V7R)(E_C8CR9=XF,_HG2)F[9? MDBX?S'MX-RIVC[=[[ZGL:*_Y"0\D^UD\D#21PM-W543]9;U;W]->D8<&B07^ MYM9\!@ @-$734&L!*/ &[$2_!(E&!OP MM\BWUY?5W\+M?'*^L<\ZWYFPI]O]^-Z[%.NSV3 WP0A_HIWOB/B6$N[-V9G@ MVH;LEVD#_+Z@G&-M$&N#['H(H:C "O892G1=047DNI,LAJQ15XK+!NQ M;?C?LX5:[P75ANL6>+63JO@36,BDIVZG:R&-=%ED.ANY''CYT#<-LD_@&TAKTR M4_!&%Y)@H+G37:EI9=?SE78<&?Q/Z@FK)Q '_ G# 1=K"Z]"KNL<-IPW%YL* MMUE/8*-M_,%6[EGJ7WDE K@NNV:KKC(TR) MFF6\;"'I6T8[A*-*7PAVE8J>B)X??>4^S8?PDN)>--!GS8=3F'BWJX#6,VPH M,'.CJ2_LYIQEEVJIK/I7-A^,&9N5RI/!DLM7^WYUV;/83$$%>BGSXQ=./E 8 M_FW,AVO=/]V+E)\5^O*>Q?R2=L;HL3S&!KT?>7W7-PT_YYOFF]$\,S+%3FW$ M^>2(D1VS,1Y2!(R^[R; ES3Z:L@ 7:%X+<\(:KE'SWR]V4)4(*D0Z_Q"#MRU M_+L?>;*7M^P^)PS&E6]9-KI/M/"NR5$$W%\DG=RF=)C^\J&Q6(M2-AB M0O48K[5NN_/TLO-8@89%!JJK!XJZ4*O&V+"X(?G]XFC2[0KP)0V+/J$7V2') M5#A6+O1; ZKCE3@HJ3":=)F.JM?/7_JTF-Y%HE-5 (N*0_QWG>!TMNO7.,OI M\ZYLM17-$Z]QKNM:I\=ZHFH3J*_/C5_J!(B^2/A%)(R/.A;JIZ-7M2ODEK9%Q MH48YE6:!UP>V,ZR9/C:X-0O4$T#PZ];Z7UI4KWF87,K55F)6#%UK7-PQI7+TT=NT'K M253S\3J>6:ZM-I^!02CR <_<:3[4F0-.-RF57QQ=NEVQO*0]IU:SI:$ZFW>Y MA=!GJ[K11.4.#>2/ /(79SG=29;3F<-&-ZENOC9&%%5M0XW)0FMI%30F.2!; MDTRAU^^7KEUO[UOE@C1F.AQ'FD5!%Q=(>\'Y0 EE?OS*/"!XYCZ-@#AW*;K1 MG]N5WTM:"T2ZGN]SC1;-=!<,R_<+]3E1@]8ZC/YDX]2E^TM=ZLB.N^M![UNV M(<71^8NG,5T;D.VZ:4[77GVDC,^/N;IS27%X*+<IO* RBN[Q]"USO+:K2% MBJS=&6H"V,I6Y=%%)!B4QK8DG_<)*MC0Q\I M&^=C#OJ)J;WG:XG%?9I#(&,G+Y]>#)[TKS;*TZF MCR!WA8TA%,5C]Q)L)TE<1T[BLES%H&R?J\GAR=_$ZS:T- >UM&9Y'0-$PG+] MPBKKQP8S4B;JMF<>R4U%*S>5PNWX.=]2[OAKOB,*1L,Z=CAM]@ 8,^^V"ZVA MTG[L/G8L?9:>PIW&OV7(7-#"GNXP'5M![;5+R[D(Y)?%RDY4(O=IYIGWH\=! M-7G3&Q1J?,,2#&TLS7I(]/#-P3U>'3QJD=*]5$,_MO#M>],/(E7'!C-2F_ZV M!QI-%2.#<4&?2OG!N%U]S*C->Z=Q=>Q\KDRG/+$[]V6:9N_2LJ2D+*6GU)'F M00E=J0N:/]-J5&3//V1(Z$0%K=N?](-S5(BDLFM;&Z[=B$_Y=E6)>%(W8- M5_BDJGA0\^KJU^/QLU&4K67]UO3)GW_#?Q;SJ 90;,0U_7\V@>?01Q<*CO[? MO>BIS1:2++]@ER6O)$4?"KQJ_.]__]?ZZE=!RIAJ&99]N5"V:V#U_:Z3+.;U M'HAU;* ,8DH7?OE2,:;*W%D$4\0XM]#CETM]C?! 017/)?Z76OL9X2.$S*$R MBZVA+!"MF &Z[F7PVN(95M'+AY:C(P&_M($!M<<$H-DWYL64<:W1)R4,W-VM-](37.-EOC7/>A?5\;Q6['/;2S;8^T MN6%-Z)G=.ZG /-UWK^5!\I:=RFQXY'C6>9C3L>RLI?2=OB)>9Z MJN>:UYI0X5MC]EG7[JM7G%M+RYQ,AT8R]YFG?+LR:LUM-Y&XD^Y&]X4>'!GZ M^K 7*T_X>MV4V$FIHS4J3*)10R-#7W>XVH,LB]/FH%$!(SE7R@$]69?Y\-=' MZ7PGE9Q?3UI G28SG=*MT!V@WCFAD8IME?LW]>N*U-#SV6&#;SCE"AH96F?Y MD4LW*B4S*\6&@E1/"\52+QWT"<,CH4)#=H=N>GB?]=_KR/,J4TKG[,E4:CP] M/T[D4(,?"E:4:>>I=J454W1I8A;'_?;H>=;H;>_]#;4/ M-,\ U:X$U^;.V[H&=HEDT(>?K MFJ<8>!R M\I&2#S0:TGZJKS4WMY0U\RW83\)[MFLOOKK0CSY8NYV&)86X\*:;MJ:O MU^:WX)Q=2,P%2A:_QY A>NEOP%.(A'2;I_J$+D2/$;H0/19UNB3C MPIOE"0A=_HHN'TP6>]<\/L?4JO=4]IZCA%^.!>A]H8?_^9'X\5F,T'&1V3X! M.FI.\"XHZVQ\-(C7=2Q#@W_, 16?D/AG9!QSL3@LZWP^LY((2T0HOYYT\6H" MQE(JV,]*A1CGSDLH4#AP4P((6WR&+9A0]LJILP7]%8HQ8@GW* \ :!2^QN%0 M/YE?7\;V$0/T&,GIR+F*&!J^)AT]^0T+U:<=N=K]>(W#5D-62L:C6,ZU;B3A ML7;'ZT5CEC0^GQ!6L4S5LVWX4?]8Z85LKZ1>X6N#0N*A-;R>-[ALXJ[V,$5' MB]R//YQXP23V5+Z+R/UYR[WP#=M@;2((T 85I:5[UM)[,XYMK%PE^3X6@B$8X:XT@A*X3?6^-\/G*#O., M!I*&WNZWA/FTUM1G22DO?[ZTR@X:8=;JY;2BFKNFE=M:OU6Y&5;:?:01H,7# M7K )YLL-GH@9]GX9 >/%+#SBT^W=ISOZ?:"C!7N.#GF45"8CM])FH:.W!JG! MF+_G[*=R)]:M[%7UR2DAIPW2.:]5N)W.T]7BN#B93N4$,H9X^B))O^7L$85 M%,(71X&.#GF4% (M9V*]#J"?'N0!>'P8W5^74JZ0W&O4U\YK5_.KHJ1+;+W5 M* G)V9!MH4L5*/J3N! 9_CUCZ.LNZ8W^]HZ>ICLC0YE?ZJ:AFR#605G0!3TZ+H"%8\ FXO3R1B&4+K!D:TKQ7(NB*7IUC]#_=[>+ M(LM+BC^V_90 HE18E;ZMW+$ PO6_L;&],.=7;DP;_+-VX]'_U"L'T$=;CU]= M 3B!5P65]\BPYLC+"/^ MBJ8-W=S=NOAVH$M1])NZ^/.2'US.Y!.,DA(2G)Q, 5;FM00MBQT5R"*?HCF@ M*DE1Y;:O"!:?K_/6-%.VI&I9*:1ZG?:X/'CQ&7KEP:]Y;35)X:HT%V; UG0L=^]F;UEZY'WN3,A*$J8V_0:#VDQ^U,5K$> MTC(?'CEX',6>;FK/,:DP8W1S!!X$ :"1J>V1E4JF6ZOTV@8]EV[9BMN@K^[N M>VN7'I(]Y]:JV$_MJ9P,$^FN^U2DN;[0DX9B1A?GR;L< MS:"FXZ&%5A0MQ3)57I!B=T[U*9N>*+>SJ=^>?.MF:OZ.2ZLWXT>:[3YSG-W4 MY,($C0POM-7L<;FA .DI>/9C-@\[(8!NGY*O?(LK5(7 -^R,Z\Z?[)14?1::$W4@MUEI&A2SVH(_:62L2I/3I%AFEDC7 M6(8W^NF@^LSF4$]F9VQK;O&M[..H[C;:AR[<93.9FB':EPQ]Z/ M+)6K#5F\@#"R[LK7L<8TYV8D5N2'9O^IKV:&_M@08!.F[/*"KL]I(/6M>4DP MF\EZ'4X:1A?G,$W#+31G-/"2,]KIY9(R*N[!AH5/IX:/A^=L74J\.'IM3*CMV:VHN- MQPU4J.P%39DVJT^-8@-8@P+7OQ>>A%:JT9NBH2':2K6A?'N=OU,&#<.=#JK3 MZN2FAV<-H:"I-HH/9B7MMH;5YM60KXJ-2AVO-4S;I'E]4Z@-ZK&6SOV^,2ZXY;Z?>]^AC,>M, +:] //F>'C5#Y=O*7NTN661-U(Z4;K5KJ1 M*LW&X6YQA[U'1 )J@FB ;IHCLPO,=)<:08*#"\JR\2-EB-(SX(_0?ILN3#4; MJ "'SJ&M[@##H*#E@^T]]-9(T?$?7%LQG2ZT]A3*T!7?]*%T$XW%5KHQ]X<$ MT80.<*< F!0J> 0G&BG(#->A7>3B6_!!TL(0*(A5T"D+I2DNB%--]-0S7'T$ M_0.X"&\X0O,YE.?X"_0A[.JF8JJZ8L E.) 1T P.NF8/@8&+M/VQ\$/0(/'0 M:8!B0IN5ZNO 5FRU/T=QA^!O_LP0$G\QT,RFNANH! ZR576G#[0+'W-#9:8/ M(:5\-,/W$3Q6!Q)R@OV:8&+T3>B>A8=Z9GAP9PZ7/O9TO #\%8P@"V5XA <# M?]73/D2Q,E%T _TU3E5#(R$Z#*"Z&ZA\B28^,Z#U04P@GD'+6.>#%=$["OJT MM:0M))P"U^@JT%?7J*YM#2G$I". .95R+,]6??\ +NLET)=KA#^-++@H^&F MZTL@BYI)_N,L5^1_VQNABACP36NZ7,4:@)B+G!49$%. B-]Z$YMS:_&N6TIFQ.'=^++Z@,:;KB^8>9$&?)2P3(,H/+?B: M ^?6NQ!H:/,N>'!A!&IH1MN??MT"?BTJ'I&RF@>+&OA'NC>^]:Q5S5N SGHA M5V041W\AD.#D*_V*/'UP6B"3O:XUNU>)X;@>#B2\/&ZO@80/&^/(X_6+PF&_ M!.L+Z ?9T(,Q7=_[R%I#2).5-Q0HQL#;P(Q' MQT(H=_*SI8D9YK/E-A-ILXG1,?CE$WJR,8AVHY<-6?+<1)).U[ M2]I^+)COBI;W M/?%"]G+T5_7QT:LDXB>JSSUG94QSE47U87_,PY9"\!KV^* ME??B3=\4+42&B*WRA<&.T\;+!RO9'(H'9!#Z.CY!V]Q2&-ULYZP"=F. MB2] ? 'B"T25FXCR(;X D:*H6'HGY@O<^(6]_-.3KF43",, M0K9DX@_\U6T)8OX3\S\*0D5T#3'_B11]:_._N*@"3,PZ8O>_:OEB<3/MB.'H+>D*E9#V?R *F=AVKZ9YX)KEA$.( M8?>J]8^;)A .(4;=:QS26FN=\156W;'+!1%E^BGH?6,C_&\('U]FFAV;4;X0 M>:C7!V&<_3..;Z"=$>/\Q V??(0QOP@+'8*%Z AL4GMB(9:PT %8R#?QSHB% M?"?!1]@Z.W&_OL0@5-1!S[8\4[O\EZH"T.T>U0;,*DZ?0DVA)XJ!BC]^F;1$ M#,X%_W_1(7+$H#M\'%B3=-S6; >R?QGQSYVU^>A!=WC6]INH$,X^ M/NV_DK,C!]SA&=NOVD$8^_BT)];(7M)E3Y.U3RE= #>^_?'GQC+!?-%R?.BY MGF)078CVKW,?OAG_'B0S]2V8_^J?O]Q5OP M![GA*J:FV)K<:N3DWE4L+2?J4E&*E;LC\3%G2'TM_6.C*WG:D:O=]3;D0:-Q M>=EH/#/'1R=90W&<]$QWEB.PT/C7C_)(5FYP?H/L#":2;19!IS7O-&]$9OIT M/:W KVI U8>*X?SG1XS[@9IE#Q7W/S_TF7MI>D/-JW)_,DU5[J;VG)[K!;OT(-4?&;XN,[3, M_?C#L!=\DO_W[TU\GDYX+6H2_W8'S=.0^/?Z31*!?T'@7YA@^>.5#FS%5OMS M''?TC;EK]O.-%%T: M2&[*+#TGGY0>TB$"T2$G6)MRWRKDX*4D=U AB%(,^W7>YW=CR[,P9@]^ _,S MC'D69U"-OF6[,1?80THW)\!Q_39D/Y6)HALH$2L&=ZZ8 S<:N*%U7,H!JF?K MK@Z<7^<:(#J6U$8,#5\7)R/'55&AZ;%\K8BAXZU4F[E84Y7Y>QEA*(EMJ+Q_T=E%3@?I^4DB('=\2J M_Y '?MKFGT81]&B9VJVT M6>CHK4%J,.;O.?NIW(EU/Y%Q.M*Z#DX5V\H3P\?Y36 /BZO#_-URQQA[.G3O MZQ-)&F:&A7FU,?5Z*C1D.3__-'%!,\+^#%FB.EX[)SVZ_!PFCS6*D$=+<^S! MC1[-^WJQ&:MKM%=EKGI/?.WA<1P%960/NHU9J9F4!N!NF+AKMNOJO(J5D4"4 MT?&.MH\ND8=)B(TBY,?UQ8E$?%_+_M7S\J.#_A4>_&\7Q7WWL*(GSW'U[MQ_ MI)NH]/TED]H@V#8G^W]91D30^?F.S$U6_];*=M40OCU1\89P?O6%WS5]\N?? M\)_%O*H!%!L)4/^?3> YM(B%8TS_[UXX?K/2$LLOY'_)\"G:APJO&O_[W_^U MOOJ51,=4R[#LRX78KH'5]XLSL5B">R#6L8$RB"E=^.5+Q9@J8WKR)T$K\A:ATMT4BF6%1.I'_XZE(7M?C,5 MIV(K)_1;WETS=?LX+WG3$K3=979[9(VI#-QG[(WSI TO.YTO#^OI?H/$UE+CRRT>G/4VE+SK;F\]*HH7"QZ^YP*O/A MD5Q&2^7N^T-)*I2?$D]M9CSK==-P9 BB\?"6U9[+M@3Y*F>F28::K"30R-&=W(@]N6\7V(ZV/:K5RTBRRU6P=CF28 M[:'W=WT5C&Y&BI1E!&W24E/3VYNZ+(0_WTN7K:>8<563LEXR)FBW?$9VIW!D MZ/.CXFC0FEAWRJ =JR;AUY\7HPC"9T]U[QZ/;4S@RM%"Y8Y6D07?(TP6.'CP^7<[*JOF&2E;N[WQC#0S -,>'!E>:,S.5JX[':,JE9Q\HBH/($&%GIR2Z1!! MGWAV6IK&0,HW^-Y-3+M-M=AJX2Y=9+6KVJP.1X9 MLBHW@^& 2R=;A896CI4>6>5QC+X> JE<[XF]TG51;)7DKF1L#.BLJH7V.5$CH(I\,( /?SE/T4 MJ17&G?N6;MW63:MOYVY[<"P31M=D.+BW;N;)Q #HZM7#M70_+HGXA#\TM&RV M!+I>DKITX=KM)> _I8!]589],?S@5(:9OMF@]'SCVDT-+S8C%EN MMF9RID^S3]7J@_' YP97=10-":W ?IR.*L]&EI6$^2U7K.K,->>DT=#0K#S28%ZY3A3$7%]XMO"L(=I.Q::2OIV#3JM=RI0,CJ5! U&!"]/6JY3& MK=J#W1L4!G-C7*E92D+ "PBA8, 36=>V_"C@R %Q"F;9^M23'V MVF0D-LU8-\W[3$>XP=,NT06M-10_TTT/IZ3X;W9DW7E\BNG=ZU:KT9+DN\E5 M;LS*:1D-15]YY2TG7^E7Y.F#TP*9['6MV;U*#,?UY5M'LK>;?4!U+<.PIM , MHK#G0ME@9 ,'7]ISX9^SUA":!G/L["3_<2@%EQ*GAD!!H3:-4ERJJ^@V-4$Q M. H"K, 95,^VT8P=Q='1*]#6\$][0XU *)9F:4HQ-?PQ?WS7LN%O<.+@(SC- M]Z=NPH>6Y\"QSJ_+,_!2?'0OC&??]X6&LZ&,''"Y^&%]L*8!'"$$5&Z+)QT)7<0XL<*<1&R'(C=".;1^\&29NS+[WY%5UR&^6S/M 033T3K]MG?]DQ#*=44SJFF;E8G, [5 MVH[IGN4 [Y^ZO MQQ><@U2?/SFL'+R<_6F@AP"?$%B"] ? 'B"T25FX@O0'P!(D51L?1.S!>X4>P!JFG3 MM6QBZ1&'X#4VJ;I]0!CD< S"XCK^$]NZ M1533$$%(#!EBZ;YJZ7;@)R:H/"7A$F+NOL8E+=-ZA4^(O4OLW>B)5^*TQ"M4 M*GG1+Y=H9&+/Z4L ]P7]L>?&\L$ESTGUE.4D8R:#>!> YDY/G')&HKCI&>ZLQR!A<:_HY-'LG*#TR+D M/)?+UC. [=%5*SV>3!+]JE":_J TH.I#Q7#^\R/&_4!W>H:*^Y\?^LR]-+VA M9KG!WW]0IC*$* V^IRNJ,:%NJ%\(-R(&GAFW#VH)DX MI.;<28G:>*#?W6L%N_Q0XY]PHWCNQQ\F=4$S[+]_;^+S=*)R49/XMQM,GH;$ MO]..D1:G6(V^9;LQ%]A#2C"-.-6W< M,7E.04 -L=]U+8X!__&$8_D),,>04X$L]4J)C0NXIT3!?K6'V<'1YDY,214Y3IP-@ MC ?=@3V8Z8.C**UN7Y_6>^7'=*M=:SE:K72?2V:PTA*(TMI+A(#HK'"XX*24 M%CDH_8(( )&"%\(!IRT&9W$LV[1<5%V1Q/OV?,"ZR>LB;6ZP#ZZ4$>@,>'T?UU*>4*R=Z';>&1UG5P#M]6 A_.LV@">UA< M95GLEM17>RXDBCQSS]&ZEI(3CV7]F>M,98;#_CS'7H@BMS_3F*B.UPZ=CRX_ M!\DOCB+@T5(<>_#+FW;W5K_VF%2K-!/KCC9*=VCZX[<2OEX7:6XV->83;:,E MS%TUQS3M3J5:1[I((+KH>&?[1Y?(PR0J1Q'RX_KL1")>.\@_.F,<*$VL!04+??)?KI_T486UO-BA0QU3(L^W*![\6,"-^AZ5QK=$G'!;"(1[") M.+V(P:!M%"RQ1RF>:U$T1:/O_H8?7OR+4;5#)\]Q]>Y\'7-!L- M_TE0LBMX].-/LP\H5;'M.02&4H:0EUW*ZE(N?)RUAG QT(&&O H?N'W%I::69VC^JWU% MHQ3*T9==M2BH(X$*X3(Q7&L+\R%UP-HE!PI.%JJA3D&[G\%+1 Y ?+F;K9'] M)56VIBK6A"?(^PE$^VI_0,@*-G+>M(>7"#V JP?]> MK#, A>O"(<3#OT(7!'(0)(%GV\!4Y^C!%'I3V&-"]K^#YK"!YJD 3P)F(^Q; M4"^]#&8^52D;FOVUILI-@N?$%5$;L[U$B9(WKY[^H(6#6 O*,8 MF,<@HT-0_)G@/)TG@/O OR8I?:#UD#Q!8>C9RI#2UY$RL= ^@*PD]#I0;!,. M=2B\/4!X/H8F?V$8#F#[8/F"!GEZ!U+!A2E4%V+25'7%@+!#UG$][#1CJ5KG M@@XP="B-^"45PJ*[4RC(_?F:Z*(O7KS\$GKHOT79NC- H&^L&NY[(V!C!QA]C%0["5 $+JB/RN%!Y87V&YUY??H!NQ'LO M*(L-_-FH@8<&-%\\EN14$&81&T'V]%6JA5"$Q &8<(Z?N@G_"GY=4)!]?11: MW2[FX'<6\+8XO"8%<+M3^YC>AF.M+_JM=:$_O\3?62L7HXC1LX2Y;*EX!1LSX8Z?%6"U]>G_?^_''M$+! M',@L<&-YAI3N(64,!6G#2$'KBNFSF._Q75[A_\CM^]3-A+>4NU:,[GO>Z"Y_ M^Z#6MQW&0Q@X!F3!Y7Z-_T-UT7:W@Q[1H$F U 24@#D4;+@/(I%9& ?4PBZ( M^V8"Y!\TU/_EA?$;Q@0=M&59UY5(**&Z0YA65DA'ZT>"]3][EAUZ0W;H2,M. M.SF4)ZU)/MLJ*85FYTJ['52YS9.;Q >RF%8@(GWUHNP(:[+S-.P6[B!.$X/Q MW*TV *_-9*_^XP\=#]=:H"!O&XA:@>VY9*XUC;RNC+'U :UL?T-8U\P^O_R% M>GY-.Z[UL\OJ_+>S>S:T=F=D[\B3TM(9RPQDW6/;Q(27IVOC*GK5GI:&X M:ZA]5RY$$KS@OD4:G7/;Y,NU_%V);B1+ADKJ][[49K(@$K.:L76DWAWIF^N&V%'OB\;'DN\AN1 M[Q[6^'$_)!4*0"F^"\^Q0!&Y3DKF.$&5>0[B.-41%9E) -#E%$T550'Y=GTNJ5W-TTCE;H],24V&2^E:AQ;D&5L4'[7*P_U4 M9L,CGY^AYA/N%(\>IXI7Q:0ZS]T\]>#(1&C.ZSI=Y@JCPD QTWQ+8M+-6"H- M1Z:V1S)YUF0+5KXR\/I:L=PN@GZW@D8RS/;0@F;V*O7,4!B I/RLC#O=V;S6 MD[GP0H%6Z(WJ,WO>FE_EG[Q1M=A\4.HR+]/;(]-396!=)9_U 5MJWF5-4YDP M$AH9FK,S'13[)9V=2E5#BCVW9L/2+3.%(T/ WS9K+5XV,UDZJU22\_OK8J+S MA.8, Z\6A$2[U4K3[!BFZ:$T-B?57F=6NH?;<9+IH MSC!(0D)AVC.A/8<*MRRV6J6"F-'TU"J=NPF]E#$L=!.>Q'?FA7RQJJ:>[ M"JT_=ZI :G"%YJSG[P!080$M[;XQ3D;#F!\4@+IU!!#$).)40RI+V::4H^JM]&U3NBT_4/EB)5W)%M-E*I=NIJF?K4JZE2O",7[E MD6.$RH(0:=CG^,U[0%)%E98I!P\XS?#!K=W[1<.4V 77T>;W\J5<-[R)38"DZ/]#C"<29R4C]2W^WYL-3)@B4JAY MFRE8PA2$*;:9@B-,09ABFRGX%\VG+?>-?L6;V;1FCXFG(Z;.2Z?NR]<->+Z:[< M,MMUG.A=WR>R36X@5(9>.?7W9]JZV\]Z#J0,L(NF M:G@(P:@../R?UE1F+]3;2L0\>=YGIDT)9#O3^X<>T.8^G MVA9#:@L1\3]3\>?7Q%^0.=K_)5DM>I5QN7='E_+]\JW:3(WMS+'%OVOP6K:? MSM;H^5V]DE1+M![K]" $ A3_Y 7/B$3\B?@3\?^(^"?7Q%]>BLT M6]E18=:EL]+HJI&H/X]DYMC[?ZDW:S28NU:!!E?* M?7::EC*=&MK_&19K@%1*>$,#G%YP,&LY_H7(+X]E?$?==1:*ZIMHI4.$))!T M5;N!9GI!VPPTD;?HH:X."A7O23.Z;=%F4)$ U&> OA"$/97V/L3!%Y%/(I]1 MCQF\)Y]/>F-RTYNV[EHE3](ZPW*ST_)0N0\!RVR.M^3T)G M(,_$!G>#EJ1WVSWP/'6+;!?MH,B?AB(J)-_:0L\B5Z "7,HO@DJR!$B@\.0" MA2% J9\G[9-#.[_:0PNWHP4&$\ MZ)PG+Q)B,J2X?I&S "+B1,2/[M;O+.)2[TZ:L-I8D\!3NZY>R?W'ZQBJ: G] M>_Z"3_%$Q(F($Q&/8&1@9Q%_=K-ZOR]-:6G8J7;RXVRU35_WH(BC$_T+GB:[ M.!%Q(N+1#"[L+.2=@=Q4;E-=>Z![L8&@/31+=]G2M,&F MM]_]JQ7ZOZ*)WFRI^3^;_31)/,./9^3TB:X!',W /K$C)Q(W9;51C;NN1+GW-\!KL56LZ+] MD*CR1K(GI] A)!U'5>-(])(HJDU%Y71'AJ,EJMI@J(ZZ3Z7GTD/-G1)%=2Z* MZK-GJ'M55$ZS47I.-1Z?Z-)-6I3NRO,[\ZD.%96 %!43[LQ+%-6W5U091TST M@5C.2&SGX9:]\O1&3.H1174NBNJS)\%[552=YP[7$:[$-EVX+[B:6B_8HQFR MJ$2DJ.CP]4ZBJ+Z]HIH_3G7C*FLEZ3'W,*C<3\WF0YTHJK-15)\_S]ZKJA+S M([[W>&6)@P8G=IY[Z;HGEM)05:%C;6A4A6O1;)]J_\:M30_4GW53T+:EP__+ M9]JS_MYHJ/O"[[CGP%IG!=4 BHT8O__/YEXBRR_8>&VSA^WBX3OM+P+*N-;H MDF7BPIX(LZ54N!49_JU0?1MI@7\UJ]F7-/G[RAAW6$;%$U#!"4AV9\FURI\U M&K_&F9MX?0E=?I=T66- *L6)FJQR22#S(,7)8H+KRK3*BR++%!Z3=C=:3FMD>VI(?AC4Y/[VDA*;1'M;91'C1Z,AL>F9<2 MW3FC"@Y=O6NY9:=S,\Y;4S@RU%2^EANW.M?3JMNJ9OJ)J30K)(%5AR-#3>5[ M3^/6))_*W4M5E=%2(Z%V]?2,Y@PWE7^^5\L@6VXHM& 7LW/FWLQXW;K,A1,F+_2S.5J9F/,;YBE1 1J:,P1\C@?)F?M<*[3F%<%FK7ON!N B0B'@'Q_I MJHK=6N@B50BD23+7 MXX&0,K>"(.9G95K@Q*KJ[$)U,?I)KH^&0(I,9*8 M&UHSZG3;,AK)QB11&FMHSA!(S^Y](T/3F0K=L%K/4^?AKF!DT^C"5PBDWA4] M>.C)386.57)T-R6FA$(695^'0)HFG8?IW:PF#,9>\[Y?>:HW9V64Q!D&Z8$Q MD\U9.]LJV&4W:S/@*<^B2QLAD JM)VMPVY+*K;DJ#;A;^]JH/J.OAT"Z:C6\ M&[B^^&W97WWKS6;NI %Z:'[2Y.D54XPT0#]SNI!>==&D"^E5%TFRD):;T:0+ M46/1I M18Y$D"U%CT:0+46/1I M18Y$D"U%CT:0+46/1I M18_LDR^G=*R:M M O\6"Z0!^OI)Z4<:H-.D ?HY" _I8/LY&2$-T E3A)F"-$ G3$$:H!.F>)\I M2 -T8IB=@%<3,9R0!NBD 7JD-$M85V MJ3<-&J S%SQ-&J 3\2?B_YF*Z/3Z/7A:%AMRY[:4*-G2G)[,V51QD"RX]2.+ M_VVBGFCT^:>J-*]?EU@@Z,G"8SUH@,Y=,"\4\B#B3\2?B/\.U=+IC=OEM-QF M%5TO%&[KK5@GS9$ M.R:<\JDM:8!^+H5628/(Z(4DWFL/67E,UIBQ:*6E>:9B/Z6G)Y=S^]_GKH0^7"Q M+"*>1#R_@W@>Q*5_3SQKCVEK;!7<6QH\5_/S_?KC.W=4?+#RU_7J]?2!UCM.4IVGW'MA&C0_3[#A% !2))<( M.!'PXWOT.PNXY'1>D_MT:^X^JI5$F^L,.NE%Z_,DQQ,1)R).1#R2D86=A;RKQH;%GIYT MZ.Q$ ?.2*$YSC5[0^ISC+GC^_2KQ)W5@3WJ?GT]4\]OU1B51=\*?A#\)?Q+^ M)/Q)^//\^/,LSNQ([_/O%178H0%>N6!R3\6;^<. !0-1>T@(,_>IOOWN7ZW0 M_Q5-1!K@?3R@\36]SS]\^+C7]G=7^NC!2'!*32ID)THB)YCM.VNZZ'U.DQ,* MHJA"BLJ[ZN52=BE5I1M*SP8#X29MUHBB.AM%]=E#U+TJJOJX==ML6/U"J^V8 M(HB**:EM1C6,9EA\5Y^*@<3UN>W1"+O;R::*HSD51??8H M>*^*:LKVA %?87.MMI+@DSD]/1?%^K+W.4GK(HHJI*@*L>8P*X];L5;LMM%J M]:IWQ>O>E"BJ!^SPX7ZWR/JOJ3ZRE/$M: MR@/24OX#+>5379$1N"0C"PF%DWE&2\JB0@-98Q+)5%*DA:3*_?BSUK*ZZ(*A MF.TK9@\XNJF86DYW4(0%#-$JI[K;3ZLJY+#@I:]!]3J*<%76+=PCS1+@'JW/ M/XT1X]1KF-==*%#J\O0F (?237S:L0$1A4"B?)A(4+5 M%0.]JAJ6X]G@ZY79Q_:9;;Q4+!/$\6H"RH,NEQ#%5%=6&2#(/)VB9454%9GF M>,!V-!ZHB1K)] M !!IHAA!OW8H^2M>HEY=;$28J^K9%/P*W"Z0S%SX,N/V 352D!VNCY9 6=ZB M3K*MF^@/!@5F0/606H)_[^HJL#&4J[]WE]*%GBLKT0N&+ZHQ^\@#&OXPM-Z! MBB8U@>,$'Z;0!L_2_V@KQ*KKB!TM$8L',O]0B@/-7/A]."G4#=),Q8H"BK]+ MW7H&&H>^S'!*C$G\!+^":L]P*B:A;3S"2PCUO*&@@0W_A5/#=9C -^J7N.M" M\P1#"7_3'2IM0LO.H&[!R+)=I(3R<*\(%D#'2G$*FM)PG? /;E]Q*;#DI0OJ M[<\CS'P=-1 HJ, 4I@-L#\Y_ 4123?Q/"Z4*Y2#JEN:0SDCZ/9T=9]?T%_M M%9N@"1 8CD]20#6D+)X5?ASBT1MZ!F9?]$BUAD/HW:D^/UL8BRL!0P151G"9 MD"QP!!J@&(8UQ6LQYM@U0J^N0K\3-7D!^L:66PIJH&]9$BTMZ?&=443^+V?SMKS<58)QJ(O6ZTI?4% [OK)0I)**M M#,'4L@C24[OYSX)TLSW"_HQ?^!'.1X\&^= M^8(@4&^Y #L##<17EHT@J]H]Q=2?\8J7&J4)?34-NFC^6P[2 =3/8-?+5AO5 M8%_[M;99('SZ&,?LN^(/-'X%^<6V"GI!S>].%H3AE;)_DSJ1D?/F2]RX)C)+ M9;8[&C#@/KP+Z*G5OMQ'; @ ]$D\37=]CLC4;JARN7:Q^6%.Q)_5P A@4)#: MUQVX"OC2R(/\JJX+6E>WAUB'0%YVESN5;@<+HZ9]7>VC_07ZDX[_U]?,#PI; M'L?91M:5B \O#1I>O M)N^*N1@CPGT1HGVHJV@_ >@3<*6K[=&W*)W N%O8P-AH0UNO/_-B\UQX 5!H MX5M!G!)]T(%_ANO1%%>)4VW?$%X$?1%9AI:IN_[^@'=7K-<77+)+_2\ !DUI07(H&(E;NM!\F0@;(0<6@&2"3VER MJLLD99X65#G%:J+,:QU.84&"XWDM''+(5.$:[.+*!9#9),/RJ0B$&S([AQLP M#-0:$/'(!XB$)*>*R4179I0N+?,L+#1%+K" F-#E%+%K,1H$MV M9[JL!5ENE[X2W-H 8OAKJ&(=35=]&PLKB1HN#^Q"2B)7#_\API0DIRB?.D7A MR"D*.47YR"D* &*RD^IP,L>S#-S8$@E946A>3O =3A6$!)=BE0U564O?-HO% MHBS2"5J@]ZLQWVV%MZ8ZT+I\Q0A7%QF%5O-LQT,6'[17:HJM0.]YU*=^"'W"4JEE'8 MSA( MBV!-U0^^H%.=+(+F^'LX5%*[[^$!.!?4$B!J 1&V6K,+"E$%Y!0@CP!$;MLN MK@>YD?F/XHA@Y>!H"S!]0QP^2:/ P%J$:,UG?XGM_-A.$ Z"?X0:33%\%%:L M>(#VQ7TV'*KR?Y&,X&@"'TH%B]@81U4LZ$<@=VD11\Q8T);:>B$X4_$CWAMB M@[QAN.AUZ8E3[^$C%&ETUA&P)KX7U!I;;:X[0,;ZIY2.Y?GQK# S+6!X61M$ M)U;5]M&%[-F%G_J:FL-P0&=XN'96H%K0_=61D/B(;_CT#R 5?BJ;BG8L?79@U.<%9>Z,OL?($YR?'4_MHGUE[:@<4B M0R\4; ]+# [2*)HUPJ="4,XUC$()DDQU5G'=C<>+".\BSJ-CH8#:$EM"_D'1 M6G1C,X2)4!TTA]DIJK\Q)NB#^TYXWS]8V (%+7*BZ(9OK?G4GH*.@V(TZ!1O M.HV/M&X/B\'J<>+(\:*G-(<\?"0@]1!H%2K=%\$9G:I@14 MM;:."09G="!6T(]S-'+Q/K+!*#?1UTPWL%^K+_IU45-Q 26*EM@0-S>0O;5LV4*S61 3U;-L/^X>Y)K78EP)7)='E%9X1@-SE MV02.O,DI5:7E1%)D1$U):FQ7#$5U&&8)'^)U8#I^((Y+"@PC1,!89'8V%E>$ M6HX=-;K'_.X$-A\3314[$(%R['@'&9'=FS 4XU!(>'+@(G-4%2$B+X+]CJMRL MI83 7[&FA:1MN)8ZZ,,UKDCV?1G\[_#Z#AM3:;2UOKX3ZT[(9EBD#6%C9W7< MW@<*WI&"54L0&^Y\0Z*HFJ&8ZU[1!T1,2W$@D0(*%"Q:1-F:O*PH8D?FV2ZG MB&I'2-')L(AQ 9:6.SA$'@H1!'S6A!MK!$2,VSWG,R#Z!CP;DH- [*2#S73HAISB% MD<4436LTEU13*AMF7KZV\$Q6R=MYZ// )36 /8%;FQ,!YN5W9MXE.&O)Z%0> M!&?*"Y BQYEO17%V ^GM("N<9BNB12V#6>PE=0N_C-(%%N9->C2RH+OGV]7= M-8YTT?G?(FFFYB?-K*7YYW5D4+_/LE% ^6>.Z/9]4AB2CC,].N3)T2$Y.OS( MT:$HB*Q"JYS,"]VDS'=81NYP&BUS0E)E&29% T8-'QW>R0P/7:9D)$\.[[8/ MG!+2K ^%W45[[S(:LE2<#;4/M ALQ8D/Q!!\<+8N?ZU.6C!(*"U[797Y%O]" M$6"I14K 4$8.N%S\\,\72,1"(ZX]09*(=1E:0\Q0YI;G7G;U&=!>VFO66'>A M77RQVJQH^%=+W;JACU_E1U>X#A$RBP,Y#MH+JVQB;!AB]XKO ^@I;N*Z]^&HP&Q-(TVYE9U^N MI1MG$_XL:\1=FQYE4'0A(A=V^^+W&!*:2]]:G4(/7.K!>9Q>[ 0GOVI8-] M\ZT+(C7H#*/K(9^OLGTJY""\\^&U$E;XVMC=,H 2V(R?"Z*L&9S+FXL?LCS7 M@B[4SUHV7-]'#L&:)*?Z$ Y^FQ;X(F['M0]FTTX;\W M4J79J.:SU9O:K70E51K%.ZE<;7P!&Z_%+W D?CBR01^8#DHV0@T1%^GF/B8? M<.ZW],;M9\3KP='@F3 \0QC^: S?:%:SI:MJ.2?=-J1ZJ_CE#+^6Q^4$R<54 MD!CT"<8_&R7/$IX_GI)/-Z[RY6J[(2<$CA&^PE;94O**TZ?RAC7]E'(_&Q[G M"(_OG<+%6B.%]/E%<_+[.=XO&*YB[)T!S#DR;>*7R M]A$J42_S+0]>=DQ/(@>OASUX9:-V\+I;]L?)'INFC?6*?)F?VU(IT;"?#^];6U:XE^S2GT$/IW#K[Y;E+* M$ 4"'SOKMK,62< FK#E 5+[A7]6)>M)]3ZA_[!AGY MZKJ*?@%H_PS=1&H=C;>!:VW-\)WYV@@O>?L6+PZ5+O[/.**9+GVEV=()D M1Y/LZ)VRH\]NSSS^MMB)ZK;X^E87U5LIB^8I*L-K24&3599C99[F&+G3225D MH:,(R4Y2Z';X10N-(V3HH^SV2DZZIYI52KJ_*F:*S<;1[BCMX()_OV339"Z0+>W$#5"9.,SO0=K7R=_;08Y]UKA;Z MWJ9W.!Q#QR7X#.[Q#$>CIKF7P-=0&^[T_S?V+/>?=U?@#_OG1Q!1Z+ONR+G\ M_1N5[(-?B/>LR>^TK?;AENO\!EI/L7^CY@6_&8:E18;_C41/3- ,Q],)FF49 MCOW=93@A)8#91!2G3+SO#K_ ,WW7%7VA^&):58$!_&1B*KWH!TG]W+6"BM^# M!=6>6]8%S 9UVEZJ[I>*E8(;HA5HQJRR&U@.93?0B5__]^()\4F*.D=$_7N* M>DID!"9%,U#B$PGN=U?@1)97DF#&Q=BX.W,/(>K-O@Y%/3WT*W[ZUV*#3DBH MN)%?+0;X=V07DAX<,[Y6]W(WI?""0K@-'OF'/LO3U0W%T(@QO].!:KCVC'G0 MX@)K!70/^8R4 DN4PO=3"@S/)9.\R(A0/? L_1O,9(9G$W3J4'O_BZH@,S>4 MJ;,7H:_[;;J,^3MVP(T2R#K.;V3$,Y)UGA@ WU/6H;&?8AAD /#)9.)W-YE@ M$PR8\3'F4-M_ W7HA1+O)]=O;/G[$6B&CM4#B6Z D;MFV@LGMX=O"S'9L+\X M,SEZ$NOOSI!/60YNT&AW9AF&$=E#[<[KM8Q77CB42K1==X [1:F'K^[1:%!: MFT!I1:7KT_AVKK(^P,_V6]G5+#:L67K_RF#3S1?\SYZP+N!.0!=\*L?JFRN- MD=9U8NA^#<-RS SNU1IW*-E?"W OLGQOPQ(7%/C6@;-93V#5,RSH-$,Q[&*: MM7?6N]>@/S,BQ^-*K_P_IR.,[P;7:6)Q?TN+>Q%R@__'LQS:O^$6E#R4L;W: M^(*2&[J UBXW]#M<% _YP71%J$=C_\X;?",B)TVA//8!9C:)E)'LH$V*,&<8"I M6R^W$?RX(GGEQ.^]=EZ+2!^DQJ(/'E8BXCD=]R$M<@K> =$B^]$B#/R1XU(\ MUB+)%"L\:Z#+\,JA=,BK2@%7#9""9HA!0!#Z#= ?<(#?;680$3E([+$.+4$&DZ-\HT(!B M8*@ENKS2$/]21B/EX&IB34LT])G;?SEA@*49)M ;<"CP>U)^0'&,4"%$_6.Z MPX]8+@\'4T'@\,Q41^($5 >Q%_:4"H!/&U*<'ZQ@#I8(L.%K^%)='6VG_U4L M,X:$T8.^P?Q7T,#O#0OCKQ3$EW@4"9P^P)Z;AA"(AB :PM<0XA$U1,O4W37] M0/3!L?1!DNB#[ZP/&(83A4 ?T$?4!]"FMX&J^P'*6S3\F-H!2C\JI;Y;#H)X MGHHA113#=U8,ZX;"P3(7_* BEGG5,KOZHOX8E-)KJV]2);VCV#I<1->VAJ\K M!-_7KZJNM112QK\/)!*#X6_U@DCT M$+OE[@(Z 72OH0_G"CJWT%& Y1# >0 M+J@%&)IH@5/*1ORK+(5Y3>BM+I1!'/K73/C56^59N5CD M("M0_.Q%&C+GA_7]W[[8^B^MSA_7I9D^O9.$D#23',?O(\V;%Q(.9MHWK*X[ M16UCRSITT1T0G @:?B\#8$_@8V=_5Q76))9-!'<5\*OH?!)_L&+%F66!XJC= M;_A_)ZQ<2";D=U4N!_,/7LPRN%'0G08J!R; L$98QK_!3:A3UA0DV_&[:HK$ MH31%H!2RUA"*,FY4T 3VT,]=;G@C+'#[MT:(NO@*=7$*>9)$7>Q#71SLI'+M MPN,RP_D[:(7XZVKAH$7&\4!N],'"J:?3V4$@G1T Z>SP;F>'(<3.HH S%P\: M"!VQHCNI0QP>1^H0OV#XD#K$KW/">=4A9DDAXC-(#=BN6L(RVL&*"3>\CJ-K MNF(C:]MO[!:8M=39%19A22W? > M$N*PK#6$7#3?_;J09:/W_"=SH-B4G]J8 ^K:03W'^*7/+M#XH>(B?M=-JF@: MN@FH^\QM^9+ZJ0 MG*RQ A@??0Y'-N@#TT$V&Y_.+[EMM8@+RE5Z M/93_ZE = Z+!=UZ@5L#30O_$\)!44!IP%9SV <<[\9/7:KLD@ UU33/ :2BV MC;4>2;=E43=HJJ;TP"(_R07(K$ BG5-6Y-[?@58^'\"GR" M=5)P?KY0<:AORQ[SB5Y@&OQ(QU'QRUU3CICEN.61,[M[%M):EL>G@8$&=&@- M^,E:*DB<$<'PA721S72-7?*)UKJ#AZ?#[>WC E@F(B3B]#*1R+1,L$0II7A0 M7]$4O4H?\O\]8J[*XJMK(/[82=%Q<5%\1_[VW%\]W%0=DR($Y.Y=Y5?0B>\I MPJC"]I&]:@<2'B0/Q%=^__M.\45,6/&J$2._"A8MO("D.#/VE31(=.050TXG3*8R,.I0-/=;=_\DC' MPA%]ZSH"KL'G M%Z]0NO:?'[+2932%%D09=+H)F6_$H,&"%.O98FK[L0R>I2 ML6_%MP)(CLVJVZ!5H#)71B.X<"3%\2]2T+5F.S0@LP#!JK&+M.5%47AQ92@T&(2;*C&1K%023=;MU(#70?DA<1^ M%>);]I.O1U9H7RWMR*IMM:3UEHY^LX2QI]NK\/76*1KRZ)C$3^W7LD+K#IT? M+[:Z3$(["UIGGC&G5,5S4, 9F6NV?^@!U]$!E /!\:LIH:Y2'=!7C"ZZVH@F MP@5?_0$7?DT6ST156="$BN?V+1OB)K"[ORJT% @L%GP4QEH\\*4>/SED]"D! ME4;B1$,T.SD_=.J,H4O%A>3Y@B?$$Z=*O(\XZ+N(X)YOSFVXYE"9H?WW/S_8 M'^^NG6?BR2.L'5^!KY9;S6*UTEC<<*]DXQ\*,>S 7@=#^RGSRQ?HX$@M=P>E M&J7UGBL;'^D2\5>R]@%!R,PO/\/E$;WOO ':;^>W3YJ@.'M\69_]ZZ7EZ$Q' M-H(C+W>C*L"1]H)M/B?[0638X\2X^>AF39V;X.NI2TO.!4]6\L M$?Z.(L,0_MYAO3]KK]_;^W7:?'V&&9,1 .7SBS_C"/2I)@F2"/391Z!/%;J/ MFB9'N[! 3).HK7<'KH^LA?T6&Q\]N$,BBA&+*/K_KKH]?:68')W;R Y 0HE_ M]L/;A(^_$Q\?W9)9!0SO=!50RYCB17!-&:P%%U<7ES\97"1\3_@^(GR_%EQ\ MK^C7AV.-T6+S\[W5\F)0<#MW-J>XP.\=2/DE&]B32>O=,6MWE9:+4G;QS:@@ M,[<##&NZR,A=E3L9 =O!=[#,1=)N\+%5&Y*@Z@1^JBHC1?67@)Y:_E,-7S+5 M@^NFYYW)RR3B_"N%'!87)^+\*F\_JG&KG>H&<:^4!CDS0#DAGGQEFSPS2+\- M27DNSKQR"GQ*D'[$-@T4TV<"0R^AY*\W17'TEPTUX%:R8V.5SS+XE\#XJNWU M>3/8UT=G0\D&?$MQ/?N;DC/016=#SJ;N&N#S/6YV,:#\B.XAJ/K5['B(E7]& MF9S6HD\1T;N8'(==]%=+Y5(4B7"4'?T= M(NR8"$U$.[)<10SRV:6/K8>CNDN_>TCG@%$?B[:-&DV2 M4[K3W\*)R)ZVR!+#.@J+)H;U"1EL)VI85]*5[ ,EW6;(L=OQ\N#(1GQL51O5 MC?@=!JHHICJG)+M##M).?WLFLGK:LDJ,YB@LFAC-)V23G:C1?%/,7J6E,I6) M4X56HYG.DX T,9_)EAR]+?D]7:NK?0485,%S7*5+0L_GL%\3D3UMD256=!06 M3:SH$S+-3M"*7M19ODG?9JM4,5UI%)O%JU MJ*)BH@IB9T^!*"97GYPP$]$]D46?(J*)<4V,Z^]F7%,/$G6=KDA4F1C5Q*@F M1G7T=^9W4/\ J&O%!%296-11X/S(2S*1VQ-9]"DBFEC4Q*+^=A9UJ7A3K2PR M/QKG3B-B51.K^@QVYW=07]*'EDD%62#.V9. 6-81(,(I,@ZQK,]90HEE?2Y6 MVVE:UHVK5I5ZO$I7"N=.'V)5$ZOZ#';F=U#?Z'L6]8B:?9X]^D_&HO[:-KKO M-(ZEMS'[2JU#9CENN5>QHYW+'Q)0MD!Y?9V[%I3$;1S7ND"J!E!L5%V\OP4< MASX2*/^@$^2>K3F67PC44II2J;55XW__^[_65]]1U$'/MCQ30UU\+?MR8?^L M@17TSF17Y,,=>1DZSOW_@^=KZ)V\J&+ ,@ 2"@6)Z:FZD)LU$]. #K9*+,O/ M3($&CKFEGC&L/69E HFJ&N3\E,J@51&26Z.'0!02P,$% @ =H)A5-;. M$YM]! C30 !@ !P9&9S+3(P,C$Q,C,Q>&5X,C%D,2YH=&WM6VEOVS@0 M_2MNWV^Z[OCDX=9SK1JF9U&\$#-/3ZWL ?#)#_.NCW@^$K M='N-#N\7LZ.R\MGGV>*OV_.JT]O[=U-Z?PYGGG2W.JH(3U^^CA<0\ M!P6"8^9YYS<]U$N4R@+/*XK"+8:ND+&WN/,2E;(3CPF14Y]%,L8N*-$ M%@S]3(UU2T\7/ZKSX!1 5!+T??_9.,.$ (\=1I5_H,M0\WWE#BH@PITN"UHZ M%PI&=.'Y0P(A*#30-.E/O%##ECV5D=]M,E:8PD;M&G+=*P.U"1(@A')=X?G! M:. /QQ//5/QY9OP=&/-5F ,!+$%W();HCL:0*TUNM3=D6A7-Z/U+H$JF*QPR MVN@)A214.I%@#&T5KIJ=;9 M0K#N._#=P6FEIA6=+?U"ZUPR431(-M=.(7$6A#HS?G$*#=L_1ORV'(>Y8"M% MQR;M&*L,5_*ED&E0GNG6]- _=G31T0X@37*J?Q7Y7[ON*6DH\608[#MMW."4 MFG1QSO6?U&:;*IYR6/?MTJ>5A)Q 9,;:N/:11T)F0N)*(-%G&6,.7\OK78\M M&,WG!_V7_MB&07ILJ07@SG15)>&AQ1E*;,#ZAJXQP59AW1%Y/T36LQ:.J_N; M8\-KUP;(.SYW?/XAGS]A\ZC@\M(&G$M;K8*YX_ ^.#P72U5@2='A/,$\3C < MH9EPC]&5(E9DYUD"O$O.';%KDV_/+C2G]1VUGF3DZ&T.&,VI7$-$4 M81.45B'?T7IOM)YAKF>D]J3HTERK\.[(O#%8! MW;%X?RRF*42"DU6DA$0+&B5<,!%OT.&ED!0?H2M(P9*7X*7%5HU%1_1?@.@[ M+V'L><#7O8/IR/Z?R;[ 4&!N#F]6$_\BVQ;:"YR3[4KW$$=?8BE6G)A5^4(&!W[Y&;U]*[5HNR,FPS%UJJ7>>*FH#/!: *D'=31R!R?/ MQO6N@4KF&_>]:J=-N75G^@U02P,$% @ =H)A5#_[Y'>< P M0H !@ M !P9&9S+3(P,C$Q,C,Q>&5X,C-D,2YH=&W5%FN/XC;PKTQ9W>V=1!(G@24D M'-(MA"OMPB+(ZM2/)C'$O6!'CH&EO[Z3!UL6[=?;MD@XXWEZ9NR9&?QB&*%( MJ8A9 K]&LP=(9+S?,:$A5HQJQ!ZY3B&2>4X%S)A2/,O@7O%DRP#ZIFV;Q/2Z MAC$C^;1-:7:6M'2 M2O4NZUB9E 4S$YVTAH,2@RNCR7"P8YI"G%)5,/VE]11-# \Y--<9&PZL\[?F M7:)3WR;D0Y#3).%B M:V1LH_VNZ7G_H!3?IB\X6;OF*Y91S0^LU'VA-SDWT9\QPJ8LR,LY8Z*VW:-P6_!%-_ MGC6H_?<;U]>OC!Q9YQ5VJL4EHH.O,!#9ER?_)0G"1,H\/'& M=.L8'R=0[9&'T.%^%\P@>)S"=C\-%B MNE^&WZ2H*E^'X_%2_ MCD:/3_-H.O\&D^ER]O,2]J;KESGZMW+RY[[0?'-Z?;+O#%*FV/H$L11%64:U M!)TRX )CGC=A!Z0KMD%&K+M(JCB6;,L+W3"L--;1L@P76$MA(M4.5H8'G^:R M,,%U7P$IF^]*+ MH@U3$9LE6NX5>HS^HT-)U2)F5,4IH-&J1]0E3&S/X2JC)S->LVZXP ;%:88I M? E+:9N75P.;0LFNE@W'#W:,$*NC52"TW4W4^Q)K&/[9*8DNX*OX7@\9K0EIWEO)^ECW$:/8DN+R>]3#3 M8"[GF^O)*:=;9JQQ3OQAT T^7Y\>)$^">J[Q/-/I? C64F'#:F8=4@U;]416 MC7C#OP%02P,$% @ =H)A5+Z.YUZJ" /#D !@ !P9&9S+3(P,C$Q M,C,Q>&5X,S%D,2YH=&WM6_]3VS@6_U=T=&X+,TD<$]BE#F6F!3J;Z[9ENNG< MW8^R)<D^Q@0[H$CM)RE\XTB:4GZ>F]S_LFX>._]/OG14:+ MA#/RZ_3#;X2II,IY84FB.;70NA V(U-5EK0@'[C60DKR5@LVXX2\&H3A8#@X M.NSW3XYAJM-ZC"HB,@K"8'^XOT^&KZ(PC Y&Y.(#V?TR/=USQ&>?3J?_O#CW MBUY\>?O;Y)3L](/@[Z/3(#B;GOF.@\$P)%--"R.L4 6507#^<8?L9-:641 L M%HO!8C10>A9,/P>9S>5!()4R?, LVSDYQA;XY)2='.?<4I)D5!MN7^]\F;[K M'P&%%5;RD^.@^?:TL6++DV,FYL38I>2O=W*J9Z+H6U5&HV%IQS R@.X;-%?] MA6 VB\+A\*_CDC(FBEE?\M1&AX.CH^LF+6;9JDWYK46:2VK%G./[X%O@W7(GTY=M1& M_)O#U+ ]RZ]LGTHQ@\F1U['??U1O/>XLLN!N.[&2##K/__'KY.UD2D8 C/ X MB$%0Y1.P19K_X<'@P'.)@V_HS^D"9YH+(V(AA5U&F6",%S#@IQ='^\/1^#C M@=^([00LB^M[B//T_/-T\FYR^F8Z^?3Q]V\GSW]5QHIT^?PD>IMQ6'C2(W]3 M64'>#\A[$5,M:-$C"==(26Q&;;25XEK&79,H8&$;A4?E#<,/!S^]"'\>COWG MA&1TSHGF<\$7X/1M)@RA15%1"8VETA;B 'FG=$["8?\]42FY.'M'?E>R0K=E M>F12)(/Q5A,/T,1^1Q-OJ7%!E^1+00G7M>(;4FF *&"@5A'5:FH@!% M+4E56%UQV $$;1?S0464Y/ $%B-)2A-HTD3EPA*K/-TM@H(GW!BJETB2TTL. MZ[;F--#&@!E84J)CPS60(!$:$@T@@]3# ">,:[+(1)(14^'']?@%U[R>!#>0 M"P,A$>.H3TTT-R5/'(,X;PFL*0;;G,,P1N)E6PQ;L#T$;*/-P,9)*@I0)R+C M6GT]0!J00[=N]8LB!;] T0_ [T16#.8$B+1TU0-X"2V7I 0-(S@1M)![KM!7 M*][<6!H SEQ>U$.*2@(!0$X!+MQRQO&34).15*J%:?"H^4P8"YFF)10;/=_ M9:\-JYJ76\QN@?408!UT@#7M: &Y#'\9FQHZ=?!&JU=I*N!QU^PY%4T(U=R! M 90K8LE1:80# F,I3(8CD"P'IX>.#Y^9,(E4IH)QZ ZUDAX5I590!T&S(;L M L8!55[5YU=0.110\KP!3_.YDD 1CF@_/-SEGHOPD/DG_R@PS2L\&G%^@NZH M!5*/&N1EXX72SD(I+(3[O E=H,"HO,UO-L@2=^E>&W]GW IJ,$%H+LQTL/8 MF-#*;#X$@U3,0=_U2C[LJ4K#!.!A4#KHMX"*%VX>S%6O/5[;:_JB#P!4Q[UK M$/1JCXJ= KP?\&*4%,Q5YJ:*C6 "4F+<@/#1V?GQ F>J#$9,9W+&A5?GYJ"@ M!H:@1':#2@K(32I)T3G#MAP3URX21O@XWDX_X%?,D1 <*(SG[.D=YB^#_>>& MS_A/\+FQA[D%T\U]T\9H!83/!4,04J,*BDZ8&@ P)G>(3*I9@Q+ K:!>Q!AZ MURV+-N, Y;#BX=XA;26'SM=?U1LJ*UT"5HU+%9)$:>88<&GBC!>0 4B +/3P M$FT!22 %]K $FQ$EN-LM,#< 9M(!YOFKN+Z! MM_2/ZS,NAT,8")[.^+0N5I7].@>;^'.ZHN:8LZ9W%Q0D;K)A9UK<2P+X&>/D M6RC=#276]7%>2[>UC>5JG1FYGK60NH=GP[BJDJ32J--6$%LS:ZZ,A78\NH.Y M3 (3_5%!#(2I=[\R) 5P@L^Y05TS#K4'=Y5VT3TMV?-<9=2L(CYZ*P=FSIP; M=_*H7>P2ZNE++NNR^P9][[\6T?Y:TC;H/JBS>0'!--=AX#]3)G6<" M0+C#UAHY/1^;1#%7 HT>)WH/G M[2/8\5>5>$6N&S[K]4,O"LN:]CF&,#5"S?WGJU;[M;,J'4\F6UDV#SW%YJ640Q>YK*_ ('=>7.^ZJ>Q MP3LG/L;K^YO;?2P@=:]TVS!I$6X.$O_7!?6G91M)>W]PN!7WTXE[]&H0;@7^ MA (_&HP.MO)^)'D'5J-K?P0W_C0I2T<$FV[Z<1SGTVRPG9"U/^^UD]HGU0E% MK*Q5.<#DBK@; /)BZ/Y]][T&)KCU!SKWVN==KN 'Q^36^'XPX_N6&^S:),:, M'\\@M\:X-<;_)V/\[EL4W6P.?T?"PH@$>B\T-P)/E]V!UVDF>$K.KWA2859* M/OF3XN- W&_K6S-]'AO=FNDS,=/=^J\&J"1\99WU/<[>UCQ_;//\0'62D;!' M\!VEK?']B,9W^]"C;7^/O.G_!?,+W*U"<\SSK<^A'G#RE*VN$F*:7,ZTJ@J& MUQY*1TTEU'K?K=M1'^GA59L4!>_7STWMU'[/KG,'TFE:O#,Q9#(N:'1M[5O]4^,V$_Y7 M5&[:@YDD3OBXHP['#,?'-//V[AB::]_W1]F28Q79+.#936+NEZBF+U&Q9TUL"VIL*(2$AAYV$J&.,Y5/CAU?YV?V=X$&#%)U(\!M_B^AX3>GQZ M,1Z=C8Z/QJ-/'W]YNAE=JEAS!K_5C-TV-70\ZI CE@,E7= _:8?$7*,,L2FU MX1IQ2Q5W12*'CFTXV"]N./6@]\.KP9O^T'^.2$JGG&@^%7P&A&Y380C-\Y)* M*"R4ML#QY$SIC SZW?\0E9#SDS/RBY(E4I+ID%$>]X9K2SS $MLM2[RGQ@54 MDLW)9:YFDD/D[7B#5)9@"A3*%81LZ)F*' PU)V5N=PC8=E8#&R>) +:-$1G7YNL TD <;NO&?9$GP L4>0!^ MQ[)DT"9 I&&K#L!+:#DG!5@8P8F@A;QR@;[*\.9&UP!PYG*>#DJ4$@0 <@IP MX;HS3I^8FI0D4LU,C4?-)\)8R"(MH5CH]08M.PU8F5J96]JND?409.VVD#5N MF0&U'+P=F@H[5?1&MU=)(N!RTVPY&XT(U=RA :PK(LG1:H0#!",I3(HU4"P# MUD/FPVLF3"R5*:$>\J%6TL.BT H6.5!LR":@@'& E3?UZ14L"W)8SQP!U5R4 M$B0&.[0[V-OD7HO!'O-7_E)@HI1[.&+[!/FH@5*/&M1EY8Z25D<)=(3CO(E= MD,"PO$YP5D@0-^E6$W\GW( HF,%%H+LQTL'@&-/2K%X%HU3$P=Y53S[NJ5)# M T Q.#M(7"#%<]<.)JO7E->D3;^B P!5@>\:!)V*4O&F /H#78R2@KEEMRDC M(YB@6N A _/CLAS;*DT&#*=RQD77QW-P6H9%(+UKZM44$!N7$J*[ S#-VUUCM#YUKID'B:V+RFG005??("VYEC@OM*&2/5FFS M",6N )K,,F$M=_!=4BU2$.CQ'A.@FVM@$U +#&J0H>$;\]?:U?@?I0#5G5N5 M>>Q6YUOKA#H4:)W[V5SA#L4MFZ15#44 =ZY[L9*2EH8 M'M8_FLJ^@0Y2?^J'A[PX1S#[PZ8.M+2J+O#GQZZD=K;/F+&D<62\0=QL MO-OPAWUX_JUK/:O^!WXJ+%L<^V$8@TRGFDBKBJK%O=W>8._[)O:JONO#P\8I M=J-Q-#SNSM;36%]W9YH6801$<]F=P9S=>3*^N$\C@^=.?(C'\S='_%A8:A_1 M.%O[)P"J3\M6FK3MWK]TREK.U1!,MT[>[W]W?6$?[T)?[O&]Z--=V U M$O3CD/'7R3T>\L#((U'GUQE@,[-J?MYK)!4K59E!I*Q5&2#EBKBM?/*J[_Z^ M^5@#$S0>LKG7".^@@6<.QK7C/3_'>\H!MOT10\;S<\:U(ZX=\=_BB-]\B**= MR.'O4%BH$>,3SE<\+C'Y)+^*F)-SS8W W>(..7/;&7XGZS@5/*E*<(/CD]\" M/@C$_:9D[< O9:QK!WXA#KQY[A\(P*=<%_Z)/MMX9J ZL=E:^^MS]]KZWH]U7P[KG6XT2I:O'97T GO^OU FEBN0SI5 M@E50V-_O;5^OXGQ9W[VIYU_G<^\''OX?4$L#!!0 ( ':"852/H/;3I04 M $$H 8 <&1F#,R9#$N:'1M[5IM4]LX$/XK>W3: MPDS\FM )3LI,"&&::R$,,7/M1]F68UUMR24*P@E)0JE"Z82\$6>$P[G5$J6 MIG B632C $>FXYBVV3TTC.,^JAK68P3WH&TYEFN[+MA'GN-XG2YGE]<5]+\)V2Z+B?444@3(@L MJ'J_=^V?&5WLH9A*Z7'?:CZKOH&(EL?]B-U H98I?;^7$3ECW% B]]IVKGHX MTL+F.WUNC06+5.(YMOVZEY,H8GQFI#16WJ'9[7X3239+5C)1F>9)FA+%;JC6 MO:8U3"F17B!4TKL[P8]&YLVX6'!EQ"1CZ=)[Z[.,%G!!%W E,L+?MBH)?A94 MLOAMK^Q=L'\IJD;S%+U5!DG9#)5KK+W*?J\V/=B89$%+VBZ_I6@$3E6X#U][Q0+%ZN 8/FWW7,=Q5./?R.!TMO:%TWK& !2YE:>@F+ M(LIQP)M77==N]_J6'K@EX"'F%I6/('0XNO+'9^/AP!]/+C!3KJ;7@PL?_,GV MR'TT1J<+U^;4')HP'0U+G$[[T&X](X2#*0Q.)Y?^Z/294M@0=V2_@\D9^!]& M,!U75_P(O18SCQ,IK:[P;+AAS" 7G--0+ M9[6UJ83"@/,Y2>&*YD(J$#%9]-HR$HEU$M?2X; E?N5@@53/J/6'L_"#"G8[9>>D1ON\<@(_-6KF$<5XB,E'SC:J0(XY@KC)=4-WXC3*+C>,P!(-K%3;D MZ+.B58Z*&<<:7LM18526A66"8Z]Y6OI)Y%264Q9WLMM\08XK2VY%@I0VB@(A M(RJ-4*0IR0OJ-5_6D6E')-5FJTMH33ERVEO'0.9*-(*J.B\E&S6\QKE9P6O) M6D&^!V4T8,U>;O[Z="$;G/7\3D6%BAKYC5Y90Y+6@80'C%KCH6MVCEZO!U ] M=U-,K)T1UI0+5!BG8M'0V/PV%I+D7H#GLZ_& CF[]]RQ:B=!H3="VM.'G[L6 M/WW@W(V4M8X/CY/J;%:_J^A!A+OFX8[NGT=W&X^_G1WA/X_P(]/9!?A3\6TI MJ5?WIUG)MVWR0XU\FH5R"]:\>>6\LWO?OS\*=KW@U 5#()02&<; +6 XL@A> MV>7?SS7,*JSOSFB/,NJ^I'Y.H;7+F=_%FLU4TNOX+\ZC70[M]AF%:2_>TPAM!!;'W1IL&^QQ]FYRZYG8-@NNWYY=NWGDO&0Y20%NDHJ4275 MP2ZK=EGU JSY)5FU17MV6?1TAFW?]ALXV[6AFCU M%%M.9M2HKN&26%'ID1O!HMKQW:[I?COD5S*[?/"M>CJN?-SN^#]02P,$% M @ =H)A5(RH/&EN!0 LR0 !@ !P9&9S+3(P,C$Q,C,Q>&5X,S)D,BYH M=&WM6FUSVC@0_BM[Z;1-9O KD"&&9H80,F6N"1EP[MJ/PA:@JRVYL@BAO_Y6 MLDTA[=Q=>DU#.F3 @+22=I_=1RLIZOQF67T^)SRB,;P-+]]!+*)%2KF"2%*B ML'3)U!Q"D66$PR65DB4)G$D6SRC B>UYMFNWFI9UVL&N>F4;P0.H.Y[CN[X/ M[DG@>4'3A>M+.+P)>T=&^'S8"S]<]XM!KV_.W@UZ<& YSI_UGN.,LETM[6;>%G#GAR)FK-&DXB1 YM6,5'YQV M= D^*8E/.RE5!*(YD3E5;PYNP@NKA1**J82>=ISJLY"=B'AUVHG9+>1JE= W M!RF1,\8M);*@[F:JC2T=K+XG>Z+]L9B6/&9U9"IRIHVJW6ER+) M9O-UF2A,"R1-B&*W5/>]T6N44"*#B5#S]OT!OM4RJ]I-!5?6E*0L606O0Y;2 M'*[H$D8B)?QUK2C!SYQ*-GW=-M(Y^TRQ:S2O,#W+&<3EC"U"N8L MCBE'@5_U1.+@8]+KA8'B%A!V-;[I7(83#QP/WP3IZ+;BQQW;/AG&_9_3TZDVWMD,: M=L?0/1]>A_WS'86P N[$/8;A!81O^S#NCLZZ5_VQ-7S_KO\!NKU0U_CNGE?_ MH+@I8AP'5D']^/Z4.N 0"S7TH.\!R6'*DBK-:_$QC182$PLB0'@,_3O,F1R3/8Z5LCS7"N/K MDLAH#D4O_JL7WK';WE2L,*'2"S6O03?FN((8D<^DAIWB(#IEP1\LHG M:)70%WL)*HOMTA5\ MY&*)",YH\ -#ZAN![S7LQG,/_$/O"$+$M@SQZ2))5DB%-$MTO*UC4-)/"R:I M7H?F&O1\[<)#@E$NP6L>QD=K1WV)V'6TEM[R3NJ-M@ZFO6O^U35^X1K&<>)( MB<$;)RE%&$>N,&Z@KOQ&F$3'9,ZVF:PIC MA[%9M!J"H]0B,7X2&95FR/P>N^U'<=QWKFK-BE^124*KAA,A8RJM2"0)R7(: M5%\VA]9(SXLDJU?P&E,$K;T9'62A1%50; Y,R=860JN]O8'0)1O[@0,P[L8M M@TGZ>G,C\1VOC=339$22,BIP+U.V;C9?;F)3#E+A]!-R^W>ZPU'Q?[+/MW? MP")'?OU\D"7UANVA+674X:90B33PLCO(1<)B>.&:OR>WU *6P1 MZ?/(_[/C[3CL89#LZ?L\#-W3]YG0]S"3#"F9(2>_;&8U8TD4B057J"YN7 U9 MC_9LW;/UES5P5]CZB";NZ?A3#=WZ3\*>;'NR/2<+#=D<(J%EJVWUB?IQ1EKKEJ4]S',1=\3O\&4$L# M!!0 ( ':"8508#WY^FPH $0G 7 <&1F#1D M,RYH=&WM6FUOVS@2_BN\]+KM GY/@DWM;(#4<=M@FR:(7>S=1TJB+5XE424I M.]Y??\^0E"OGI9O>)ND6N *I'8H:S@QGGGF&S.$_VNU)D?(B%@E[-SM[SQ(5 M5[DH+(NUX!:C*VE3-E-ER0MV)K266<9>:YDL!&.O.OU^I] M4<60[7;[W4%O,&"]5\-^?[B[QR[.V,N/L_'/;O+)^7CV[XN)7_3BX^OWIV.V MT^YV?]\==[LGLQ/_8*_3Z[.9YH615JJ"9]WNY,,.VTFM+8?=[FJUZJQV.THO MNK/+;FKS;*^;*65$)[')SM$AC>!_P9.CPUQ8SN*4:R/LKSL?9V_:!YAAICTJ>)+)8M#,QM\/]SL'!ER$M%^EF3'G3AEIDW,JE(-E?6;FQ B:6];2Y M*FQ[SG.9K88 4W0BLU%ED)MV&1RA*( MFERE<(JEV-P][$;>!4]A0G-GOLV*>^[C0QL1 T>$?K2-.)E,QY>G%[/3\P_L M_ V;O9NPR\G;T^GL\OC#C,SK_S*:LNED_/'R='8ZF3[:9CVRG=ZHR>7D!$!Y M.?T(Z]CLG QSIO<'M?7?PU1&/_V!__+ B?:O\;OC#V\G['@\(Q/[KW;W'M:P MKYCQOR?;SM'%R1LV55E%0&=:[+2(.^PE!>2@-UJ)EOO6'[$PHBI]?:@RFQ&E MF4U%_6"LOO,6E8Q VI56*,'L]2J1-V[%=BO$C8I3#6 M48FQT%;.L9-6D##X4NE2:>XLJ9UZV^R-CT@<+7*K^-?KC*_,1I#_M7Z5+(2R MM6&)@I\*95E9D0J66<4B0;:5F8!Z)-A-C_X#3^-IJQ[Z7"%[YA+KR8)):QBR M2&IAURQ:,W%5:F%HO^;8+# Q]R:YD)=E!ENB3+!2*P)QQ%/MTOMYJ#;>&]9B MJU3&*>,:&RK#J"')V 0*]+FK2B$AL;C MAMWO^8J];"3.R=OQ^TU$S)%4N7)VX&ONWN@\:2%\1-2\5A7'YV=G^#:=G8]_ M>S+P?#AKPM[^$+!_C@#FE4V5QDH)BWDI+<+2@UZ,R 44& M-C8Y?7VAN58YLW TX0=]/GR:/DD8C_WF3LFH'R*6J;2GT%WHF\%)NT\%S%(! MH:(! K)45CA<%;R.'-2"S(4#@D%18!0NO "WEJ2B3.;26B^">P$A"MPR8?4. MFV[JZ5;$V)1;%U_15IT@805(2&41=@6UV]>#JG5OPZ"X0(O*4%,@>PV581O: M7(D.*C%4.\/ZB0 !T[X6D@&W9 (4HH%Y16]F8@%7K!E?>.Y_' +8R MV0+%ZW.E[.@DK,@N%*Q<=_PH"KU;2RSIM":0@DQ^KF3B"EH+BQL36"C12) T MG%O=U@=_)V@'2;R&XIK!$6'(N"_(PGV-+@2[K/.B22>[Z33#+5H,0A1R7 MT ;*62TCKUT !;SX)WOG.>>6QD2!"Q<:(B_I1(%L!=HN85Y3MF8*JVO2QL1: MEHV%O=3FLG? LN--%>U\8_"07W.1)% M-H[A#=I@^NX8&KO8L+$? LTNMLCCQMHLV.LB0FD!#G$6J,;LNZZ@4.J98M_5>E9JCNR-@=#U'P1.!KL,V9D0R"-A3:Q8 OO #_F&L) M5$0R(K>KPA X2NO7 (1"8,,63$%"6UW%MB+RX@#9)8%QTN%LGBQY8>$3XY$[ M>-^WM@#^6BRZ5Q'SRA!= C0L J[8%#.!=K7JP<1KK_J@@BJ( 0>GZ =S"@)1 M0R>$2>V[YR=%D[^27]A_BMX;0-_,NOKT8=#;O='!X:-#]6SAV7XKL !N*^O$ MA 85!+8"DXRS==MQB\W[S8[74491+/S.D8M#&8TJ(PMJM 'I$1*$9H=2ZNEQ M$29*:M80+'71\;4R3*5"S2EKI$J\'2@\;"TX);PK@RZ<7.;5J>!SS(5-+MR6 MW[H"@CB#?EL%4US%H@SG2"ZK;C&B/B.R=$_"O9=AMR?QW[*^-,2D*!@3[S@Z MF$"MC 3A8(&]Z=3-=K9NW<>Q2/RL2@B46"[T0NB6)P^DLB^IR KJ_>OJW+3! M9\EF%^<07<0$% %:ZCAKF+"MW[TV5!J_G^2A54HG+VHAG"X^*@#8&2&1QTYH MKV+W*Y1>T:XH/Y'0N1$*CN00!4MH6HOU]Y^S^M0A1'\C:']ZMOMJ9(@#.[39 M,)WM D%D,^4.8U$IYG/A3^H29,':$;O$<242H:@@.&;HZ!D+9WM0+ACXA%3W*Y\?5+*G?)AN]6Y7_W>S;_?ZKKER,>?UIHA<:B M':M,Z>&SGOLW:ABX_2#UY _@/\J0N>WP>^\V/X2AQBUF&&E>8EZ_I"Q11=L1 M2OZGML/$(<]6?&V"4P\..H.]YZ,(3:'0X7*P=^/:\_^7J=_Q,O51>,)3WD(^ MXA'?K0?O#J:3^EBB650#I,:<"K!CXRC8!37_EBH4]Z?M5 ]!_:FZY4(XU";R MV !@5WZH!- -Q$82D'JEZ1C%(;L!X/MF-ARD![6"5ML+F!LK!!UCE$_W1QS9 M^NX##4]'4%>D#L4SE#4WU97%\"Z1"#J_")I%7C,B >!2GG?P,4 7T!0O@ZI_K.[]K"'_1TP/W]#9@%.UY0C^+OS^AN M47/]0[3_LYH9RE+)Y,^(2M?_@9C[B[.C_P)02P$"% ,4 " !V@F%48]3A0'$7 #S M $ $0 @ $ <&1F"<7 +6P$ %0 @ &@%P <&1F&UL4$L! A0#% @ =H)A5# 45]@V.0 L]<# !4 M ( !^BX '!D9G,M,C R,3$R,S%?9&5F+GAM;%!+ 0(4 Q0 M ( ':"853FM_&M=HD (??" 5 " 6-H !P9&9S+3(P M,C$Q,C,Q7VQA8BYX;6Q02P$"% ,4 " !V@F%436%@)<%F #B=@< %0 M @ $,\@ <&1F&UL4$L! A0#% M @ =H)A5/K>(I2?L , KS@F !4 ( ! %D! '!D9G,M,C R M,3$R,S%X,3!K+FAT;5!+ 0(4 Q0 ( ':"8536SA.;?00 (TT 8 M " =()!0!P9&9S+3(P,C$Q,C,Q>&5X,C%D,2YH=&U02P$"% ,4 M " !V@F%4/_OD=YP# "U"@ & @ &%#@4 <&1F#(S9#$N:'1M4$L! A0#% @ =H)A5+Z.YUZJ" /#D M !@ ( !5Q(% '!D9G,M,C R,3$R,S%X97@S,60Q+FAT;5!+ M 0(4 Q0 ( ':"851G+U$!O@@ /(X 8 " 3<;!0!P M9&9S+3(P,C$Q,C,Q>&5X,S%D,BYH=&U02P$"% ,4 " !V@F%4CZ#VTZ4% M !!* & @ $K) 4 <&1F#,R9#$N M:'1M4$L! A0#% @ =H)A5(RH/&EN!0 LR0 !@ ( ! M!BH% '!D9G,M,C R,3$R,S%X97@S,F0R+FAT;5!+ 0(4 Q0 ( ':"8508 M#WY^FPH $0G 7 " :HO!0!P9&9S+3(P,C$Q,C,Q>&5X =-&0S+FAT;5!+!08 #0 - '<# !Z.@4 ! end